Dylan Baker [Fri, 1 Sep 2023 19:23:35 +0000 (12:23 -0700)]
meson: Use feature.require() and feature.allowed()
To reduce the size and complexity of checks. require() allows combining
auto and enabled checks(), so that something like
```meson
x = get_option('feature')
y = false
if x.enabled()
if not condition
error(...)
endif
y = condition
endif
```
can be rewritten as:
```meson
y = get_option('feature').require(condition, error_message : ...).allowed()
```
require checks the condition, then if the feature is required it emits
an error with the given message otherwise it returns a disabled feature.
allowed then returns whether the feature is not disabled, and returns
that (ie, .allowed() == not .disabled()). This is especially helpful for
longer more complex conditions
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Dylan Baker [Fri, 1 Sep 2023 19:09:24 +0000 (12:09 -0700)]
meson: fix intel requirements
Intel requires libpciaccess and an x86/x86_64 host, so if those
aren't found and it's enabled we need to error
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Samuel Pitoiset [Fri, 24 Feb 2023 09:01:53 +0000 (10:01 +0100)]
amdgpu: add support for querying VM faults information
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Samuel Pitoiset [Fri, 24 Feb 2023 09:03:36 +0000 (10:03 +0100)]
amdgpu: amdgpu_drm.h for new GPUVM fault ioctl
Based on agd5f/drm-next.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Simon Ser [Thu, 20 Jul 2023 10:51:04 +0000 (12:51 +0200)]
ci: bump FreeBSD to 13.2
13.0 is no longer supported and causes a 404 when fetching the
image, see e.g. [1] for example failure.
[1]: https://gitlab.freedesktop.org/mesa/drm/-/jobs/
45849458
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Simon Ser [Wed, 23 Aug 2023 10:49:19 +0000 (12:49 +0200)]
xf86drm: mark DRM_MAX_MINOR as deprecated
With the work in [1], libdrm users should no longer rely on the
minor numbering scheme we've used so far. Instead, they should use
drmGetDevices2().
[1]: https://lore.kernel.org/lkml/
20230724211428.3831636-1-michal.winiarski@intel.com/
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Chia-I Wu [Fri, 18 Aug 2023 22:48:31 +0000 (15:48 -0700)]
modetest: print modifiers in hex as well
Print modifiers in hex in addtion to in strings returned by
drmGetFormatModifierName. In some cases, hex numbers can be more easily
compared visually.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Marijn Suijten [Tue, 13 Jun 2023 19:53:22 +0000 (21:53 +0200)]
modetest: allocate and commit atomic request around set_property()
Currently the atomic request is only assigned after `set_property()` is
called, leaving `dev.req` in its uninitialized state causing
`drmModeAtomicAddProperty()` to return an error code, which is printed
as `"Success"` because `errno` is not set by `libdrm` (but it would have
been when non-atomic `drmModeObjectSetProperty()` called an IOCTL
immediately):
sony-akatsuki-row ~ $ modetest -M msm -a -w 81:ACTIVE:0
failed to set CRTC 81 property ACTIVE to 0: Success
Solve this by assigning a new atomic request object before calling
`set_property()`, when there are properties to set. Likewise, commit
these properties after `set_property()` even if there is no other
operation (setting modes or planes) specified.
Furthermore `drmModeObjectSetProperty()` is implemented in terms of
`DRM_IOCTL()` which already returns `-errno` when `ioctl()` returns
`-1`, so we should instead pass `ret` to `strerror()` and get an
accurate error string out of `drmModeAtomicAddProperty()` too.
Fixes:
93220283 ("tests/modetest: Add atomic support")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Neil Armstrong [Wed, 18 Jan 2023 14:01:22 +0000 (15:01 +0100)]
modetest: allow using -r and -P
Since now -r sets the pipe struct and count like -s we can also
use -P with -r.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Neil Armstrong [Wed, 18 Jan 2023 13:29:42 +0000 (14:29 +0100)]
modetest: permit -r and -s to work together
Let's permit testing vsync with the default mode, this returns
back the pipe content and count when calling set_mode() so the
vsync test can also be used.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Marijn Suijten [Sat, 9 Sep 2023 08:26:33 +0000 (10:26 +0200)]
modetest: document why no blob is created for linear gamma LUT
As found and discussed in [MR 58] a blob is not created in the else arm
because adding the GAMMA_LUT property with a NULL/0 blob_id causes it
to be reset to a default linear / pass-thru gamma table. The values
in the gamma_lut table might still be consumed in the legacy API path
below though, so it has to be initialized to a linear table.
[MR 58]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/58#note_466972
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Ezequiel Garcia [Sat, 5 Oct 2019 16:31:22 +0000 (13:31 -0300)]
modetest: avoid erroring if there's no gamma legacy support
Let's follow the Rule of Silence. And while here,
document what's going on.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Dmitry Baryshkov [Sun, 30 Jul 2023 15:33:28 +0000 (18:33 +0300)]
modetest: custom mode support
It is useful to be able to specify mode parameters manually. Add support
for setting user-supplied modes. This patch is based on the original
idea by Rohit and Jessica, but implemented from scratch.
Suggested-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
Suggested-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Geert Uytterhoeven [Thu, 30 Jun 2022 14:35:31 +0000 (16:35 +0200)]
util: remove unused definitions of RED, GREEN, and BLUE
These are unused since commit
edcef53685edf5fb ("modetest: Add test
pattern support for missing RGB formats").
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
v2:
- Add Reviewed-by.
Geert Uytterhoeven [Thu, 30 Jun 2022 12:41:48 +0000 (14:41 +0200)]
modetest: fix mode_vrefresh() for interlace/dblscan/vscan
mode_vrefresh() does not take into account interlaced, doublescan, and
multiscan modes, leading to incorrect refresh rates.
Fix this, based on drm_mode_vrefresh() in Linux.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Geert Uytterhoeven [Sun, 3 Jul 2022 12:05:31 +0000 (14:05 +0200)]
util: fix grey in YUV SMPTE patterns
The YUV SMPTE patterns use RGB 191/192/192 instead of 192/192/192 for
the grey color in the top color bar.
Change it to 192/192/192, to match the RGB SMPTE patterns.
Fixes:
a94ee624292bff96 ("modetest: Add SMPTE test pattern")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
v2:
- Add Reviewed-by.
Geert Uytterhoeven [Wed, 5 Jul 2023 13:24:02 +0000 (15:24 +0200)]
modetest: add support for DRM_FORMAT_NV{24,42}
Add support for creating buffers using semi-planar YUV formats with
non-subsampled chroma planes.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
v2:
- Add Reviewed-by.
Geert Uytterhoeven [Wed, 5 Jul 2023 13:23:56 +0000 (15:23 +0200)]
util: add pattern support for DRM_FORMAT_NV{24,42}
Add support for drawing the SMPTE and tiles patterns in buffers using
semi-planar YUV formats with non-subsampled chroma planes.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
v2:
- Add Reviewed-by.
Geert Uytterhoeven [Wed, 5 Jul 2023 13:23:52 +0000 (15:23 +0200)]
util: add NV24 and NV42 frame buffer formats
Add the missing entries for semi-planar YUV formats with
non-subsampled chroma planes.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
v2:
- Add Reviewed-by.
Rohith Iyer [Mon, 25 Jul 2022 17:11:41 +0000 (10:11 -0700)]
modetest: add support for writeback connector
Add writeback support to modetest with the below options:
- Passing in -a -c will now also show the writeback connector
- Dump the writeback output buffer to bitstream
Usage: "./modetest -M msm -s <connector_id>:<widthxheight>
-a -o <filepath>
-P <plane_id>@<crtc_id>:<widthxheight>+0+0@RG24"
This currently supports single writeback connector.
Co-developed-by: Rohith Iyer <quic_rohiiyer@quicinc.com>
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
[DB: dropped custom mode support, fixed segfault]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Jonathan Gray [Wed, 6 Sep 2023 15:28:25 +0000 (01:28 +1000)]
amdgpu: add marketing names from Adrenalin 23.9.1
Jonathan Gray [Mon, 7 Aug 2023 01:39:12 +0000 (11:39 +1000)]
amdgpu: add marketing names from Adrenalin 23.7.2
Jonathan Gray [Mon, 7 Aug 2023 01:36:50 +0000 (11:36 +1000)]
amdgpu: add marketing names from PRO Edition 23.Q3 W7000
Jonathan Gray [Mon, 29 May 2023 06:39:38 +0000 (16:39 +1000)]
amdgpu: add marketing names from amd-5.5.1 (23.10.1)
Jonathan Gray [Mon, 29 May 2023 06:41:01 +0000 (16:41 +1000)]
amdgpu: add marketing names from amd-5.4.6 (22.40.6)
Geert Uytterhoeven [Wed, 5 Jul 2023 13:23:44 +0000 (15:23 +0200)]
amdgpu: Use PRI?64 to format uint64_t
On 32-bit:
../tests/amdgpu/amdgpu_stress.c: In function ‘alloc_bo’:
../tests/amdgpu/amdgpu_stress.c:178:49: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Allocated BO number %u at 0x%lx, domain 0x%x, size %lu\n",
~~^
%llx
num_buffers++, addr, domain, size);
~~~~
../tests/amdgpu/amdgpu_stress.c:178:72: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Allocated BO number %u at 0x%lx, domain 0x%x, size %lu\n",
~~^
%llu
num_buffers++, addr, domain, size);
~~~~
../tests/amdgpu/amdgpu_stress.c: In function ‘submit_ib’:
../tests/amdgpu/amdgpu_stress.c:276:54: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Submitted %u IBs to copy from %u(%lx) to %u(%lx) %lu bytes took %lu usec\n",
~~^
%llx
count, from, virtual[from], to, virtual[to], copied, delta / 1000);
~~~~~~~~~~~~~
../tests/amdgpu/amdgpu_stress.c:276:65: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Submitted %u IBs to copy from %u(%lx) to %u(%lx) %lu bytes took %lu usec\n",
~~^
%llx
count, from, virtual[from], to, virtual[to], copied, delta / 1000);
~~~~~~~~~~~
../tests/amdgpu/amdgpu_stress.c:276:70: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 8 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Submitted %u IBs to copy from %u(%lx) to %u(%lx) %lu bytes took %lu usec\n",
~~^
%llu
count, from, virtual[from], to, virtual[to], copied, delta / 1000);
~~~~~~
../tests/amdgpu/amdgpu_stress.c:276:85: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 9 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stdout, "Submitted %u IBs to copy from %u(%lx) to %u(%lx) %lu bytes took %lu usec\n",
~~^
%llu
count, from, virtual[from], to, virtual[to], copied, delta / 1000);
~~~~~~~~~~~~
../tests/amdgpu/amdgpu_stress.c: In function ‘parse_size’:
../tests/amdgpu/amdgpu_stress.c:296:24: warning: format ‘%li’ expects argument of type ‘long int *’, but argument 3 has type ‘uint64_t *’ {aka ‘long long unsigned int *’} [-Wformat=]
if (sscanf(optarg, "%li%1[kmgKMG]", &size, ext) < 1) {
~~^ ~~~~~
%lli
../tests/amdgpu/amdgpu_stress.c: In function ‘main’:
../tests/amdgpu/amdgpu_stress.c:378:45: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Wformat=]
fprintf(stderr, "Buffer size to small %lu\n", size);
~~^ ~~~~
%llu
Fix this by using the proper "PRI?64" format specifiers.
Fixes:
d77ccdf3ba6f5a39 ("amdgpu: add amdgpu_stress utility v2")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
---
On Linux/amd64, the format strings in the resulting binary are
unchanged.
v3:
- Add Reviewed-by,
v2:
- Use PRI?64 to unbreak 64-bit build.
Geert Uytterhoeven [Wed, 5 Jul 2023 13:23:24 +0000 (15:23 +0200)]
amdgpu: Fix pointer/integer mismatch warning
On 32-bit:
../amdgpu/amdgpu_bo.c: In function ‘amdgpu_find_bo_by_cpu_mapping’:
../amdgpu/amdgpu_bo.c:554:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
cpu < (void*)((uintptr_t)bo->cpu_ptr + bo->alloc_size))
^
Indeed, as amdgpu_bo_info.alloc_size is "uint64_t", the sum is
always 64-bit, while "void *" can be 32-bit or 64-bit.
Fix this by casting bo->alloc_size to "size_t", which is either
32-bit or 64-bit, just like "void *".
Fixes:
c6493f360e7529c2 ("amdgpu: Eliminate void* arithmetic in amdgpu_find_bo_by_cpu_mapping")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
---
v2:
- Add Reviewed-by.
Simon Ser [Wed, 23 Aug 2023 09:57:39 +0000 (11:57 +0200)]
build: bump version to 2.4.116
Signed-off-by: Simon Ser <contact@emersion.fr>
Dor Askayo [Sat, 12 Aug 2023 19:29:30 +0000 (22:29 +0300)]
nouveau: add interface to make buffer objects global
This is useful for when GEM handles are exported and may be shared
between multiple buffer objects without going through other libdrm
interfaces.
Signed-off-by: Dor Askayo <dor.askayo@gmail.com>
Reviewed-by: Karol Herbst <git@karolherbst.de>
James Zhu [Mon, 7 Aug 2023 14:14:18 +0000 (10:14 -0400)]
xf86drm: use drm device name to identify drm node type
Currently drm node's minor range is used to identify node's type.
Since kernel drm uses node type name and minor to generate drm
device name, It will be more general to use drm device name to
identify drm node type.
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
James Zhu [Mon, 7 Aug 2023 14:06:32 +0000 (10:06 -0400)]
xf86drm: update DRM_NODE_NAME_MAX supporting more nodes
Current DRM_NODE_NAME_MAX only can support up to 999 nodes,
Update to support up to 2^MINORBITS nodes.
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Simon Ser [Thu, 20 Jul 2023 10:45:57 +0000 (12:45 +0200)]
xf86drm: add drmSyncobjEventfd
This is a wrapper for DRM_IOCTL_SYNCOBJ_EVENTFD.
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Thu, 27 Jul 2023 13:56:46 +0000 (15:56 +0200)]
Sync headers with drm-next
Synchronize drm.h, drm_mode.h and drm_fourcc.h to drm-next.
Generated using make headers_install.
Generated from drm-next branch commit
52920704df878050123dfeb469aa6ab8022547c1
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Fri, 14 Jul 2023 10:04:59 +0000 (12:04 +0200)]
xf86drm: drop control nodes implementation
Drop support for control nodes. The kernel never returns such
nodes. Stop trying to detect and handle them, and always return
an error when a caller tries to open them.
The header is left untouched to avoid breaking libdrm's API.
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Mon, 17 Jul 2023 14:17:45 +0000 (16:17 +0200)]
xf86drm: bump DRM_MAX_MINOR to 64
This is what the kernel uses (see drm_minor_alloc).
Signed-off-by: Simon Ser <contact@emersion.fr>
Xaver Hugl [Fri, 7 Apr 2023 23:42:17 +0000 (01:42 +0200)]
xf86drmMode: constify drmModeCrtcSetGamma
The data is never modified, so it should be const
Signed-off-by: Xaver Hugl <xaver.hugl@gmail.com>
Ruijing Dong [Mon, 10 Jul 2023 23:27:41 +0000 (19:27 -0400)]
tests/amdgpu/vcn: fix session buffer issue for vcn1-vcn3
issue:
in vcn1-vcn3, session buffer was not truly added, it shows
decoding creation commands cannot be sent multiple times.
problem:
session buffer has to be the first buffer sending out.
Otherwise, system could assume session buffer doesn't
exist.
solution:
move session buffer sending sequence to be the first one.
Reviewed-by: Veerabadhran Gopalakrishnan <Veerabadhran.Gopalakrishnan@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
Saleemkhan Jamadar [Thu, 22 Jun 2023 08:57:10 +0000 (14:27 +0530)]
tests/amdgpu/vcn:update decoder unit test
update decoder unit test with session context buffer for VCN v1 to v4
v2: remove multiple checks for vcn4 (Ruijing Dong)
Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Marek Olšák [Thu, 13 Apr 2023 15:01:51 +0000 (11:01 -0400)]
amdgpu: add an environment variable that overrides the context priority
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Ruijing Dong [Tue, 9 May 2023 20:15:41 +0000 (16:15 -0400)]
tests/amdgpu/vcn: fix drm test failure
1. fixed an issue that drm test vcn3/4 encoding test
could cause VCN engine stuck.
2. adding missing or errous encoding ib package members.
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Ruijing Dong [Tue, 9 May 2023 15:19:34 +0000 (11:19 -0400)]
tests/amdgpu/vcn: change vbv_buffer name to input
It is input buffer instead of vbv_buffer.
Correct its name.
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Luben Tuikov [Tue, 21 Mar 2023 12:51:50 +0000 (08:51 -0400)]
tests/amdgpu: Allow to exclude a test or a suite of tests
Add the command line argument -e s[.t] to exclude (disable) suite s, or to
exclude suite s test t.
This is useful for instance to run the Basic Suite, but disable the GPU reset
test, on the command line, like this:
amdgpu_tests -s 1 -e 1.13
This option can be specified more than once on the command line, in order to
exclude more than one suite and/or suite and test combination from being run.
Cc: Alex Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Luben Tuikov [Thu, 16 Mar 2023 22:17:18 +0000 (18:17 -0400)]
tests/amdgpu: Add all 9 options to the help output
Add -s and -t to the help output, as well as sort
the options output alphabetically.
v1: Fix a spelling in the subject of this commit.
Cc: Alex Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Luben Tuikov [Thu, 16 Mar 2023 19:09:14 +0000 (15:09 -0400)]
tests/amdgpu: Fix Usage string
Fix the Usage: string on -h (help) in amdgpu_tests.c,
so brackets match, and remove mismatched angle brackets.
Cc: Alex Deucher <Alexander.Deucher@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Jonathan Gray [Sun, 19 Mar 2023 08:50:19 +0000 (19:50 +1100)]
amdgpu: add marketing names from amd-5.4.3 (22.40.3)
Pierre-Eric Pelloux-Prayer [Mon, 20 Mar 2023 10:19:15 +0000 (11:19 +0100)]
amdgpu: remove va::dev member
This is unused so drop it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
jie zhang [Wed, 15 Feb 2023 04:45:05 +0000 (04:45 +0000)]
test/amdgpu/hotunplug: add apu check for hotplug test
For apu, it is integrated with cpu.
So hotplug test should be unnecessary for it.
Signed-off-by: Jesse Zhang <Jesse.Zhang@amd.com>
Reviewed-by: Flora Cui <flora.cui@amd.com>
Jan Beich [Wed, 8 Sep 2021 09:14:20 +0000 (09:14 +0000)]
meson: drop pthread-stubs dependency on BSDs
pthread-stubs >= 0.4 simply passes -pthread which is similar to what
dependency('threads') returns. And make it a private dependency
for subprojects even on Linux.
Reviewed-by: Emmanuel Vadot <manu@FreeBSD.org>
Yi Xie [Thu, 2 Feb 2023 03:58:12 +0000 (12:58 +0900)]
tests/util: Add vkms driver
Add an entry for the "vkms" driver, so that the test utilities work with
the vkms driver without passing the -M argument.
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Yi Xie <yixie@google.com>
Simon Ser [Thu, 9 Feb 2023 11:55:44 +0000 (12:55 +0100)]
build: bump version to 2.4.115
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Wed, 21 Dec 2022 11:36:59 +0000 (12:36 +0100)]
xf86drm: add support for printing AMD GFX11 modifiers
See kernel commit
543036a2de71 ("drm/amd: Add GFX11 modifiers support
to AMDGPU (v3)").
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Sun, 1 Jan 2023 19:14:58 +0000 (14:14 -0500)]
amdgpu: add some additional marketing names
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Tue, 27 Dec 2022 17:24:14 +0000 (12:24 -0500)]
amdgpu: add marketing names from amd-5.4 (22.40)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Simon Ser [Wed, 21 Dec 2022 15:42:44 +0000 (16:42 +0100)]
xf86drm: fix warning in drmGetFormatModifierNameFromVivante()
Fixes the following warning:
../xf86drm.c: In function ‘drmGetFormatModifierNameFromVivante’:
../xf86drm.c:614:14: warning: passing argument 1 of ‘asprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
614 | asprintf(&mod_vivante, "%s%s%s", color_tiling, tile_status, compression);
| ^~~~~~~~~~~~
| |
| const char **
In file included from ../xf86drm.c:34:
/usr/include/stdio.h:396:40: note: expected ‘char ** restrict’ but argument is of type ‘const char **’
396 | extern int asprintf (char **__restrict __ptr,
| ~~~~~~~~~~~~~~~~~~^~~~~
../xf86drm.c:615:12: warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
615 | return mod_vivante;
| ^~~~~~~~~~~
Signed-off-by: Simon Ser <contact@emersion.fr>
Philipp Zabel [Thu, 13 Oct 2022 11:44:38 +0000 (13:44 +0200)]
xf86drm: Add support for decoding Vivante format modifiers
Allow applications to pretty-print Vivante format modifiers.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Philipp Zabel [Wed, 30 Nov 2022 17:13:37 +0000 (18:13 +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 sub-8bpp formats, AVUY and XVUY 8:8:8:8, and
Vivante tile-status and compression modifiers.
Generated using make headers_install.
Generated from drm-next branch commit
077bd80083ab
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Matt Roper [Tue, 25 Oct 2022 00:07:28 +0000 (17:07 -0700)]
intel: Eliminate need to keep adding PCI IDs
The Intel-specific code in libdrm is continually updated with new PCI
IDs for each new platform so that we can recognize the IP version
properly. However this is mostly a pointless exercise; none of the
Intel code in libdrm is conditional on IP versions above 8. If we just
treat any future unrecognized Intel platforms as IP version 8, we should
get the same behavior without the need for continued PCI ID updates.
Note that the intel_decode tool probably _should_ have conditions on
newer IP versions, but it was last updated for gen8 and has been
bitrotting from gen9 onward. This change won't make the tool behave any
more incorrectly than it already does today.
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Saleemkhan Jamadar [Tue, 8 Nov 2022 11:39:14 +0000 (17:09 +0530)]
tests/amdgpu/jpeg: enable unit test for jpeg 4
Enable decode unit test for jpeg4.
Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
Reviewed-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Lang Yu [Wed, 9 Nov 2022 06:29:57 +0000 (14:29 +0800)]
tests/amdgpu: use AMDGPU_TIMEOUT_INFINITE to query fence
We need to wait longer when running on emulator.
Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Simon Ser [Thu, 3 Nov 2022 08:33:36 +0000 (09:33 +0100)]
build: bump version to 2.4.114
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Thu, 27 Oct 2022 17:13:06 +0000 (19:13 +0200)]
modetest: use dumb buffer helpers
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Wed, 2 Nov 2022 17:43:58 +0000 (18:43 +0100)]
modetest: use sized integers in struct bo
Use the same size types as the kernel.
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Wed, 2 Nov 2022 17:45:42 +0000 (18:45 +0100)]
modetest: drop unused offset field in struct bo
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Thu, 27 Oct 2022 17:11:20 +0000 (19:11 +0200)]
xf86drmMode: add helpers for dumb buffers
Up until now, DRM clients had to hand-roll their code to create,
destroy and map dumb buffers. This is slightly inconvenient,
a bit error-prone, and not easily discoverable.
Introduce wrappers for these operations, just like we have for
other KMS IOCTLs.
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Wed, 28 Sep 2022 06:53:17 +0000 (08:53 +0200)]
amdgpu: silence uninitialized variable warning
The compiler isn't smart enough to tell that this can't happen:
[30/74] Compiling C object amdgpu/libdrm_amdgpu.so.1.0.0.p/amdgpu_bo.c.o
In file included from ../amdgpu/amdgpu_internal.h:32,
from ../amdgpu/amdgpu_bo.c:39:
../xf86atomic.h: In function ‘amdgpu_find_bo_by_cpu_mapping’:
../xf86atomic.h:47:54: warning: ‘bo’ may be used uninitialized [-Wmaybe-uninitialized]
47 | # define atomic_inc(x) ((void) __sync_fetch_and_add (&(x)->atomic, 1))
| ^
../amdgpu/amdgpu_bo.c:536:27: note: ‘bo’ was declared here
536 | struct amdgpu_bo *bo;
| ^~
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Mon, 26 Sep 2022 21:19:27 +0000 (17:19 -0400)]
amdgpu: Add a default marketing name if none is found
Apparently quite a few apps use this API to get the GPU
name and end up with NULL as the GPU name.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Mon, 26 Sep 2022 15:20:31 +0000 (11:20 -0400)]
amdgpu_ids: add MI marketing names
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Fri, 23 Sep 2022 22:47:20 +0000 (18:47 -0400)]
amdgpu.ids: update to the latest marketing name
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Fri, 23 Sep 2022 22:41:06 +0000 (18:41 -0400)]
amdgpu.ids: sort the file
So the list is in numeric order.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher [Fri, 23 Sep 2022 22:11:01 +0000 (18:11 -0400)]
amdgpu.ids: use consistent formatting for RID
Use two digits for the revision id.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Simon Ser [Wed, 12 Oct 2022 07:40:06 +0000 (09:40 +0200)]
xf86drm: handle DRM_FORMAT_BIG_ENDIAN in drmGetFormatName()
This bit can be added to a DRM format to indicate that it's
big endian instead of little endian.
Signed-off-by: Simon Ser <contact@emersion.fr>
Marco Felsch [Fri, 8 Jul 2022 09:39:14 +0000 (11:39 +0200)]
tests/util: add imx-lcdif driver
This makes the test utilities work with the i.MX LCDIFv3 driver
without the necessity of using the -M argument.
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Simon Ser [Wed, 28 Sep 2022 06:49:40 +0000 (08:49 +0200)]
build: automatically disable Intel if pciaccess is not found
Wire up the pciaccess dep to the intel option. This automatically
skips the dep if intel is explicitly disabled, fails if intel is
explicitly enabled and it's not found, and disables intel if it's
set to auto and the dep is not found.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Simon Ser [Wed, 28 Sep 2022 06:55:14 +0000 (08:55 +0200)]
intel: move declarations to top in drm_intel_gem_bo_unreference()
Fixes the following warning:
[65/74] Compiling C object intel/libdrm_intel.so.1.0.0.p/intel_bufmgr_gem.c.o
../intel/intel_bufmgr_gem.c: In function â\80\98drm_intel_gem_bo_unreferenceâ\80\99:
../intel/intel_bufmgr_gem.c:1388:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
1388 | drm_intel_bufmgr_gem *bufmgr_gem =
| ^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Jordan Justen [Wed, 28 Sep 2022 23:46:20 +0000 (16:46 -0700)]
include/drm/i915_drm.h: Update from Linux v6.0-rc7
Generated from the Linux v6.0-rc7 tag with a sha1 of
f76349cf41451c5c42a99f18a9163377e4b364ff.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Jordan Justen [Wed, 28 Sep 2022 23:46:20 +0000 (16:46 -0700)]
include/drm/drm_fourcc.h: Update from Linux v6.0-rc7
Generated from the Linux v6.0-rc7 tag with a sha1 of
f76349cf41451c5c42a99f18a9163377e4b364ff.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Eli Schwartz [Sun, 11 Sep 2022 05:09:17 +0000 (01:09 -0400)]
meson: fast-fail on unsupported OSes
It's not worth even attempting to configure anything on OSes where there
is no DRM to have a userspace library for.
This failure message can be useful in e.g. the case where libdrm is an
optional wrap fallback in another project.
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Simon Ser [Wed, 31 Aug 2022 14:38:38 +0000 (16:38 +0200)]
build: bump to version 2.4.113
Signed-off-by: Simon Ser <contact@emersion.fr>
Simon Ser [Sun, 21 Aug 2022 12:18:28 +0000 (14:18 +0200)]
tests/modetest: use drmGetFormatName()
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Simon Ser [Sun, 21 Aug 2022 12:17:35 +0000 (14:17 +0200)]
xf86drm: add drmGetFormatName()
Same as drmGetFormatModifierName() but for formats.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Matt Roper [Fri, 26 Aug 2022 23:26:33 +0000 (16:26 -0700)]
intel: Hook up new platforms IDs
In commit
98794e2a0d ("lib: sync i915_pciids.h with kernel") we
resynchronized the PCI header with the kernel to bring in the
definitions for several new platforms. But before those IDs will be
recognized, we still need to hook them up in the libdrm chipset code as
well.
References: https://gitlab.freedesktop.org/drm/intel/-/issues/5416
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Sui Jingfeng [Mon, 17 Jan 2022 09:36:50 +0000 (17:36 +0800)]
meson: auto-enable etnaviv on arm, arc, mips and loongarch architectures
There is a Vivante GC1000 gpu in LS2K1000 and LS7A1000.
LS7A1000 is a bridge chip made by Loongson corporation
which act as north and/or south bridge of loongson's
desktop and server level processor. It is equivalent
to RS780E or something like that. In fact, the company
use RS780E as bridge of LS3A3000 at its early stage,
but as RS780E is out of stock long long time ago, the
company have to made one by themself. More details can
be read from its user manual[1].
This bridge chip typically use with LS3A3000, LS3A4000
and LS3A5000.
LS3A3000 is 4 core 1.45gHz mips64r2 compatible cpu.
LS3A4000 is 4 core 1.8gHz mips64r5 compatible cpu.
LS3A5000 is 4 core 2.5gHz loongarch cpu, the company
acclaim that loongarch a new archtecture with its
instruction set is released[2].
LS2K1000 is a double core 1.0Ghz mips64r2 compatible SoC[3].
we need to enable it to test and developing driver on above
listed archtecture.
[1] https://loongson.github.io/LoongArch-Documentation/Loongson-7A1000-usermanual-EN.html
[2] https://loongson.github.io/LoongArch-Documentation/Loongson-3A5000-usermanual-EN.html
[3] https://wiki.debian.org/InstallingDebianOn/Lemote/Loongson2K1000
Signed-off-by: Sui Jingfeng <15330273260@189.cn>
[Eric: rebase over meson changes, add ARM & ARC architectures, and drop
"experimental" from the description]
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Matt Turner [Tue, 23 Aug 2022 01:36:52 +0000 (21:36 -0400)]
intel: Avoid aliasing violation
../intel/test_decode.c: In function ‘compare_batch’:
../intel/test_decode.c:109:39: error: dereferencing type-punned pointer might break strict-aliasing rules [-Werror=strict-aliasing]
109 | out = open_memstream((char **)&ptr, &size);
| ^~~~
cc1: some warnings being treated as errors
The fix is simple: just declare `ptr` as a `char *` to begin with.
Eric Engestrom [Wed, 15 Mar 2017 23:27:25 +0000 (23:27 +0000)]
atomic: fix atomic_add_unless() fallback's return value
According to the kernel documentation:
Returns non-zero if @v was not @u, and zero otherwise.
Fixes:
63fc571863aa64683400 ("atomic: add atomic_add_unless()")
Closes: https://gitlab.freedesktop.org/mesa/drm/issues/17
Signed-off-by: David Shao <davshao@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
[Eric: fix its callers to maintain current behaviour]
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Matthieu Herrb [Tue, 26 Oct 2021 17:00:22 +0000 (19:00 +0200)]
Remove unused 3rd parameter to open(2)
The 3rd parameter is only used with the O_CREAT flag
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Eric Engestrom [Mon, 22 Aug 2022 16:10:16 +0000 (17:10 +0100)]
meson: simplify some more build options by using features
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Simon Ser <contact@emersion.fr>
Eric Engestrom [Mon, 22 Aug 2022 16:04:52 +0000 (17:04 +0100)]
meson: convert auto combos into proper features
Allows users to easily enable everything (eg. packagers), or select just
the drivers they want with something like:
-D auto-features=disabled -D amdgpu=enabled
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Simon Ser <contact@emersion.fr>
Eric Engestrom [Tue, 23 Aug 2022 16:51:34 +0000 (17:51 +0100)]
ci: drop dead script since
e722ba9f67
Noticed-by: Michel Daenzer <michel@daenzer.net>
Eric Engestrom [Mon, 22 Aug 2022 19:20:40 +0000 (20:20 +0100)]
meson: fix value of `auto` for a bunch of drivers
You can't have an error if your driver is requested by you're missing
a dep, but then happily build that driver without the dep in `auto`.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Eric Engestrom [Mon, 22 Aug 2022 17:16:46 +0000 (18:16 +0100)]
ci: bump images tags to take !255 into effect
Reviewed-by: Simon Ser <contact@emersion.fr>
Eric Engestrom [Mon, 22 Aug 2022 17:22:46 +0000 (18:22 +0100)]
ci/freedesktop: bump python version of docutils package as 3.8 no longer exists
Eric Engestrom [Mon, 22 Aug 2022 16:41:18 +0000 (17:41 +0100)]
ci: fix the tested meson version
Reviewed-by: Simon Ser <contact@emersion.fr>
Eric Engestrom [Mon, 22 Aug 2022 16:40:09 +0000 (17:40 +0100)]
ci: remove system meson before installing the pip one
Reviewed-by: Simon Ser <contact@emersion.fr>
Simon Zeni [Thu, 28 Jul 2022 10:18:33 +0000 (06:18 -0400)]
build: make tests optional
Building the project as a meson subproject, meson inherits the warning level
from the parent project. Making the tests optional bypasses that issue and
reduces build time.
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Simon Ser <contact@emersion.fr>
Likun Gao [Wed, 13 Jul 2022 05:43:51 +0000 (13:43 +0800)]
tests/amdgpu: add sdma slow copy linear hang test
Issue slow copy linear for sdma to trigger SDMA hang test.
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Likun Gao [Wed, 13 Jul 2022 02:28:20 +0000 (10:28 +0800)]
tests/amdgpu: add sdma corrupted header hang test
Issue corrupted header for sdma to trigger SDMA hang test.
Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Flora Cui [Thu, 7 Jul 2022 13:01:56 +0000 (21:01 +0800)]
tests/amdgpu: add dispatch/draw test for gfx11
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Flora Cui [Thu, 7 Jul 2022 12:48:19 +0000 (20:48 +0800)]
tests/amdgpu: refactor dispatch/draw test
Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Hawking Zhang [Sat, 12 Feb 2022 06:56:01 +0000 (14:56 +0800)]
tests/amdgpu: skip gfx CE subtest in gfx11
CE is not available in gfx11
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Matt Roper [Wed, 27 Jul 2022 04:42:50 +0000 (21:42 -0700)]
lib: sync i915_pciids.h with kernel
This synchronizes with kernel commit
7835303982d1 ("drm/i915/mtl: Add
MeteorLake PCI IDs") to bring in the missing PCI IDs for several recent
platforms.
These days adding PCI IDs to libdrm doesn't really matter for real-world
system usage. However there are still a few driver testing situations
where they're needed (such as the IGT dma-buf tests that still rely on
libdrm's bufmgr code). At some point we should probably break that
final IGT dependency on libdrm so that these PCI ID resyncs won't be
necessary anymore, but that hasn't happened yet.
References: https://gitlab.freedesktop.org/drm/intel/-/issues/5416
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>