platform/upstream/libdrm.git
2 years agotests: tegra: Add VIC 4.2 support
Thierry Reding [Fri, 9 Jul 2021 19:09:04 +0000 (21:09 +0200)]
tests: tegra: Add VIC 4.2 support

The Video Image Composer (VIC) 4.2 can be found on NVIDIA Tegra194 SoCs.
It uses a different class (C5B6) that is slightly incompatible with the
class found on earlier generations, although it is backwards compatible
with the class implemented on Tegra186 (B1B6).

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 4.1 support
Thierry Reding [Fri, 9 Jul 2021 19:08:35 +0000 (21:08 +0200)]
tests: tegra: Add VIC 4.1 support

The Video Image Composer (VIC) 4.1 can be found on NVIDIA Tegra186 SoCs.
It uses a different class (B1B6) that is slightly incompatible with the
class found on earlier generations.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 4.0 support
Thierry Reding [Fri, 9 Jul 2021 19:07:57 +0000 (21:07 +0200)]
tests: tegra: Add VIC 4.0 support

The Video Image Composer (VIC) 4.0 can be found on NVIDIA Tegra210 SoCs.
It uses a different class (B0B6) that is slightly incompatible with the
class found on earlier generations.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 3.0 support
Thierry Reding [Fri, 9 Jul 2021 19:06:59 +0000 (21:06 +0200)]
tests: tegra: Add VIC 3.0 support

The Video Image Composer (VIC) 3.0 can be found on NVIDIA Tegra124 SoCs.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC support
Thierry Reding [Fri, 9 Jul 2021 19:02:32 +0000 (21:02 +0200)]
tests: tegra: Add VIC support

Implement a small abstraction interface to allow different versions of
VIC to be used transparently. An implementation will be chosen based on
the VIC version number reported by the DRM_TEGRA_IOCTL_OPEN_CHANNEL
IOCTL.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add syncpoint timeout test
Thierry Reding [Fri, 9 Jul 2021 18:59:32 +0000 (20:59 +0200)]
tests: tegra: Add syncpoint timeout test

This test can be used to purposefully trigger a job timeout.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add syncpt-wait test
Thierry Reding [Fri, 9 Jul 2021 18:58:41 +0000 (20:58 +0200)]
tests: tegra: Add syncpt-wait test

This is a very simple sanity test to check whether or not a syncpt can
be incremented by a host1x client. This uses gr2d on Tegra20 through
Tegra114 and VIC on Tegra124 and later.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add gr2d-fill test
Thierry Reding [Fri, 9 Jul 2021 18:56:56 +0000 (20:56 +0200)]
tests: tegra: Add gr2d-fill test

This test uses the IOCTLs for job submission and fences to fill a sub-
region of the screen to a specific color using gr2d.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add helper library for tests
Thierry Reding [Fri, 9 Jul 2021 18:54:57 +0000 (20:54 +0200)]
tests: tegra: Add helper library for tests

This library provides helpers for common functionality needed by test
programs.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add syncpoint APIs
Thierry Reding [Fri, 9 Jul 2021 18:45:20 +0000 (20:45 +0200)]
tegra: Add syncpoint APIs

These new functions can be used to allocate and free syncpoints, as well
as wait for a syncpoint threshold to be reached. Jobs can also be waited
on if a syncpoint was attached to them.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add job and push buffer APIs
Thierry Reding [Fri, 9 Jul 2021 18:35:32 +0000 (20:35 +0200)]
tegra: Add job and push buffer APIs

These new functions can be used to create a job on a given channel, add
commands to the job using its push buffer and submit the job.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add channel APIs
Thierry Reding [Fri, 9 Jul 2021 18:30:07 +0000 (20:30 +0200)]
tegra: Add channel APIs

These new functions can be used to open a channel to a given engine, map
and unmap buffer objects to that channel, and close the channel.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Include private.h in list of source files
Thierry Reding [Fri, 9 Jul 2021 18:21:35 +0000 (20:21 +0200)]
tegra: Include private.h in list of source files

This makes sure that the proper dependencies are created and that the
file is distributed.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Update for new UABI
Thierry Reding [Fri, 9 Jul 2021 18:19:38 +0000 (20:19 +0200)]
tegra: Update for new UABI

This new UABI is a more modern version that works better with both old
and recent chips.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Install tegra-openclose test
Thierry Reding [Tue, 20 Mar 2018 12:34:48 +0000 (13:34 +0100)]
tegra: Install tegra-openclose test

Allow this simple test to be installed so that it can easily be run on a
target device.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Make API more consistent
Thierry Reding [Fri, 9 Jul 2021 18:13:12 +0000 (20:13 +0200)]
tegra: Make API more consistent

Most functions in libdrm_tegra take as first parameter the object that
they operate on. Make the device and buffer object creation functions
follow the same scheme.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add PRIME support helpers
Thierry Reding [Mon, 23 Apr 2018 09:01:36 +0000 (11:01 +0200)]
tegra: Add PRIME support helpers

These helpers facilitate exporting and importing buffer objects to and
from PRIME file descriptors.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add flink helpers
Thierry Reding [Mon, 23 Apr 2018 09:00:56 +0000 (11:00 +0200)]
tegra: Add flink helpers

Add helpers to export and import buffer objects via flink names.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Fix mmap() of GEM buffer objects
Thierry Reding [Fri, 9 Jul 2021 18:05:54 +0000 (20:05 +0200)]
tegra: Fix mmap() of GEM buffer objects

Store 64-bit offset values and use libdrm's built-in drm_mmap() function
instead of mmap() to ensure the full 64-bit offset is used.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Extract common buffer object allocation code
Thierry Reding [Mon, 23 Apr 2018 08:58:09 +0000 (10:58 +0200)]
tegra: Extract common buffer object allocation code

All of the buffer object allocation functions use the same boilerplate
code. Move that code into a separate function that can be reused.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Remove unused IOCTL implementations
Thierry Reding [Fri, 9 Jul 2021 17:53:52 +0000 (19:53 +0200)]
tegra: Remove unused IOCTL implementations

The DRM_TEGRA_GEM_{GET,SET}_FLAGS and DRM_TEGRA_GEM_{GET,SET}_TILING
IOCTLs were badly designed and have since been obsoleted by framebuffer
modifiers. Remove these implementations to make it clear their usage is
discouraged.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Indent according to .editorconfig
Thierry Reding [Tue, 20 Mar 2018 11:55:04 +0000 (12:55 +0100)]
tegra: Indent according to .editorconfig

Reindent the sources according to the settings found in the newly added
.editorconfig.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests/amdgpu: enable vcn test based on ip query
Sathishkumar S [Thu, 10 Feb 2022 13:49:50 +0000 (19:19 +0530)]
tests/amdgpu: enable vcn test based on ip query

family_id checks can be removed and instead use ip major/minor version

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Veerabadhran Gopalakrishnan <veerabadhran.gopalakrishnan@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agotests/amdgpu: enable jpeg test based on ip query
Sathishkumar S [Thu, 10 Feb 2022 12:20:57 +0000 (17:50 +0530)]
tests/amdgpu: enable jpeg test based on ip query

enable jpeg test if ip query is successful and avoid family_id
based checks, instead use ip major/minor version

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Veerabadhran Gopalakrishnan <veerabadhran.gopalakrishnan@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agobuild: bump version to 2.4.110 libdrm-2.4.110
Samuel Pitoiset [Wed, 16 Feb 2022 10:00:13 +0000 (11:00 +0100)]
build: bump version to 2.4.110

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2 years agodrm/atomic: Stable sort for atomic request de-duplication
Daniel Stone [Wed, 19 May 2021 10:05:22 +0000 (11:05 +0100)]
drm/atomic: Stable sort for atomic request de-duplication

Atomic request property lists are defined to be de-duplicated: an atomic
request can contain multiple sets for the same property on the same
object, and only the last one will take effect.

drmModeAtomicCommit already sorts the property set by object and
property ID. We were relying on qsort to also sort by cursor - i.e.
pointer value - when object and property ID are equal, however whilst
glibc does this, the sort order is explicitly undefined when the
comparator is equal. Using the pointer is also not stable on all
implementations.

Add an explicit 'cursor' member to each property set which is used as
the tie-breaker comparator.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Fixes: #46

2 years agomeson: use summary() instead of message
Dylan Baker [Wed, 19 Jan 2022 19:26:21 +0000 (11:26 -0800)]
meson: use summary() instead of message

It's cleaner, it's nicer looking, and it's a nice builtin.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use the modern interface for pkg.generate
Dylan Baker [Wed, 19 Jan 2022 19:14:17 +0000 (11:14 -0800)]
meson: use the modern interface for pkg.generate

This produces no differences in the generated output. I've had to
manually add `requires : 'libdrm'` to libdrm_intel, otherwise libdrm
ends up in `Requires.private` instead of `Requires`.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use cc.has_function_attribute instead of open coding
Dylan Baker [Wed, 19 Jan 2022 19:12:43 +0000 (11:12 -0800)]
meson: use cc.has_function_attribute instead of open coding

It's less code, and also allows meson to short circuit for compilers is
knows don't support this.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use cc.check_header instead of open coding
Dylan Baker [Wed, 19 Jan 2022 19:10:58 +0000 (11:10 -0800)]
meson: use cc.check_header instead of open coding

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use more standard formatting for better readability
Dylan Baker [Wed, 19 Jan 2022 19:09:07 +0000 (11:09 -0800)]
meson: use more standard formatting for better readability

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: switch to cc.get_supported_arguments
Dylan Baker [Wed, 19 Jan 2022 18:43:04 +0000 (10:43 -0800)]
meson: switch to cc.get_supported_arguments

This is generally faster, as meson is able to parallelize the checks for
us.

This also removes the workaround for checking gcc/clang -Wno-*
arguments, which meson now handles internally so we don't need to handle
it ourselves.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: switch the meson builtin for symbol visiblity
Dylan Baker [Wed, 19 Jan 2022 18:42:20 +0000 (10:42 -0800)]
meson: switch the meson builtin for symbol visiblity

This allows meson to check if the compiler supports gnu style symbol
visibility, and apply the appropriate flags as necessary, rather than us
adding them by hand

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agotests/amdgpu: add a test for new CTX OP to get/set stable pstates
Samuel Pitoiset [Mon, 3 Jan 2022 09:21:00 +0000 (10:21 +0100)]
tests/amdgpu: add a test for new CTX OP to get/set stable pstates

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agoamdgpu: implement new CTX OP to set/get stable pstates
Samuel Pitoiset [Fri, 31 Dec 2021 08:10:03 +0000 (09:10 +0100)]
amdgpu: implement new CTX OP to set/get stable pstates

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agoamdgpu: update_drm.h for new CTX OP to set/get stable pstates
Samuel Pitoiset [Fri, 31 Dec 2021 07:54:34 +0000 (08:54 +0100)]
amdgpu: update_drm.h for new CTX OP to set/get stable pstates

Based on agd5f/drm-next.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agouse standard `__typeof__()` instead of GNU extension `typeof()`
Eric Engestrom [Tue, 17 Dec 2019 23:01:08 +0000 (23:01 +0000)]
use standard `__typeof__()` instead of GNU extension `typeof()`

And switch to c_std=c99. This simplifies using libdrm as a meson
subproject for mesa.

v2: (dylan)
  - switch to c99 as the standard
  - Fix amdgpu security tests as well

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emma Anholt <emma@anholt.net>
2 years agotests/amdgpu: Add VCN test support for Biege Goby
Guchun Chen [Thu, 13 Jan 2022 06:47:52 +0000 (14:47 +0800)]
tests/amdgpu: Add VCN test support for Biege Goby

Added Beige Goby chip id in vcn test.

Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Reviewed-By: Veerabadhran Gopalakrishnan <Veerabadhran.gopalakrishnan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agointel: Add support for ADL-N
Tejas Upadhyay [Tue, 21 Dec 2021 09:54:59 +0000 (15:24 +0530)]
intel: Add support for ADL-N

Add ADL-N platform support and PCIIDs

Align with kernel commit:
7e28d0b26759 ("drm/i915/adl-n: Enable ADL-N platform")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
2 years agoreleasing: s/master/main/
Simon Ser [Mon, 8 Nov 2021 16:39:23 +0000 (17:39 +0100)]
releasing: s/master/main/

This default branch name has been changed. Update RELEASING
accordingly.

Signed-off-by: Simon Ser <contact@emersion.fr>
2 years agointel: Add support for RPLS platform
ravitejax [Tue, 21 Dec 2021 05:07:25 +0000 (10:37 +0530)]
intel: Add support for RPLS platform

Fixes: 3d8e59ce019907 ("intel: sync i915_pciids.h with kernel")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
2 years agointel: sync i915_pciids.h with kernel
Raviteja Goud Talla [Thu, 16 Dec 2021 10:56:24 +0000 (16:26 +0530)]
intel: sync i915_pciids.h with kernel

Align with kernel commit:

52407c220c44c ("drm/i915/rpl-s: Add PCI IDS for Raptor Lake S")

Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: Raviteja Goud Talla <ravitejax.goud.talla@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2 years agomeson: add override_dependency when possible
Dylan Baker [Wed, 17 Nov 2021 20:57:54 +0000 (12:57 -0800)]
meson: add override_dependency when possible

This allows consumers of libdrm as a subproject to use the simpler
`dependency('libdrm', fallback : 'libdrm')` syntax, as the libdrm build
files already tell meson that they override a dependency called
"libdrm".

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use dictionary kwargs
Dylan Baker [Wed, 17 Nov 2021 20:50:01 +0000 (12:50 -0800)]
meson: use dictionary kwargs

So we don't have to duplicate the libdrm library call just to not set
the version keyword for android

Reviewed-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
2 years agotests/amdgpu: add jpeg tests support
Sathishkumar S [Wed, 8 Dec 2021 23:35:03 +0000 (05:05 +0530)]
tests/amdgpu: add jpeg tests support

v2:
- remove dec create/destroy msg as its not relevant to jpeg (Leo)
- enable the test for jpeg2/jpeg3 (Leo)
- validate checksum of result (Leo)
- add appropriate comments (Leo)

v3:
- linux style function definition indent (James)
- use multiline comment delimiter (Leo)

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agobuild: bump version to 2.4.109 libdrm-2.4.109
Simon Ser [Thu, 25 Nov 2021 20:33:02 +0000 (21:33 +0100)]
build: bump version to 2.4.109

2 years agoxf86drm: fix compiler warnings
Eleni Maria Stea [Mon, 22 Nov 2021 10:14:36 +0000 (12:14 +0200)]
xf86drm: fix compiler warnings

Used casting to fix warnings about assigning different enum types to
variables. Used error checks in places where snprintf is called and
output might be truncated to fix gcc format-truncation warnings.

v2: Removed a change in drm.h (Simon Ser)
v3, v4: Removed unecessary braces in snprintf (Simon Ser)

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
2 years agoamdgpu: Add new function to get fd.
Bas Nieuwenhuizen [Tue, 16 Nov 2021 00:41:49 +0000 (01:41 +0100)]
amdgpu: Add new function to get fd.

Dual purpose:
 - The drm fd dedupe functionality confuses the radeonsi
   amdgpu winsys if radeonsi isn't the first thing opening
   the device. By exposing the fd we can detect this case.
 - For a common mesa Vulkan sync objects implementation
   with syncobj. (notable: no buffer allocation)

Both shouldn't interferece with libdrm_amdgpu functionality
though it does somewhat piece the abstraction of the library.

Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3424
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5630
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agoci: Add FreeBSD support
Emmanuel Vadot [Wed, 10 Nov 2021 16:49:55 +0000 (17:49 +0100)]
ci: Add FreeBSD support

Use qemu to do CI on FreeBSD.
Not everything is compiled as all arm aren't supported on FreeBSD.
Same thing for Nouveau.
The tests aren't enable for now as they are all failing.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
2 years agoci: Switch freedesktop/ci-templates
Emmanuel Vadot [Tue, 9 Nov 2021 20:26:24 +0000 (21:26 +0100)]
ci: Switch freedesktop/ci-templates

This switch to the latest ci-templates.
Most of the file is taken from the one in wayland.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
2 years agoxf86drm: add drmGetDeviceFromDevId
Simon Ser [Mon, 1 Mar 2021 09:30:57 +0000 (10:30 +0100)]
xf86drm: add drmGetDeviceFromDevId

This adds a function to get a drmDevicePtr from a dev_t identifier
of a device. This is useful for Wayland that uses these to identify
devices over the protocol.

This is done by taking the implementation of drmGetDevice2, and removing
the call to fstat to find the dev_t.

Signed-off-by: Scott Anderson <scott.anderson@collabora.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Daniel Stone <daniels@collabora.com>
2 years agoradeon: remove duplicate declaration of struct radeon_bo_manager in radeon_bo.h
suijingfeng [Wed, 3 Nov 2021 02:52:03 +0000 (10:52 +0800)]
radeon: remove duplicate declaration of struct radeon_bo_manager in radeon_bo.h

Reviewed-by: Simon Ser <contact@emersion.fr>
Signed-off-by: suijingfeng <suijingfeng@loongson.cn>
2 years agobuild: bump version to 2.4.108 libdrm-2.4.108
Simon Ser [Mon, 8 Nov 2021 16:35:03 +0000 (17:35 +0100)]
build: bump version to 2.4.108

Signed-off-by: Simon Ser <contact@emersion.fr>
2 years agoxf86drm: add iterator API for DRM/KMS IN_FORMATS blobs
Luigi Santivetti [Thu, 25 Mar 2021 22:42:38 +0000 (22:42 +0000)]
xf86drm: add iterator API for DRM/KMS IN_FORMATS blobs

Add support for parsing IN_FORMATS property blobs. Providing libdrm
with this functionality helps to standardise how user-space reads
kernel blobs and decreases duplication on the client side.

drmModeFormatModifierBlobIterNext() allows the caller to view
formats and associated modifiers given a valid property blob.
An example is available inside the libdrm unit test, modetest.c.

Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agoamdgpu: Make marketing names consistent
Joshua Ashton [Thu, 4 Nov 2021 06:03:49 +0000 (06:03 +0000)]
amdgpu: Make marketing names consistent

Fixes sporadic (TM), capitalization, missing AMD suffixes and spacing.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
2 years agoFix -Werror=format build errors on FreeBSD
Alex Richardson [Tue, 5 Oct 2021 11:10:08 +0000 (12:10 +0100)]
Fix -Werror=format build errors on FreeBSD

On 64-bit FreeBSD targets uint64_t is generally defined as `unsigned long`
and not `unsigned long long`. Use the PRI macros to fix -Wformat.

Signed-off-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agoamdgpu: add amdgpu_stress utility v2
Christian König [Wed, 29 Sep 2021 10:48:08 +0000 (12:48 +0200)]
amdgpu: add amdgpu_stress utility v2

Simple yet useful command line utility to simulate memory pressure.

Already found quite a number of problems in TTM with that.

v2: replace spaces with tabs

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
2 years agoman: refer to drmCloseBufferHandle instead of DRM_IOCTL_GEM_CLOSE
Simon Ser [Sun, 3 Oct 2021 17:54:50 +0000 (19:54 +0200)]
man: refer to drmCloseBufferHandle instead of DRM_IOCTL_GEM_CLOSE

This function in libdrm core wraps DRM_IOCTL_GEM_CLOSE.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agotegra: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:53:07 +0000 (19:53 +0200)]
tegra: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoomap: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:51:57 +0000 (19:51 +0200)]
omap: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agonouveau: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:50:58 +0000 (19:50 +0200)]
nouveau: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agofreedreno: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:49:40 +0000 (19:49 +0200)]
freedreno: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoexynos: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:48:14 +0000 (19:48 +0200)]
exynos: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoetnaviv: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:47:14 +0000 (19:47 +0200)]
etnaviv: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoradeon: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:45:24 +0000 (19:45 +0200)]
radeon: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agointel: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:42:55 +0000 (19:42 +0200)]
intel: use drmCloseBufferHandle

Instead of manually calling drmIoctl, use the equivalent function
from libdrm core.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoamdgpu: use drmCloseBufferHandle
Simon Ser [Sun, 3 Oct 2021 17:38:48 +0000 (19:38 +0200)]
amdgpu: use drmCloseBufferHandle

Instead of using a hand-rolled amdgpu_close_kms_handle function,
use the function from libdrm core, which does exactly the same
thing.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agoxf86drm: Update drmGetFormatModifierNameFromArm to handle AFRC
Dennis Tsiang [Wed, 22 Sep 2021 13:53:50 +0000 (14:53 +0100)]
xf86drm: Update drmGetFormatModifierNameFromArm to handle AFRC

Update drmGetFormatModifierNameFromArm function to handle AFRC
modifiers.

Signed-off-by: Dennis Tsiang <dennis.tsiang@arm.com>
2 years agodrm_fourcc: sync drm_fourcc with latest drm-next kernel
Dennis Tsiang [Mon, 20 Sep 2021 10:14:52 +0000 (11:14 +0100)]
drm_fourcc: sync drm_fourcc with latest drm-next kernel

Update drm_fourcc.h to include latest changes from drm-next branch.
This brings in AFRC (Arm Fixed-Rate Compression) modifiers.

Generated using make headers_install.
Generated from drm-next branch commit 6880fa6

Signed-off-by: Dennis Tsiang <dennis.tsiang@arm.com>
2 years agoxf86drmMode: simplify drm_property_type_is
Simon Ser [Tue, 15 Jun 2021 12:48:28 +0000 (14:48 +0200)]
xf86drmMode: simplify drm_property_type_is

No need to have two branches depending on DRM_MODE_PROP_EXTENDED_TYPE.
We can just use drmModeGetPropertyType instead.

This does introduce a slight change: previously, drm_property_type_is()
could be called with non-type flags such as IMMUTABLE. However no user
seems to do this (checked KWin/Mutter/Sway/Weston/Xorg).

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoxf86drmMode: switch to standard inline qualifier
Simon Ser [Tue, 15 Jun 2021 12:47:04 +0000 (14:47 +0200)]
xf86drmMode: switch to standard inline qualifier

__inline is non-standard, inline is.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoxf86drmMode: make drm_property_type_is arg const
Simon Ser [Tue, 15 Jun 2021 12:46:05 +0000 (14:46 +0200)]
xf86drmMode: make drm_property_type_is arg const

This function only needs read-only access to the property. This is
not a breaking ABI change.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agointel: Drop legacy execbuffer support
Jason Ekstrand [Wed, 10 Mar 2021 19:52:57 +0000 (13:52 -0600)]
intel: Drop legacy execbuffer support

Execbuffer2 support was introduced to libdrm in b50964027be, 10 years
ago, and no driver has used the old execbuf path since.  There's no need
to support 10-year-old kernels.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2 years agoxf86drm: add GEM_CLOSE ioctl wrapper
Simon Ser [Wed, 1 Sep 2021 19:26:38 +0000 (21:26 +0200)]
xf86drm: add GEM_CLOSE ioctl wrapper

We have wrappers for PRIME_HANDLE_TO_FD and PRIME_FD_TO_HANDLE,
but not for GEM_CLOSE. Add it so that callers don't need to
manually call drmIoctl.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
2 years agointel: Do not assert on unknown chips in drm_intel_decode_context_alloc
Tvrtko Ursulin [Wed, 18 Nov 2020 16:31:26 +0000 (16:31 +0000)]
intel: Do not assert on unknown chips in drm_intel_decode_context_alloc

There is this long standing nit of igt/tools/intel_error_decode asserting
when you feed it an error state from a GPU the local libdrm does not know
of.

To fix this I need a tweak in drm_intel_decode_context_alloc to make it
not assert but just return NULL (which seems an already possible return
value).

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2 years agointel: Sync pci ids
José Roberto de Souza [Tue, 14 Sep 2021 20:41:21 +0000 (13:41 -0700)]
intel: Sync pci ids

Sync libdrm with kernel, a new DG1 pci was added.
Commit 5f0d4214938d ("drm/i915/dg1: Add new PCI id")

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
2 years agoamdgpu: add new marketing name
Alex Deucher [Fri, 17 Sep 2021 13:16:57 +0000 (09:16 -0400)]
amdgpu: add new marketing name

Acked-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agoamdgpu: add marketing names from 21.30
Alex Deucher [Fri, 17 Sep 2021 13:14:13 +0000 (09:14 -0400)]
amdgpu: add marketing names from 21.30

Add new marketing names

Acked-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agotests/modetest: get cursor width and height by drmGetCap
ZhiJie.Zhang [Mon, 8 Mar 2021 12:35:30 +0000 (20:35 +0800)]
tests/modetest: get cursor width and height by drmGetCap

Should get cursor width and height by drmGetCap.

Signed-off-by: ZhiJie.Zhang <zhangzhijie@loongson.cn>
2 years agointel: sync ADL-S PCI IDs with kernel
Tejas Upadhyay [Tue, 24 Aug 2021 07:19:19 +0000 (12:49 +0530)]
intel: sync ADL-S PCI IDs with kernel

Align with kernel commits:

c79b846f892d ("drm/i915/adl_s: Update ADL-S PCI IDs")
3f50033dd88a ("drm/i915/adl_s: ADL-S platform Update PCI ids for Mobile BGA")

Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
2 years agoxf86drm: fix mem leak in drm_usb_dev_path()
Eric Engestrom [Fri, 13 Aug 2021 20:19:13 +0000 (21:19 +0100)]
xf86drm: fix mem leak in drm_usb_dev_path()

`sysfs_uevent_get()` returns a `strndup()`ed string, which must be `free()`d.

Fixes: bf63f8acdc94164ad29d ("libdrm: Handle usb_interface devices for usb parsing")
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2 years agonouveau: print bo address in the GPU/CPU vm and its size
Karol Herbst [Sun, 30 May 2021 13:10:39 +0000 (15:10 +0200)]
nouveau: print bo address in the GPU/CPU vm and its size

v2: print bo->offset as 64 bit

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
2 years agolibdrm: NOTE! Default branch is now main
Jordan Justen [Mon, 2 Aug 2021 08:06:44 +0000 (01:06 -0700)]
libdrm: NOTE! Default branch is now main

To update your local repository to use the new default branch, these
commands may help:

$ git fetch origin
$ git checkout master
$ git branch -m main
$ git branch --set-upstream-to=origin/main
$ git remote set-head origin --auto

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2 years agoheaders: drm: Sync with drm-next
Mario Kleiner [Sat, 3 Jul 2021 19:54:27 +0000 (21:54 +0200)]
headers: drm: Sync with drm-next

Generated using make headers_install from the drm-next
tree - git://anongit.freedesktop.org/drm/drm
branch - drm-next
commit - 8a02ea42bc1d4c448caf1bab0e05899dad503f74

Some changes were omitted, e.g., to nouveau_drm.h, i915_drm.h, and
msm_drm.h, as the nouveau and i915 changes looked to me as if they
could break compatibility or require other compatibility fixes to
libdrm which i can not judge. msm_drm.h broke the build, as there
are definitely changes needed to libdrm's msm support code.

The shortlog below is edited to only list what corresponds to files
that are included here, because it looked safe to me.

The changes were as follows (shortlog from
b10733527bfd864605c33ab2e9a886eec317ec39..HEAD):

Aaron Liu (1):
      drm/amdgpu: add uapi to define yellow carp series

Alex Deucher (1):
      drm/amdgpu: add INFO ioctl support for querying video caps (v4)

Christian Gmeiner (1):
      drm/etnaviv: provide more ID values via GET_PARAM ioctl.

Felix Kuehling (1):
      drm/amdgpu: Add new placement for preemptible SG BOs

Jiawei Gu (1):
      drm/amdgpu: Add vbios info ioctl interface

Lionel Landwerlin (1):
      drm: fix drm_mode_create_blob comment

Mario Kleiner (1):
      drm/fourcc: Add 16 bpc fixed point framebuffer formats.

Nirmoy Das (1):
      drm/amdgpu: remove AMDGPU_GEM_CREATE_SHADOW flag

Noralf Trønnes (1):
      drm/uapi: Add USB connector type

Radhakrishna Sripada (1):
      drm/framebuffer: Format modifier for Intel Gen 12 render compression with Clear Color

Simon Ser (13):
      drm: improve kernel-docs in drm_mode.h
      drm: document drm_mode_get_connector
      drm: document drm_mode_modeinfo
      drm: document that user-space should force-probe connectors
      drm/doc: atomic implicitly enables other caps
      drm/doc: re-format drm.h file comment
      drm/doc: demote old doc-comments in drm.h
      drm/fourcc: fix Amlogic format modifier masks
      drm/uapi: document kernel capabilities
      drm/connector: demote connector force-probes for non-master clients
      drm: reference mode flags in DRM_CLIENT_CAP_* docs
      drm: clarify and linkify DRM_CLIENT_CAP_WRITEBACK_CONNECTORS docs
      drm: document minimum kernel version for DRM_CLIENT_CAP_*

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
2 years agomeson: Don't build libkms for Android.
Eric Anholt [Thu, 22 Apr 2021 23:25:07 +0000 (16:25 -0700)]
meson: Don't build libkms for Android.

Nobody wants that that I know of.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2 years agomeson: Build libdrm.so as an unversioned lib on Android.
Eric Anholt [Thu, 22 Apr 2021 23:03:38 +0000 (16:03 -0700)]
meson: Build libdrm.so as an unversioned lib on Android.

Android vendor libraries don't have sonames, and libdrm.so shouldn't
either.  This lets a Mesa built against a libdrm.so built for Android
be copied directly to a Chrome OS ARC installation.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2 years agotest/amdgpu: Bob to Alice copy should be TMZ in secure bounce test
Aaron Liu [Thu, 22 Jul 2021 09:01:00 +0000 (17:01 +0800)]
test/amdgpu: Bob to Alice copy should be TMZ in secure bounce test

SDMA copy from Alice to Bob is in TMZ mode. Therefore
SDMA copy back from Bob to Alice should be in TMZ mode too.

Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
2 years agotests/amdgpu: Fix TMZ secure bounce test
Luben Tuikov [Fri, 16 Jul 2021 01:28:16 +0000 (21:28 -0400)]
tests/amdgpu: Fix TMZ secure bounce test

Fix the TMZ secure bounce test, in that Bob's
buffer has to be created encrypted (with the
encrypted flag set), so that when we copy from
Alice's buffer, which is also encrypted, to Bob's
buffer, the copy can be successful and the data
actually copied.

This fixes the test and it no longer fails. Tested
on Sienna Cichlid.

Cc: Alex Deucher <Alexander.Deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Aaron Liu <aaron.liu@amd.com>
Cc: Huang Rui <ray.huang@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Reviewed-by: Alex Deucher <Alexander.Deucher@amd.com>
2 years agoBump version to 2.4.107 libdrm-2.4.107
Bas Nieuwenhuizen [Fri, 2 Jul 2021 01:12:14 +0000 (03:12 +0200)]
Bump version to 2.4.107

Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoamdgpu: update marketing names
Alex Deucher [Mon, 28 Jun 2021 19:48:14 +0000 (15:48 -0400)]
amdgpu: update marketing names

From 21.20 release.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agoREADME.rst: Include some notes about syncing uapi headers
Marius Vlad [Thu, 11 Feb 2021 11:08:05 +0000 (13:08 +0200)]
README.rst: Include some notes about syncing uapi headers

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoxf86drm: Add support for decoding AMLOGIC format modifiers
Marius Vlad [Tue, 23 Feb 2021 22:51:45 +0000 (00:51 +0200)]
xf86drm: Add support for decoding AMLOGIC format modifiers

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoxf86drm: Add support for decoding AMD format modifiers
Marius Vlad [Wed, 17 Feb 2021 13:59:30 +0000 (15:59 +0200)]
xf86drm: Add support for decoding AMD format modifiers

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoxf86drm: Add support for decoding Nvidia format modifiers
Marius Vlad [Mon, 1 Feb 2021 11:45:58 +0000 (13:45 +0200)]
xf86drm: Add support for decoding Nvidia format modifiers

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoxf86drm: Add a vendor function to decode the format modifier
Marius Vlad [Mon, 1 Feb 2021 11:39:43 +0000 (13:39 +0200)]
xf86drm: Add a vendor function to decode the format modifier

As format modifiers can be encoded in quite complex forms, the static
table previously added is not sufficient to retrieve, extract and decode
the token formats to a human-readable string.  This patch introduces a
vendor specific callback which could be used to perform an additional
search to match up with vendor encoding scheme, which, will be used
first, before resorting to searching the static table.

With it, add support for decoding the ARM format modifiers.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoxf86drm: Add a human readable representation for format modifiers
Marius Vlad [Mon, 1 Feb 2021 11:23:20 +0000 (13:23 +0200)]
xf86drm: Add a human readable representation for format modifiers

Introduces two new methods to retrieve a human readable representation of a
format modifier:

drmGetFormatModifierName() - returns a format modifier as a string,
from a token modifier
drmGetFormatModifierVendor() - returns the vendor as a string, from a
token modifier

and the fourcc_mod_get_vendor macro that returns the vendor.

New format modifiers added in drm_fourcc.h uapi kernel header should be
sync'ed up with libdrm and should include a human readable
representation for that format modifier, in order to display it
correctly as a string.

That happens with the help of a python script that reads up drm_fourcc
header file and outputs a static table comprised of token modifiers
alongside a vendor table (Suggested-by Simon Ser <contact@emersion.fr>).

The reason for doing it in libdrm is to have a unified place instead of each
user of libdrm having a way to keep track of the format modifiers.

With this patch, modetest has also been modified to make use of it.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
2 years agoConditionally include <linux/limits.h> and <sys/params.h> on Linux, BSD
Eleni Maria Stea [Sun, 20 Jun 2021 06:33:58 +0000 (09:33 +0300)]
Conditionally include <linux/limits.h> and <sys/params.h> on Linux, BSD

<linux/limits.h> should be included conditionally for Linux only, also
SPECNAMELEN used conditionally when the OS is FreeBSD requires to
include <sys/params.h>.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2 years ago_WANT_KERNEL_ERRNO must be defined in FreeBSD for ERESTART to be used
Eleni Maria Stea [Mon, 7 Jun 2021 07:24:11 +0000 (10:24 +0300)]
_WANT_KERNEL_ERRNO must be defined in FreeBSD for ERESTART to be used

In FreeBSD's errno.h ERESTART is not defined by default, only when the
user requests the pseudo-errors returned inside the kernel to be
enabled. As a result the block where drmCommandWriteRead is
called returns compile error. Defined _WANT_KERNEL_ERRNO to fix it (see
FreeBSD's /usr/include/errno.h)

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2 years agoinclude <sys/types.h> in xf86drmMode when the OS is FreeBSD
Eleni Maria Stea [Mon, 7 Jun 2021 07:19:18 +0000 (10:19 +0300)]
include <sys/types.h> in xf86drmMode when the OS is FreeBSD

<sys/types.h> need to be included in xf86drmMode.c for type u_int in
<sys/sysctl.h> (that is included when OS is FreeBSD) to be recognized.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2 years agoamdgpu: Add vamgr for capture/replay.
Bas Nieuwenhuizen [Mon, 23 Nov 2020 01:18:05 +0000 (02:18 +0100)]
amdgpu: Add vamgr for capture/replay.

In Vulkan we have extensions to assist with capture in replay in a
world where addresses are returned to the application. This involves
creating buffers at the same VA during replay as they were during
capture.

By itself libdrm_amdgpu already has support for this, but there is
the obvious failure mode that if another buffer is already allocated
at that VA things fail spectacularly. This is an actual issue as
internal buffers, like winsys images or shader binaries also
participate in the same VA allocation.

To avoid this problem applications have to create buffers which
are going to be captured with a flag, and the implementation is to
separate VA allocation for those buffers to reduce the collision risk:

"Implementations are expected to separate such buffers in the GPU address
space so normal allocations will avoid using these addresses. Apps/tools
should avoid mixing app-provided and implementation-provided addresses for
buffers created with VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
to avoid address space allocation conflicts."

This patch implements that by adding a flag for these buffers and allocating
address space from the top of the address range instead of the bottom.

Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Christian König <christian.koenig@amd.com>