Compare commits

..

44 commits

Author SHA1 Message Date
Dylan Baker
d9812eaea8 VERSION: bump for rc2
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-10-22 16:13:33 -07:00
Benjamin Cheng
be191ceff7 radv/video_enc: Cleanup slice count assert
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This was left over when first enabling multiple slice encoding.

Fixes: 63e952ff2c ("radv/video: Support encoding multiple slices")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit b6d6c1af73)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:39 -07:00
Pierre-Eric Pelloux-Prayer
49bfddbd11 radeonsi: propagate shader updates for merged shaders
In case of merged shaders (eg: VS+GS), a change to VS should trigger
a GS update.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13935
Fixes: b1a34ac95d ("radeonsi: change do_update_shaders boolean to a bitmask")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 90103fe618)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:39 -07:00
Faith Ekstrand
0182cde848 util: Build util/cache_ops_x86.c with -msse2
__builtin_ia32_clflush() requires -msse2 so we need to set -msse2 at
least for building that file.  Fortunately, there are no GPUs that
actually need userspace cache flushing that can ever be bolted onto a
pre-SSE2 x86 CPUs.

Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14134
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit efbecd93ba)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:38 -07:00
Faith Ekstrand
94ec7c686d util: Don't advertise cache ops on x86 without SSE2
Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 3739d7a90c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:37 -07:00
Olivia Lee
4202ea6c7f panfrost: fix cl_local_size for precompiled shaders
nir_lower_compute_system_values will attempt to lower
load_workgroup_size unless workgroup_size_variable is set. For precomp
shaders, the workgroup size is set statically for each entrypoint by
nir_precompiled_build_variant. Because we call
lower_compute_system_values early, it sets the workgroup size to zero.
Temporarily setting workgroup_size_variable while we are still
processing all the entrypoints together inhibits this.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 20970bcd96 ("panfrost: Add base of OpenCL C infrastructure")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit a410d90fd2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:37 -07:00
Rhys Perry
10475e8ac1 amd/lower_mem_access_bit_sizes: fix shared access when bytes<bit_size/8
This can happen with (for example) 32x2 loads with
align_mul=4,align_offset=2.

This patch does bit_size=min(bit_size,bytes) to prevent num_components
from being 0.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 52cd5f7e69 ("ac/nir_lower_mem_access_bit_sizes: Split unsupported shared memory instructions")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit b18421ae3d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:36 -07:00
Rhys Perry
c1cf6e75ae amd/lower_mem_access_bit_sizes: be more careful with 8/16-bit scratch load
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 25.3
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit e89b22280f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:34 -07:00
Rhys Perry
2b8675fd86 amd/lower_mem_access_bit_sizes: improve subdword/unaligned SMEM lowering
Summary of changes:
- handle unaligned 16-bit scalar loads when supported_dword=true
- increases the size of 8/16/32/64-bit buffer loads which are not dword
  aligned, which can create less SMEM loads.
- handles when "bytes" is less than "bit_size / 8"

fossil-db (gfx1201):
Totals from 26 (0.03% of 79839) affected shaders:
Instrs: 12676 -> 12710 (+0.27%); split: -0.30%, +0.57%
CodeSize: 67272 -> 67384 (+0.17%); split: -0.24%, +0.40%
Latency: 44399 -> 44375 (-0.05%); split: -0.09%, +0.04%
SClause: 352 -> 344 (-2.27%)
SALU: 3972 -> 3992 (+0.50%)
SMEM: 554 -> 528 (-4.69%)

fossil-db (navi21):
Totals from 6 (0.01% of 79825) affected shaders:
Instrs: 2192 -> 2186 (-0.27%)
CodeSize: 12188 -> 12140 (-0.39%)
Latency: 10037 -> 10033 (-0.04%); split: -0.12%, +0.08%
SMEM: 124 -> 118 (-4.84%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 8829fc3bd6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:32 -07:00
Rhys Perry
e967da84a8 amd/lower_mem_access_bit_sizes: don't create subdword UBO loads with LLVM
These are unsupported.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14127
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 79b2fa785d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:31 -07:00
Dylan Baker
2a8f2ff397 .pick_status.json: Update to e38491eb18
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-22 09:03:27 -07:00
Mel Henning
7a30a71c45 nvk: VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR
This was missed in the original maintenance9 MR.

Fixes the flakes in test
dEQP-VK.synchronization2.op.single_queue.event.write_ssbo_compute_read_ssbo_compute.buffer_16384_maintenance9

Fixes: 7692d3c0 ("nvk: Advertise VK_KHR_maintenance9")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 28fbc6addb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:55 -07:00
Karol Herbst
9c57c0a194 nak: fix MMA latencies on Ampere
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 7a01953a39 ("nak: Add Ampere and Ada latency information")
(cherry picked from commit e7dca5a6ca)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:54 -07:00
Karol Herbst
425c49ebf2 nak: ensure deref has a ptr_stride in cmat load/store lowering
With untyped pointer we might get a deref_cast with a 0 ptr_stride. But we
were supposed to ignore the stride information on the pointer anyway, so
let's do that properly now.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 05dca16143 ("nak: extract nir_intrinsic_cmat_load lowering into a function")
(cherry picked from commit 3bbf3f7826)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:54 -07:00
Karol Herbst
7b7cb63a14 nak: extract cmat load/store element offset calculation
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Fixes: 05dca16143 ("nak: extract nir_intrinsic_cmat_load lowering into a function")
(cherry picked from commit f632bfc715)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:53 -07:00
Faith Ekstrand
1941ada4a6 panvk: Fix integer dot product properties
We already set has_[su]dot_4x8[_sat] in nir_shader_compiler_options so
we're already getting the opcodes.  We just need to advertise the
features properly.  If bifrost_compile.h is to be believed, those are
all available starting at gen 9.

Closes: https://gitlab.freedesktop.org/panfrost/mesa/-/issues/218
Closes: https://gitlab.freedesktop.org/panfrost/mesa/-/issues/219
Fixes: f7f9b3d170 ("panvk: Move to vk_properties")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 38950083ae)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:52 -07:00
Lionel Landwerlin
e982234bb6 nir/divergence: fix handling of intel uniform block load
Those are normally uniform always, but for the purpose of fused
threads handling, we need to check their sources.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ca1533cd03 ("nir/divergence: add a new mode to cover fused threads on Intel HW")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 255d1e883d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:52 -07:00
Lionel Landwerlin
dbbadebe13 brw: fix ballot() type operations in shaders with HALT instructions
Fixes dEQP-VK.reconvergence.terminate_invocation.bit_count

LNL fossildb stats:

 Totals from 16489 (3.36% of 490184) affected shaders:
 Instrs: 3710499 -> 3710500 (+0.00%)
 Cycle count: 91601018 -> 90305642 (-1.41%); split: -1.81%, +0.40%
 Max dispatch width: 523936 -> 523952 (+0.00%); split: +0.02%, -0.01%

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
(cherry picked from commit 757c042e39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:51 -07:00
Lionel Landwerlin
0d100cc078 brw: only consider cross lane access on non scalar VGRFs
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 1bff4f93ca ("brw: Basic infrastructure to store convergent values as scalars")
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
(cherry picked from commit 70aa028f27)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:50 -07:00
Lionel Landwerlin
f656d062e3 brw: constant fold u2u16 conversion on MCS messages
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: bddfbe7fb1 ("brw/blorp: lower MCS fetching in NIR")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit f48c9c3a37)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:50 -07:00
Mel Henning
847ad886d6 nvk: Really fix maxVariableDescriptorCount w/ iub
I didn't test "nvk: Fix maxVariableDescriptorCount with iub" as
thoroughly as I should have and it regressed
dEQP-VK.api.maintenance3_check.descriptor_set because we were then
violating the requirement that maxPerSetDescriptors describes a limit
that's guaranteed to be supported (and reported as supported in
GetDescriptorSetLayoutSupport).

That commit was also based on a misreading of nvk_nir_lower_descriptors.c
where I thought that the end offset of an inline uniform block needed to
be less than the size of a UBO. That is not the case - on closer
inspection that code gracefully falls back to placing IUBs in globablmem
if necessary. So, we can afford to be less strict about our IUB sizing
and only require that IUBs follow the existing limit imposed by
maxInlineUniformBlockSize.

Fixes: ff7f785f09 ("nvk: Fix maxVariableDescriptorCount with iub")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 77cd629b34)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:48 -07:00
Emma Anholt
5dcc65643c nir/shrink_stores: Don't shrink stores to an invalid num_components.
Avoids a regression in the CL CTS on the next commit.

Fixes: 2dba7e6056 ("nir: split nir_opt_shrink_stores from nir_opt_shrink_vectors")
(cherry picked from commit 537cc4e0ff)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:47 -07:00
Yiwei Zhang
ab7bda0a1b panvk: fix to advance vs res_table properly
Fix a regression from an unfortunate typo.

Fixes: 48e8d6d207 ("panfrost, panvk: The size of resource tables needs to be a multiple of 4.")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 387f75f43d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Yiwei Zhang
a02d8d5767 panvk: fix to advance vs driver_set properly
Should only set once outside the multidraw loop so that per draw can
patch its own own desc attribs when needed.

Fixes: a5a0dd3ccc ("panvk: Implement multiDrawIndirect for v10+")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 800c4d3430)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Timur Kristóf
13fa1460dd ac/nir/ngg_mesh: Lower num_subgroups to constant
Mesh shader workgroups always have the same amount of subgroups.

When the API workgroup size is the same as the real workgroup
size, this is a small optimization (using a constant instead of
a shader arg).

When the API workgroup size is smaller than the real workgroup
size (eg. when the number of output vertices or primitves is
greater than the API workgroup size on RDNA 2), this fixes a
potential bug because num_subgroups would return the "real"
workgroup size instead of the API one.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
(cherry picked from commit d20049b430)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:29 -07:00
Patrick Lerda
14544ef278 r600: update nplanes support
This change fixes "piglit/bin/ext_image_dma_buf_import-export -auto".

Fixes: 02aaf360ae ("r600: Implement resource_get_param")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 84dc9af3d4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:28 -07:00
Patrick Lerda
602b4a2924 r600: fix r600_draw_rectangle refcnt imbalance
The object buf is referenced at the beginning of the
r600_draw_rectangle() function and should be freed
at the end. This issue was introduced with cbb6e0277f.

Fixes: cbb6e0277f ("r600: stop using util_set_vertex_buffers")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit 3b1e3a40a8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:28 -07:00
Jose Maria Casanova Crespo
717e8a8caf v3d: mark FRAG_RESULT_COLOR as output_written on SAND blits FS
With the introduction of "v3d: Add support for 16bit normalised
formats" https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35820
nir_lower_fragcolor is always called if shaders outputs_written shows
that FRAG_RESULT_COLOR is used.

But on SAND8/30 blit fragment shaders although the FRAG_RESULT_COLOR
is used, it was not marked as output_written so the lowering was not
applied.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14141
Fixes: ee48e81b26 ("v3d: Always lower frag color")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
(cherry picked from commit a131530dd1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:27 -07:00
Emma Anholt
40ff53c5b8 wsi: Fix the flagging of dma_buf_sync_file for the amdgpu workaround.
In my regression fix, I covered one of the two paths that had stopped
setting the implicit_sync flag and thus triggered the amdgpu behavior we
don't want, but probably the less common one.

Fixes: f7cbc7b1c5 ("radv: Allocate BOs as implicit sync even if the WSI is doing implicit sync.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13942
(cherry picked from commit aa96444149)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:27 -07:00
Marek Olšák
bf9e1f2e37 winsys/radeon: fix completely broken tessellation for gfx6-7
The info was moved to radeon_info, but it was only set for the amdgpu
kernel driver. It was uninitialized for radeon.

Fixes: d82eda72a1 - ac/gpu_info: move HS info into radeon_info

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit f5b648f6d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:26 -07:00
Benjamin Cheng
c3cf272a04 radv/video: Fill maxCodedExtent caps first
Later code (i.e. max qp map extent filling) depends on this.

Fixes: ae6ea69c85 ("radv: Implement VK_KHR_video_encode_quantization_map")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit b1370e1935)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:25 -07:00
Dylan Baker
30ba8880b4 .pick_status.json: Update to 28fbc6addb
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-21 14:42:24 -07:00
Job Noorman
42ab1c6f3c nir: mark fneg distribution through fadd/ffma as nsz
df1876f615 ("nir: Mark negative re-distribution on fadd as imprecise")
fixed the fadd case by marking it as imprecise. This commit fixes the
ffma case for the same reason.

However, "imprecise" isn't necessary and nowadays we have "nsz" which is
more accurate here. Use that for both fadd and ffma.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: 62795475e8 ("nir/algebraic: Distribute source modifiers into instructions")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit ad421cdf2e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:30 -07:00
Josh Simmons
674e2a702a radv: Fix crash in sqtt due to uninitalized value
Fixes: 772b9ce411 ("radv: Remove qf from radv_spm/sqtt/perfcounter where applicable")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit b10c1a1952)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:29 -07:00
Mike Blumenkrantz
756618ee3b zink: consistently set/unset msrtss in begin_rendering
this has to always be set or unset, never persistent from previous renderpass

Fixes: 5080f2b6f5 ("zink: disable msrtss handling when blitting")
(cherry picked from commit f74cf45078)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:28 -07:00
Marek Olšák
ca7d2daf5f r300: fix DXTC blits
Fixes: 9d359c6d10 - gallium: delete pipe_surface::width and pipe_surface::height
(cherry picked from commit 733ba77bfe)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:27 -07:00
Xaver Hugl
45aafef631 vulkan/wsi: require extended target volume support for scRGB
It's hardly going to be useful without that

Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
Fixes: 4b663d56 ("vulkan/wsi: implement support for VK_EXT_hdr_metadata on Wayland")
(cherry picked from commit 892cf427a0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:25 -07:00
Dylan Baker
8711394383 .pick_status.json: Mark c20e2733bf as denominated
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:41:23 -07:00
Dylan Baker
289c768e88 .pick_status.json: Update to ad421cdf2e
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-17 07:40:05 -07:00
Lionel Landwerlin
84655b4b5d anv: fix image-to-image copies of TileW images
The intermediate buffer between the 2 images is linear, its stride
should be a function of the tile's logical width.

Normally this should map to the values reported by ISL except for
TileW where for some reason it was decided to report 128 for TileW
instead of the actual 64 size (see isl_tiling_get_info() ISL_TILING_W
case)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 77fb8fb062)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:38 -07:00
Valentine Burley
fd6b9c70b6 docs: Update LAVA caching setup
After a recent change, `piglit-traces.sh` automatically sets the caching
proxy, so update the docs to reflect this.

Also update the name of the variable from `FDO_HTTP_CACHE_URI` to
`LAVA_HTTP_CACHE_URI`.

Fixes: fa74e939bf ("ci/piglit: automatically use LAVA proxy")

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
(cherry picked from commit 28e73a6239)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:37 -07:00
Lionel Landwerlin
9bb7bf9c66 Revert "wsi: Implements scaling controls for DRI3 presentation."
This reverts commit a219308867.

It's failing most of the tests on Anv :

$ ./deqp-vk -n dEQP-VK.wsi.xlib.maintenance1.scaling.*

Test run totals:
  Passed:        88/2422 (3.6%)
  Failed:        576/2422 (23.8%)
  Not supported: 1758/2422 (72.6%)
  Warnings:      0/2422 (0.0%)
  Waived:        0/2422 (0.0%)

The only passing tests seem to be with this pattern :

 dEQP-VK.wsi.xlib.maintenance1.scaling.*.same_size_and_aspect

(cherry picked from commit 2baa3b8c06)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:36 -07:00
Dylan Baker
f510e6a1bd .pick_status.json: Update to 3b2f7ed918
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38010>
2025-10-16 11:37:29 -07:00
Dylan Baker
40f7bef16c VERSION: bump for 25.3.0-rc1
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-10-15 20:56:25 -07:00
2748 changed files with 81355 additions and 158064 deletions

View file

@ -8,7 +8,7 @@ charset = utf-8
insert_final_newline = true
tab_width = 8
[*.{c,h,cpp,hpp,cc,hh,y,yy,cl,glsl}]
[*.{c,h,cpp,hpp,cc,hh,y,yy,cl}]
indent_style = space
indent_size = 3
max_line_length = 78

View file

@ -77,6 +77,3 @@ c7bf3b69ebc8f2252dbf724a4de638e6bb2ac402
# freedreno/a6xx: The great register renaming
7fd99c88b9cd5c0c8c1cb3e92383acac5cb8220b
# radv: re-format using clang-format
1492de1bc3610539b93d8ad17892e7139cd4b05d

View file

@ -41,7 +41,7 @@ workflow:
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64: priority:high
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM: priority:high-kvm
FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64: priority:high-aarch64
CI_TRON_JOB_PRIORITY: high
CI_TRON_JOB_PRIORITY_TAG: "" # Empty tags are ignored by gitlab
JOB_PRIORITY: 75
# fast-fail in merge pipelines: stop early if we get this many unexpected fails/crashes
DEQP_RUNNER_MAX_FAILS: 40
@ -61,7 +61,6 @@ workflow:
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64: priority:low
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM: priority:low-kvm
FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64: priority:low-aarch64
CI_TRON_JOB_PRIORITY: low
JOB_PRIORITY: 45
# (some) nightly builds perform LTO, so they take much longer than the
# short timeout allowed in other pipelines.
@ -124,7 +123,7 @@ variables:
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64: "" # Empty tags are ignored by gitlab
FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM: kvm
FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64: aarch64
CI_TRON_JOB_PRIORITY: default
CI_TRON_JOB_PRIORITY_TAG: ci-tron:priority:low
JOB_PRIORITY: 50
DATA_STORAGE_PATH: data_storage
KERNEL_IMAGE_BASE: "https://$S3_HOST/$S3_KERNEL_BUCKET/$KERNEL_REPO/$KERNEL_TAG"
@ -423,3 +422,4 @@ sanity:
when: on_failure
reports:
junit: check-*.xml

View file

@ -6,3 +6,6 @@ dEQP-VK.api.external.memory.android_hardware_buffer.*
# only APKs support window creation on Android.
dEQP-VK.image.swapchain_mutable.*
dEQP-VK.wsi.*
# These tests cause hangs and need to be skipped for now.
dEQP-VK.synchronization*

View file

@ -5,3 +5,12 @@ dEQP-GLES3.functional.transform_feedback.random.*
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*
KHR-GLES31.core.program_interface_query.transform-feedback-types
# CTS bug - https://gerrit.khronos.org/c/vk-gl-cts/+/17901
# https://issues.angleproject.org/issues/436377594#comment6
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.attachment_advanced_equation
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.blend_qualifier_mismatch
dEQP-GLES31.functional.debug.negative_coverage.log.compute.invalid_program_query
dEQP-GLES31.functional.debug.negative_coverage.log.shader.link_program
dEQP-GLES31.functional.debug.negative_coverage.log.shader.use_program
dEQP-GLES31.functional.debug.negative_coverage.log.tessellation.single_tessellation_stage

View file

@ -31,6 +31,7 @@
optional: true
- job: debian-arm32
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64-gl:
@ -45,6 +46,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system
.baremetal-test-arm64-vk:
@ -59,6 +61,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
# ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build
.baremetal-arm32-asan-test-gl:
@ -70,6 +73,7 @@
optional: true
- job: debian-arm32-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-asan-test-gl:
variables:
@ -80,6 +84,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-asan-test-vk:
variables:
@ -90,6 +95,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-gl:
extends:
@ -102,6 +108,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-arm64-ubsan-test-vk:
extends:
@ -114,6 +121,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.required-for-hardware-jobs, needs]
.baremetal-deqp-test:
variables:

View file

@ -13,7 +13,7 @@ make-git-archive:
# Compactify the .git directory
- git gc --aggressive
# Download & cache the perfetto subproject as well.
- rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl --fail --location https://github.com/google/perfetto/archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - --strip-components=1 -C subprojects/perfetto
- rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl --fail https://android.googlesource.com/platform/external/perfetto/+archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - -C subprojects/perfetto
# compress the current folder
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
@ -44,7 +44,6 @@ debian-x86_64:
-D spirv-to-dxil=true
-D tools=drm-shim
-D valgrind=disabled
-D perfetto=true
S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE}
RUN_MESON_TESTS: "false" # debian-build-x86_64 already runs these
artifacts:
@ -58,7 +57,7 @@ debian-x86_64-asan:
- .build-run-long
variables:
VULKAN_DRIVERS: "swrast,amd,intel"
GALLIUM_DRIVERS: "llvmpipe,softpipe,zink,r300"
GALLIUM_DRIVERS: "llvmpipe,softpipe,zink"
C_ARGS: >
-Wno-error=stringop-truncation
-Wno-error=deprecated-declarations
@ -362,7 +361,6 @@ debian-android:
-D android-libbacktrace=disabled
-D mesa-clc=system
-D precomp-compiler=system
-D perfetto=true
GALLIUM_ST: >
-D gallium-va=disabled
-D gallium-rusticl=false
@ -392,7 +390,7 @@ debian-android:
- git clean -dxf .
# aarch64 build:
- export CROSS=aarch64-linux-android
- export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d,zink
- export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d
- export VULKAN_DRIVERS=freedreno,broadcom,panfrost,virtio
- export S3_ARTIFACT_NAME=mesa-arm64-android-${BUILDTYPE}
- !reference [.meson-build-for-tests, script]
@ -495,7 +493,6 @@ debian-arm64:
-D imagination-srv=true
-D freedreno-kmds=msm,virtio
-D teflon=true
-D perfetto=true
GALLIUM_ST:
-D gallium-rusticl=true
RUN_MESON_TESTS: "false" # run by debian-arm64-build-testing
@ -507,8 +504,8 @@ debian-arm64-asan:
- .meson-build-for-tests
- .build-run-long
variables:
VULKAN_DRIVERS: "broadcom,freedreno,panfrost"
GALLIUM_DRIVERS: "freedreno,vc4,v3d,panfrost"
VULKAN_DRIVERS: "broadcom,freedreno"
GALLIUM_DRIVERS: "freedreno,vc4,v3d"
C_ARGS: >
-Wno-error=deprecated-declarations
DRI_LOADERS:
@ -713,10 +710,9 @@ debian-vulkan:
-D c_args=-fno-sanitize-recover=all
-D cpp_args=-fno-sanitize-recover=all
UBSAN_OPTIONS: "print_stacktrace=1"
VULKAN_DRIVERS: amd,asahi,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination,microsoft-experimental,nouveau,kosmickrisp
VULKAN_DRIVERS: amd,asahi,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination,microsoft-experimental,nouveau
EXTRA_OPTION: >
-D vulkan-layers=device-select,overlay
-D tools=drm-shim
-D build-radv-tests=true
-D build-aco-tests=true
-D intel-rt=disabled
@ -755,22 +751,6 @@ debian-x86_32:
-D mesa-clc=enabled
-D install-mesa-clc=true
# In case of issues with this job, contact @frankbinns
debian-riscv64:
extends:
- .meson-cross
- .use-debian/riscv64_build
- .meson-build-only
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
variables:
BUILDTYPE: debug
CROSS: riscv64
GALLIUM_DRIVERS: "llvmpipe,zink"
VULKAN_DRIVERS: "swrast"
# See https://gitlab.freedesktop.org/mesa/mesa/-/issues/14123
MESON_TEST_ARGS: "--no-suite mesa:llvmpipe"
# While s390 is dead, s390x is very much alive, and one of the last major
# big-endian platforms, so it provides useful coverage.
# In case of issues with this job, contact @ajax

View file

@ -36,9 +36,10 @@
# Keep the job script in the artifacts
CI_TRON_JOB_SCRIPT_PATH: results/job_script.sh
needs:
- !reference [.required-for-hardware-jobs, needs]
tags:
- farm:$RUNNER_FARM_LOCATION
- ci-tron:priority:$CI_TRON_JOB_PRIORITY
- $CI_TRON_DUT_SETUP_TAGS
# Override the default before_script, as it is not compatible with the CI-tron environment. We just keep the clearing
@ -95,6 +96,7 @@
optional: true
- job: debian-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-vk-manual:
extends:
@ -108,6 +110,7 @@
optional: true
- job: debian-build-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl:
extends:
@ -119,6 +122,7 @@
optional: true
- job: debian-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl-manual:
extends:
@ -132,20 +136,7 @@
optional: true
- job: debian-build-x86_64
artifacts: false
.ci-tron-x86_64-test-gl-asan-manual:
extends:
- .use-debian/x86_64_test-gl
- .ci-tron-x86_64-test
variables:
S3_ARTIFACT_NAME: "mesa-x86_64-asan-debugoptimized"
DEQP_FORCE_ASAN: 1
needs:
- job: debian/x86_64_test-gl
artifacts: false
optional: true
- job: debian-x86_64-asan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test:
extends:
@ -165,6 +156,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-vk:
extends:
@ -179,6 +171,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-vk:
extends:
@ -192,6 +185,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-gl:
extends:
@ -203,6 +197,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-gl:
extends:
@ -217,6 +212,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-gl:
extends:
@ -230,6 +226,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test:
extends:
@ -249,6 +246,7 @@
optional: true
- job: debian-arm32
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-gl:
extends:
@ -260,6 +258,7 @@
optional: true
- job: debian-arm32
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-asan-gl:
extends:
@ -274,3 +273,4 @@
optional: true
- job: debian-arm32-asan
artifacts: false
- !reference [.ci-tron-test, needs]

View file

@ -1,7 +1,7 @@
variables:
CONDITIONAL_BUILD_ANDROID_CTS_TAG: b018634d732f438027ec58c0383615e7
CONDITIONAL_BUILD_ANGLE_TAG: 6ade8a52dd596b3de5dee62006bf4fc3
CONDITIONAL_BUILD_CROSVM_TAG: 4c61f9707203afca91db3efeb57175db
CONDITIONAL_BUILD_ANGLE_TAG: ccde6a2b0d3509c2a8fc459cbd936ac4
CONDITIONAL_BUILD_CROSVM_TAG: 4079babd375b09761d59eacb25a0598a
CONDITIONAL_BUILD_FLUSTER_TAG: e13f8521875ebd70e207ec0f6f3d3e5b
CONDITIONAL_BUILD_PIGLIT_TAG: 8eafc8b1214f64f0d9a298e7a57bc87a
CONDITIONAL_BUILD_VKD3D_PROTON_TAG: 072beee85d89e75f9a81664b77198b92
CONDITIONAL_BUILD_PIGLIT_TAG: e31960eaf7d80a9e8cdd7869fbcef7f7
CONDITIONAL_BUILD_VKD3D_PROTON_TAG: 167feb963fb512795aeddc9d1588bc7c

View file

@ -13,7 +13,7 @@ section_start angle "Building ANGLE"
# setting up the environment variables locally
ci_tag_build_time_check "ANGLE_TAG"
ANGLE_REV="2ed4b049c064add3109c7b1e0c954a0bce856df8"
ANGLE_REV="8ed16003f27125f27cbb87578368e447043420d3"
DEPOT_REV="5982a1aeb33dc36382ed8c62eddf52a6135e7dd3"
# Set ANGLE_ARCH based on DEBIAN_ARCH if it hasn't been explicitly defined

View file

@ -16,13 +16,13 @@ section_start crosvm "Building crosvm"
git config --global user.email "mesa@example.com"
git config --global user.name "Mesa CI"
CROSVM_VERSION=f58c8e685f3f21d733861a080a0857acafd0da56
CROSVM_VERSION=4a6b4316155742fbfa1be7087c2ee578cfee884d
git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm
pushd /platform/crosvm
git checkout "$CROSVM_VERSION"
git submodule update --init
VIRGLRENDERER_VERSION=95610d57da49d76617bd6d8d21b9bfb1bf360f64
VIRGLRENDERER_VERSION=06d43ce974b664f9dc521b706a0ad7f91dbf2866
rm -rf third_party/virglrenderer
git clone --single-branch -b main --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer
pushd third_party/virglrenderer

View file

@ -23,10 +23,10 @@ set -x
# - the GL release produces `glcts`, and
# - the GLES release produces `deqp-gles*` and `deqp-egl`
DEQP_MAIN_COMMIT=211e452358f5cafd14bdd76d78342b62741e94aa
DEQP_VK_VERSION=1.4.4.2
DEQP_GL_VERSION=4.6.7.0
DEQP_GLES_VERSION=3.2.13.0
DEQP_MAIN_COMMIT=db48c34bebaf3359453e44ab151a2ff9f9c58eb2
DEQP_VK_VERSION=1.4.3.3
DEQP_GL_VERSION=4.6.6.0
DEQP_GLES_VERSION=3.2.12.0
# Patches to VulkanCTS may come from commits in their repo (listed in
# cts_commits_to_backport) or patch files stored in our repo (in the patch
@ -46,8 +46,6 @@ main_cts_patch_files=(
# shellcheck disable=SC2034
vk_cts_commits_to_backport=(
# Add an option to print to logcat in Android executable builds
fc51668efdfd0dffa30b3eddee34aa26172969fb
)
# shellcheck disable=SC2034
@ -56,25 +54,29 @@ vk_cts_patch_files=(
# shellcheck disable=SC2034
gl_cts_commits_to_backport=(
# Add testing for GL_PRIMITIVES_SUBMITTED_ARB query.
e075ce73ddc5973aa46a5236c715bb281c9501fa
)
# shellcheck disable=SC2034
gl_cts_patch_files=(
build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch
build-deqp-gl_Revert-Add-missing-context-deletion.patch
build-deqp-gl_Revert-Fix-issues-with-GLX-reset-notification-strate.patch
build-deqp-gl_Revert-Fix-spurious-failures-when-using-a-config-wit.patch
)
# shellcheck disable=SC2034
# GLES builds also EGL
gles_cts_commits_to_backport=(
# CMake: Include FindPkgConfig before using pkg_check_modules()
e09e0a210b041d0bf7b525620d0068eab3ffa66a
# Add an option to print to logcat in Android executable builds
fc51668efdfd0dffa30b3eddee34aa26172969fb
)
# shellcheck disable=SC2034
gles_cts_patch_files=(
build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch
build-deqp-gl_Revert-Add-missing-context-deletion.patch
build-deqp-gl_Revert-Fix-issues-with-GLX-reset-notification-strate.patch
build-deqp-gl_Revert-Fix-spurious-failures-when-using-a-config-wit.patch
)

View file

@ -1,77 +0,0 @@
#!/usr/bin/env bash
set -uex
section_start perfetto "Building perfetto"
BASE_PWD=$PWD
PERFETTO_REVISION=$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3)
patch_files=(
"build-perfetto-Fix-C-standard-library-build-errors-with-Debian-13.patch"
)
# Set PERFETTO_ARCH based on DEBIAN_ARCH
if [[ -z "${PERFETTO_ARCH:-}" ]]; then
case "$DEBIAN_ARCH" in
amd64) PERFETTO_ARCH=x64;;
arm64) PERFETTO_ARCH=arm64;;
esac
fi
git clone --branch "$PERFETTO_REVISION" --depth 1 https://github.com/google/perfetto /perfetto
pushd /perfetto
for patch in "${patch_files[@]}"; do
echo "Applying patch: $patch"
git am "$BASE_PWD/.gitlab-ci/container/patches/$patch"
done
# Base GN args
mkdir -p _build
cat >_build/args.gn <<EOF
is_debug=false
target_cpu="${PERFETTO_ARCH}"
target_os="${PERFETTO_TARGET}"
EOF
case "$PERFETTO_TARGET" in
linux)
# Override Perfettos default toolchain selection here, as the bundled
# arm64 toolchain is an x86-64 -> arm64 cross-compiler.
cat >>_build/args.gn <<EOF
is_system_compiler = true
is_hermetic_clang = false
ar = "ar"
cc = "clang-${LLVM_VERSION}"
cxx = "clang++-${LLVM_VERSION}"
extra_ldflags = "-fuse-ld=lld-${LLVM_VERSION} -lpthread -ldl"
EOF
./tools/install-build-deps
;;
android)
# No additional args needed when cross-building for Android
./tools/install-build-deps --android
;;
*)
echo "Unexpected PERFETTO_TARGET value: $PERFETTO_TARGET"
exit 1
;;
esac
./tools/gn gen _build/
./tools/ninja -C _build/ tracebox
mkdir -p build
cp _build/tracebox build/
"${STRIP_CMD:-strip}" build/tracebox || true
# Cleanup everything except build/
find . -mindepth 1 -maxdepth 1 ! -name build -exec rm -rf {} +
popd
section_end perfetto

View file

@ -13,7 +13,7 @@ section_start piglit "Building piglit"
# setting up the environment variables locally
ci_tag_build_time_check "PIGLIT_TAG"
REV="2842979ebe03b99c33c3e49af5960c69be6c6d46"
REV="4147e9d7aeb8ba26ffc25a90fc237588bcb3bb11"
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
pushd /piglit

View file

@ -12,7 +12,11 @@ section_start rust "Building Rust toolchain"
# DEBIAN_BUILD_BASE_TAG
# DEBIAN_TEST_BASE_TAG
MINIMUM_SUPPORTED_RUST_VERSION=$(python3 -c 'import tomllib; print(tomllib.load(open("clippy.toml", "rb"))["msrv"])')
# This version number should match what we require in meson.build so we catch
# build issues from patches relying on new features in newer Rust versions.
# Keep this is sync with the `rustc.version()` check in meson.build, and with
# the `rustup default` line in .gitlab-ci/meson/build.sh
MINIMUM_SUPPORTED_RUST_VERSION=1.82.0
# This version number can be bumped freely, to benefit from the latest
# diagnostics in CI `build-only` jobs, and for building external CI
@ -35,7 +39,7 @@ curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
if [ "$1" = "build" ]
then
rustup toolchain install --profile minimal --component clippy,rustfmt "$MINIMUM_SUPPORTED_RUST_VERSION"
rustup toolchain install --profile minimal --component clippy,rustfmt $MINIMUM_SUPPORTED_RUST_VERSION
fi
find "$HOME"/.rustup/toolchains/*/lib -type f -name "*.so" -exec strip {} \;

View file

@ -11,7 +11,7 @@ section_start vkd3d-proton "Building vkd3d-proton"
# setting up the environment variables locally
ci_tag_build_time_check "VKD3D_PROTON_TAG"
VKD3D_PROTON_COMMIT="33a41f9d14460f998c5ce8a4aab42ca1cce8dcc6"
VKD3D_PROTON_COMMIT="0845d1b69c6b474debe39d25f0137bf108a42b92"
VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests"
VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src"

View file

@ -22,8 +22,6 @@ elif [[ "$arch" = "i386" ]]; then
rust_target=i686-unknown-linux-gnu
elif [[ "$arch" = "ppc64el" ]]; then
rust_target=powerpc64le-unknown-linux-gnu
elif [[ "$arch" = "riscv64" ]]; then
rust_target=riscv64gc-unknown-linux-gnu
elif [[ "$arch" = "s390x" ]]; then
rust_target=s390x-unknown-linux-gnu
else

View file

@ -121,30 +121,6 @@ debian/ppc64el_build:
- job: debian/ppc64el_build
optional: true
# Debian based RISC-V 64 cross-build image
debian/riscv64_build:
extends:
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-riscv64_build ${DEBIAN_BUILD_TAG}
LLVM_VERSION: &debian-riscv64-llvm 19
.use-debian/riscv64_build:
tags:
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
extends:
- .set-image-base-tag
variables:
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_IMAGE_PATH: "debian/riscv64_build"
MESA_IMAGE_TAG: *debian-riscv64_build
LLVM_VERSION: *debian-riscv64-llvm
needs:
- job: sanity
optional: true
- job: debian/riscv64_build
optional: true
# Debian based s390x cross-build image
debian/s390x_build:
extends:

View file

@ -1,20 +0,0 @@
#!/usr/bin/env bash
set -e
. .gitlab-ci/setup-test-env.sh
arch=riscv64
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
libssl-dev
)
apt-get -y install "${EPHEMERAL[@]}"
. .gitlab-ci/container/build-mold.sh
apt-get purge -y "${EPHEMERAL[@]}"
. .gitlab-ci/container/cross_build.sh

View file

@ -77,6 +77,28 @@ apt-get install -y --no-remove --no-install-recommends \
section_end debian_setup
############### Build piglit replayer
if [ "$DEBIAN_ARCH" != "armhf" ]; then
# We don't run any _piglit_ Vulkan tests in the containers.
PIGLIT_OPTS="-DPIGLIT_USE_WAFFLE=ON
-DPIGLIT_USE_GBM=OFF
-DPIGLIT_USE_WAYLAND=OFF
-DPIGLIT_USE_X11=OFF
-DPIGLIT_BUILD_GLX_TESTS=OFF
-DPIGLIT_BUILD_EGL_TESTS=OFF
-DPIGLIT_BUILD_WGL_TESTS=OFF
-DPIGLIT_BUILD_GL_TESTS=OFF
-DPIGLIT_BUILD_GLES1_TESTS=OFF
-DPIGLIT_BUILD_GLES2_TESTS=OFF
-DPIGLIT_BUILD_GLES3_TESTS=OFF
-DPIGLIT_BUILD_CL_TESTS=OFF
-DPIGLIT_BUILD_VK_TESTS=OFF
-DPIGLIT_BUILD_DMA_BUF_TESTS=OFF" \
PIGLIT_BUILD_TARGETS="piglit_replayer" \
. .gitlab-ci/container/build-piglit.sh
fi
############### Build dEQP VK
DEQP_API=tools \

View file

@ -101,12 +101,12 @@ EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DAND
DEQP_API=GLES \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
DEQP_API=VK \
DEQP_TARGET="android" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_ANDROID_EXE_LOGCAT=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \
. .gitlab-ci/container/build-deqp.sh
rm -rf /VK-GL-CTS

View file

@ -0,0 +1,42 @@
From 067676253ad11846f420087d30021629f3c43382 Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:51:08 +0200
Subject: Revert "Add missing context deletion"
This reverts commit 195ee2c99d3174e738506cc86828766805c0ede9.
---
.../modules/gles31/es31cComputeShaderTests.cpp | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp b/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
index 4c7349e59..ece33929d 100644
--- a/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
+++ b/external/openglcts/modules/gles31/es31cComputeShaderTests.cpp
@@ -721,11 +721,6 @@ class LongRunningComputeFenceTest : public ComputeShaderBase
glDeleteProgram(m_program2);
glDeleteBuffers(2, &m_buffer);
- // Delete shared context and keep default context set
- delete m_sharedContext;
- m_sharedContext = NULL;
- m_context.getRenderContext().makeCurrent();
-
return NO_ERROR;
}
};
@@ -910,12 +905,6 @@ class LongRunningPersistentSSBOComputeTest : public ComputeShaderBase
{
glDeleteBuffers(2, &m_buffer);
m_dataLoadStore = NULL;
-
- // Delete shared context and keep default context set
- delete m_sharedContext;
- m_sharedContext = NULL;
- m_context.getRenderContext().makeCurrent();
-
return NO_ERROR;
}
};
--
2.45.2

View file

@ -0,0 +1,81 @@
From 6cd7a951f6a50d0f74c798035ac7ce201f2aa6f0 Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:51:03 +0200
Subject: Revert "Fix issues with GLX reset notification strategy"
This reverts commit 3e6b3fb43eb9682641d8c880429255569a4472c0.
---
.../platform/lnx/X11/tcuLnxX11GlxPlatform.cpp | 23 ++++---------------
1 file changed, 4 insertions(+), 19 deletions(-)
diff --git a/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp b/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
index b21e6bcbd..e1d33823c 100644
--- a/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
+++ b/framework/platform/lnx/X11/tcuLnxX11GlxPlatform.cpp
@@ -147,7 +147,6 @@ private:
GlxDisplay &m_display;
::Visual *m_visual;
const GLXFBConfig m_fbConfig;
- glu::ResetNotificationStrategy resetStrategy;
};
class GlxDrawable
@@ -220,7 +219,6 @@ public:
virtual const tcu::RenderTarget &getRenderTarget(void) const;
virtual glw::GenericFuncType getProcAddress(const char *name) const;
const GLXContext &getGLXContext(void) const;
- const GlxVisual &getGLXVisual(void) const;
private:
GlxDisplay m_glxDisplay;
@@ -412,31 +410,23 @@ GLXContext GlxVisual::createContext(const GlxContextFactory &factory, const Cont
}
}
- const GlxRenderContext *sharedGlxRenderContext = dynamic_cast<const GlxRenderContext *>(sharedContext);
-
- /* If there is a shared context, use same reset notification strategy. */
- glu::ResetNotificationStrategy usedResetNotificationStrategy =
- sharedGlxRenderContext ? sharedGlxRenderContext->getGLXVisual().resetStrategy : resetNotificationStrategy;
-
- if (usedResetNotificationStrategy != glu::RESET_NOTIFICATION_STRATEGY_NOT_SPECIFIED)
+ if (resetNotificationStrategy != glu::RESET_NOTIFICATION_STRATEGY_NOT_SPECIFIED)
{
checkGlxExtension(m_display, "GLX_ARB_create_context_robustness");
attribs.push_back(GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB);
- if (usedResetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_NO_RESET_NOTIFICATION)
+ if (resetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_NO_RESET_NOTIFICATION)
attribs.push_back(GLX_NO_RESET_NOTIFICATION_ARB);
- else if (usedResetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_LOSE_CONTEXT_ON_RESET)
+ else if (resetNotificationStrategy == glu::RESET_NOTIFICATION_STRATEGY_LOSE_CONTEXT_ON_RESET)
attribs.push_back(GLX_LOSE_CONTEXT_ON_RESET_ARB);
else
TCU_THROW(InternalError, "Unknown reset notification strategy");
}
- // Reset notification strategy used with this visual.
- resetStrategy = resetNotificationStrategy;
-
// Terminate attrib list
attribs.push_back(None);
+ const GlxRenderContext *sharedGlxRenderContext = dynamic_cast<const GlxRenderContext *>(sharedContext);
const GLXContext &sharedGLXContext = sharedGlxRenderContext ? sharedGlxRenderContext->getGLXContext() : nullptr;
return TCU_CHECK_GLX(
@@ -815,11 +805,6 @@ const GLXContext &GlxRenderContext::getGLXContext(void) const
return m_GLXContext;
}
-const GlxVisual &GlxRenderContext::getGLXVisual(void) const
-{
- return m_glxVisual;
-}
-
MovePtr<ContextFactory> createContextFactory(EventState &eventState)
{
return MovePtr<ContextFactory>(new GlxContextFactory(eventState));
--
2.45.2

View file

@ -0,0 +1,56 @@
From b512e6d5a0c79b194293936bd06656646913704e Mon Sep 17 00:00:00 2001
From: Valentine Burley <valentine.burley@collabora.com>
Date: Fri, 11 Apr 2025 16:50:57 +0200
Subject: Revert "Fix spurious failures when using a config without
pbuffer support"
This reverts commit 415a0ba8ecde404ef37ce96ece55b46854b44888.
---
external/openglcts/modules/common/glcTestSubcase.cpp | 10 ----------
framework/egl/egluGLContextFactory.cpp | 2 --
2 files changed, 12 deletions(-)
diff --git a/external/openglcts/modules/common/glcTestSubcase.cpp b/external/openglcts/modules/common/glcTestSubcase.cpp
index 93e58c18a..cd43cc068 100644
--- a/external/openglcts/modules/common/glcTestSubcase.cpp
+++ b/external/openglcts/modules/common/glcTestSubcase.cpp
@@ -233,11 +233,6 @@ TestSubcase::IterateResult TestSubcase::iterate(void)
if (subError == ERROR)
log.writeMessage("Test Setup() failed");
}
- catch (const tcu::NotSupportedError &ex)
- {
- log.writeMessage(ex.what());
- subError = NOT_SUPPORTED;
- }
catch (const runtime_error &ex)
{
log.writeMessage(ex.what());
@@ -258,11 +253,6 @@ TestSubcase::IterateResult TestSubcase::iterate(void)
if (subError == ERROR)
log.writeMessage("Test Run() failed");
}
- catch (const tcu::NotSupportedError &ex)
- {
- log.writeMessage(ex.what());
- subError = NOT_SUPPORTED;
- }
catch (const runtime_error &ex)
{
log.writeMessage(ex.what());
diff --git a/framework/egl/egluGLContextFactory.cpp b/framework/egl/egluGLContextFactory.cpp
index 66783ad8b..f347b40ad 100644
--- a/framework/egl/egluGLContextFactory.cpp
+++ b/framework/egl/egluGLContextFactory.cpp
@@ -539,8 +539,6 @@ void RenderContext::postIterate(void)
if (m_window)
{
- EGLU_CHECK_CALL(egl, makeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext));
-
EGLBoolean swapOk = egl.swapBuffers(m_eglDisplay, m_eglSurface);
EGLint error = egl.getError();
const bool badWindow = error == EGL_BAD_SURFACE || error == EGL_BAD_NATIVE_WINDOW;
--
2.45.2

View file

@ -1,49 +0,0 @@
From 7a5a9e5be4306637cd3a0ef0f770832f4b4cf4b4 Mon Sep 17 00:00:00 2001
From: Laura Nao <laura.nao@collabora.com>
Date: Wed, 12 Nov 2025 14:45:32 +0100
Subject: [PATCH] Fix C++ standard library build errors with Debian 13
Address missing <algorithm> and <optional> includes that caused build
failures ("no member named 'find' in namespace 'std'" and
"error: no template named 'optional' in namespace 'std'") when building
with the native toolchain on Debian 13.
This was fixed upstream in v48[1] and v49[2] respectively, so this patch
can be dropped once Perfetto is updated to v48+.
[1] https://github.com/google/perfetto/commit/d005c0123b2f929b918359a53ffe61d7ca2212a0
[2] https://github.com/google/perfetto/commit/acc24608c84d2d2d8d684f40a110d0a6f4eddc51
Signed-off-by: Laura Nao <laura.nao@collabora.com>
---
src/profiling/common/producer_support.cc | 1 +
src/traced/probes/sys_stats/sys_stats_data_source.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/profiling/common/producer_support.cc b/src/profiling/common/producer_support.cc
index 5303658..e9e193d 100644
--- a/src/profiling/common/producer_support.cc
+++ b/src/profiling/common/producer_support.cc
@@ -16,6 +16,7 @@
#include "src/profiling/common/producer_support.h"
+#include <algorithm>
#include <optional>
#include "perfetto/ext/base/android_utils.h"
diff --git a/src/traced/probes/sys_stats/sys_stats_data_source.h b/src/traced/probes/sys_stats/sys_stats_data_source.h
index e09cd8a..7e4749b 100644
--- a/src/traced/probes/sys_stats/sys_stats_data_source.h
+++ b/src/traced/probes/sys_stats/sys_stats_data_source.h
@@ -21,6 +21,7 @@
#include <map>
#include <memory>
+#include <optional>
#include <string>
#include "perfetto/ext/base/paged_memory.h"
--
2.39.5

View file

@ -39,7 +39,7 @@ if [ -n "${FLUSTER_TAG:-}" ]; then
export LIBVA_MESSAGING_LEVEL=1
fi
if [ -n "${PIGLIT_TAG:-}" ]; then
if [ -n "$PIGLIT_TAG" ]; then
# Are we using the right Piglit version?
ci_tag_test_time_check "PIGLIT_TAG"
elif [ -d "/piglit" ]; then

View file

@ -34,9 +34,9 @@
# anholt | (decommissioned) | @anholt
# austriancoder | ci-tron | @austriancoder
# collabora | lava | @daniels, @sergi
# google-freedreno | none (moving to LAVA) | @daniels, @sergi
# igalia | baremetal/poe-powered, ci-tron | @jasuarez, @chema
# lima | lava | @enunes
# lumag | ci-tron | @lumag
# microsoft | custom | @jenatali, @alatiera
# ondracka | ci-tron | @ondracka
# pengutronix | lava | @hnez, @lynxeye
@ -293,26 +293,14 @@
- !reference [.pengutronix-farm-rules, rules]
.lumag-farm-rules:
# Temporary placeholder as the devices move across to LAVA.
.google-freedreno-farm-rules:
rules:
- exists: [ .ci-farms-disabled/lumag ]
when: never
- changes: [ .ci-farms-disabled/lumag ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: on_success
- changes: [ .ci-farms-disabled/* ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- when: never
.lumag-farm-manual-rules:
.google-freedreno-farm-manual-rules:
rules:
- exists: [ .ci-farms-disabled/lumag ]
when: never
- changes: [ .ci-farms-disabled/lumag ]
if: '$CI_PIPELINE_SOURCE != "schedule"'
when: never
- !reference [.lumag-farm-rules, rules]
- when: never
# Skip container & build jobs when disabling any farm, and run them if any
# farm gets re-enabled.
@ -370,10 +358,6 @@
changes: [ .ci-farms-disabled/pengutronix ]
exists: [ .ci-farms-disabled/pengutronix ]
when: never
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: [ .ci-farms-disabled/lumag ]
exists: [ .ci-farms-disabled/lumag ]
when: never
# Any other change to ci-farms/* means some farm is getting re-enabled.
# Run jobs in Marge pipelines (and let it fallback to manual otherwise)
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "marge-bot"'

View file

@ -19,27 +19,27 @@ include:
- .gitlab-ci/conditional-build-image-tags.yml
variables:
DEBIAN_BUILD_BASE_TAG: "20251016-riscv"
DEBIAN_BUILD_BASE_TAG: "20251014-testfix"
DEBIAN_BUILD_TAG: "20250926-D3D618"
DEBIAN_TEST_BASE_TAG: "20251203-virgl"
DEBIAN_TEST_ANDROID_TAG: "20251212-angle-2e"
DEBIAN_TEST_GL_TAG: "20251212-piglit-28"
DEBIAN_TEST_BASE_TAG: "20250926-gitlab"
DEBIAN_TEST_ANDROID_TAG: "20251014-vkcts"
DEBIAN_TEST_GL_TAG: "20251014-vkcts"
DEBIAN_TEST_VIDEO_TAG: "20250813-vector"
DEBIAN_TEST_VK_TAG: "20251208-deqp"
DEBIAN_TEST_VK_TAG: "20251014-vkcts"
ALPINE_X86_64_BUILD_TAG: "20251001-realninja"
FEDORA_X86_64_BUILD_TAG: "20250917-rust"
KERNEL_TAG: "v6.17-mesa-ceea"
KERNEL_TAG: "v6.16-mesa-9d85"
KERNEL_REPO: "gfx-ci/linux"
PKG_REPO_REV: "0d2527f6"
FIRMWARE_TAG: "8fc31b97"
FIRMWARE_TAG: "36f9bbfa"
FIRMWARE_REPO: "gfx-ci/firmware"
WINDOWS_X64_MSVC_TAG: "20251120-bison"
WINDOWS_X64_MSVC_TAG: "20250906-d3d10umd"
WINDOWS_X64_BUILD_TAG: "20251120-bison"
WINDOWS_X64_BUILD_TAG: "20251001-D3D618"
WINDOWS_X64_TEST_TAG: "20251120-bison"
WINDOWS_X64_TEST_TAG: "20250926-D3D618"

View file

@ -13,7 +13,7 @@ variables:
# 4. lava/health-check-docker - the slim container used for fastboot
# Set image: directly instead of extending .set-image to avoid conflicts
# with MESA_IMAGE_PATH and FDO_DISTRIBUTION_TAG between the containers.
image: registry.freedesktop.org/gfx-ci/lava-job-submitter/alpine/x86_64_lava-trigger:20251111.0
image: registry.freedesktop.org/gfx-ci/lava-job-submitter/alpine/x86_64_lava-trigger:20251009-fastboot
# Cancel job if a newer commit is pushed to the same branch
interruptible: true
# The jobs themselves shouldn't actually run for an hour, of course.
@ -66,6 +66,8 @@ variables:
- $RUNNER_TAG
after_script:
- curl -L --retry 4 -f --retry-connrefused --retry-delay 30 -s "https://${JOB_RESULTS_PATH}" | tar --warning=no-timestamp --zstd -x
needs:
- !reference [.required-for-hardware-jobs, needs]
.lava-x86_64-test:
extends:
@ -87,6 +89,7 @@ variables:
HWCI_TEST_SCRIPT: install/cuttlefish-runner.sh
S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-android
artifacts: false
optional: true
@ -100,6 +103,7 @@ variables:
- .use-debian/x86_64_test-gl
- .lava-x86_64-test
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-gl
artifacts: false
optional: true
@ -114,6 +118,7 @@ variables:
DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-gl
artifacts: false
optional: true
@ -125,6 +130,7 @@ variables:
- .use-debian/x86_64_test-video
- .lava-x86_64-test
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-video
artifacts: false
optional: true
@ -136,6 +142,7 @@ variables:
- .use-debian/x86_64_test-vk
- .lava-x86_64-test
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-vk
artifacts: false
optional: true
@ -150,6 +157,7 @@ variables:
DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-x86_64-asan-debugoptimized
needs:
- !reference [.lava-test, needs]
- job: debian/x86_64_test-vk
artifacts: false
optional: true
@ -171,6 +179,7 @@ variables:
- .use-debian/arm32_test-gl
- .lava-arm32-test
needs:
- !reference [.lava-test, needs]
- job: debian/arm32_test-gl
artifacts: false
optional: true
@ -192,6 +201,7 @@ variables:
- .use-debian/arm64_test-gl
- .lava-arm64-test
needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-gl
artifacts: false
optional: true
@ -206,6 +216,7 @@ variables:
DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-gl
artifacts: false
optional: true
@ -217,6 +228,7 @@ variables:
- .use-debian/arm64_test-vk
- .lava-arm64-test
needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-vk
artifacts: false
optional: true
@ -231,6 +243,7 @@ variables:
DEQP_FORCE_ASAN: 1
S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized
needs:
- !reference [.lava-test, needs]
- job: debian/arm64_test-vk
artifacts: false
optional: true

View file

@ -43,7 +43,9 @@ fi
# Android manages the rust toolchain differently, ignore that case
if [ "$CI_JOB_STAGE" = "build-for-tests" ] && [[ "$CI_JOB_NAME" != *android* ]]; then
rustup default "$(python3 -c 'import tomllib; print(tomllib.load(open("'"$CI_PROJECT_DIR"'/clippy.toml", "rb"))["msrv"])')"
# Keep this in sync with the `rustc.version()` check in meson.build, and
# MINIMUM_SUPPORTED_RUST_VERSION in .gitlab-ci/container/build-rust.sh
rustup default 1.82.0
fi
# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected

View file

@ -11,17 +11,11 @@ set -o xtrace
CROSS_FILE=/cross_file-"$CROSS".txt
if [ -d install/bin ]; then
# Keep pps-producer binary for tests that need it.
# Remove all other binaries to save space.
find install/bin -type f -not -name 'pps-producer' -delete
fi
# Delete unused includes from artifacts to save space.
rm -rf install/include
# Delete unused bin and includes from artifacts to save space.
rm -rf install/bin install/include
rm -f install/lib/*.a
# Strip the drivers and binaries in the artifacts to cut 80% of the artifacts size.
# Strip the drivers in the artifacts to cut 80% of the artifacts size.
if [ -n "$CROSS" ]; then
STRIP=$(sed -n -E "s/strip\s*=\s*\[?'(.*)'\]?/\1/p" "$CROSS_FILE")
if [ -z "$STRIP" ]; then
@ -32,7 +26,7 @@ else
STRIP="strip"
fi
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS" ]; then
find install -type f -executable -exec $STRIP --strip-debug {} \;
find install -name \*.so -exec $STRIP --strip-debug {} \;
fi
git_sha=$(git rev-parse --short=10 HEAD)

View file

@ -118,6 +118,7 @@ def main():
# before we make it to 9-digit jobs (we're at 7 so far).
nick = args.runner
nick = nick.replace('mesa-', '')
nick = nick.replace('google-freedreno-', '')
nick += f'-{args.job}'
irc.send_line(f"NICK {nick}")
irc.send_line(f"USER {nick} unused unused: Gitlab CI Notifier")

View file

@ -22,16 +22,6 @@ for driver in freedreno intel lima v3d vc4; do
section_end shader-db-${driver}
done
# Run shader-db over a number of supported platforms for crocus/iris
for platform in hsw bdw skl mtl; do
section_start "shader-db-intel-${platform}" "Running shader-db for intel - ${platform}"
env LD_PRELOAD="$LIBDIR/libintel_noop_drm_shim.so" \
INTEL_STUB_GPU_PLATFORM="${platform}" \
./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \
> "$ARTIFACTSDIR/intel-${platform}-shader-db.txt"
section_end "shader-db-intel-${platform}"
done
# Run shader-db over a number of supported chipsets for nouveau
for chipset in 40 a3 c0 e4 f0 134 162; do
section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}"

View file

@ -60,8 +60,6 @@
- subprojects/**/*
- .gitattributes
- src/*
- src/android_stub/**/*
- src/c11/**/*
- src/compiler/**/*
- src/drm-shim/**/*
- src/gtest/**/*

View file

@ -41,6 +41,7 @@
- job: debian/x86_64_test-gl
optional: true
- job: debian-x86_64
- !reference [.required-for-hardware-jobs, needs]
variables:
DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -53,6 +54,7 @@
- job: debian-x86_64
- job: debian/x86_64_test-vk
optional: true
- !reference [.required-for-hardware-jobs, needs]
variables:
DEBIAN_ARCH: amd64
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -64,6 +66,7 @@
needs:
- job: debian/x86_64_test-gl
optional: true
- !reference [.required-for-hardware-jobs, needs]
variables:
S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized
@ -88,6 +91,7 @@
- job: debian/x86_64_test-android
artifacts: false
optional: true
- !reference [.required-for-hardware-jobs, needs]
timeout: 20m
script:
- ./install/cuttlefish-runner.sh
@ -178,3 +182,13 @@
- rm -rf install
- (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x)
- section_end artifacts_download
# Jobs that need to pass before spending hardware resources on further testing
.required-for-hardware-jobs:
needs:
- job: rustfmt
optional: true
artifacts: false
- job: yaml-toml-shell-py-test
optional: true
artifacts: false

View file

@ -27,6 +27,8 @@ Start-Process -NoNewWindow -Wait -FilePath C:\vs_buildtools.exe `
"--add", "Microsoft.VisualStudio.Component.VC.ATL", `
"--add", "Microsoft.VisualStudio.Component.VC.ATLMFC", `
"--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", `
"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL", ` # MSVC 2019
"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC", `
"--add", "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", `
"--add", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", `
"--add", "Microsoft.VisualStudio.Component.Graphics.Tools", `

View file

@ -36,23 +36,22 @@ $MACHINE_PATH=[System.Environment]::GetEnvironmentVariable('PATH', [System.Envir
Write-Output "Before winget install USER_PATH:$USER_PATH MACHINE_PATH:$MACHINE_PATH"
$Packages = @(
'Microsoft.WindowsWDK.10.0.26100,10.1.26100.6584',
'Python.Python.3.13,3.13.9',
'Ninja-build.Ninja,1.13.1',
'Kitware.CMake,4.1.3',
'Git.Git,2.52.0',
'WinFlexBison.win_flex_bison,2.5.24',
'bloodrock.pkg-config-lite,0.28-1'
'Microsoft.WindowsWDK.10.0.26100',
'Python.Python.3.13',
'Ninja-build.Ninja',
'Kitware.CMake',
'Git.Git',
'WinFlexBison.win_flex_bison',
'bloodrock.pkg-config-lite'
)
$ProgressPreference = "SilentlyContinue"
New-Item -Force -ItemType 'directory' -Name 'flexbison' -Path 'C:\temp'
foreach ($package in $Packages)
{
$package_id, $package_version = $package -split ',', 2
Write-Output "Installing $package_id with version $package_version by winget"
Write-Output "Installing $package with winget"
For ($i = 0; $i -lt 5; $i++) {
winget install --verbose --silent --accept-package-agreements --source winget --exact --id $package_id --version $package_version --log C:\temp\wdk-install.log
winget install --verbose --silent --accept-package-agreements --source winget --exact --id $package --log C:\temp\wdk-install.log
$packages_installed = $?
if ($packages_installed) {
Break

View file

@ -460,8 +460,6 @@ Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@mupuf.org>
Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@linux.intel.com>
Martin Roukala (né Peres) <martin.roukala@mupuf.org> <martin.peres@labri.fr>
Mary Guillemard <mary@mary.zone> <mary.guillemard@collabora.com>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
@ -616,8 +614,6 @@ Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
Ryan Mckeever <ryan.mckeever@collabora.com> <rebecca.mckeever@collabora.com>
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>

View file

@ -43,7 +43,6 @@ issues:
'intel/executor': 'intel-executor'
'iris': 'iris'
'isl': 'ISL'
'kk': 'KosmicKrisp'
'lima': 'lima'
'lima/ppir': 'lima'
'llvmpipe': 'llvmpipe'
@ -63,7 +62,6 @@ issues:
'panfrost': 'panfrost'
'panvk': 'panvk'
'pan/midgard': 'panfrost'
'poly': 'poly'
'pvr': 'powervr'
'r100': 'r100'
'r200': 'r200'
@ -270,8 +268,8 @@ merge_requests:
'^src/intel/tools/': ['intel-tools']
'^src/intel/vulkan/': ['ANV']
'^src/intel/vulkan_hasvk/': ['hasvk']
'^src/kosmickrisp/': ['KosmicKrisp']
'^src/loader/': ['loader']
'^src/mapi/': ['mapi']
'^src/mesa/drivers/dri/i915/': ['i915']
'^src/mesa/drivers/dri/i965/': ['i965']
'^src/mesa/drivers/dri/nouveau/': ['vieux']
@ -297,7 +295,6 @@ merge_requests:
'^src/nouveau/winsys/': ['NVK']
'^src/panfrost/': ['panfrost']
'^src/panfrost/vulkan/': ['panvk']
'^src/poly/': ['poly']
'^src/virtio/vulkan/': ['venus']
'^src/virtio/venus-protocol/': ['venus']
'^src/virtio/ci/': ['venus']
@ -305,7 +302,7 @@ merge_requests:
'^src/util/00-mesa-defaults.conf': ['drirc']
'^src/vulkan/': ['vulkan']
'^src/vulkan/wsi/': ['wsi']
'^VERSION$': ['mesa-release']
'^VERSION$': ['maintainer-scripts']
'Android': ['android']
'EGL': ['EGL']

2782
.pick_status.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -137,10 +137,6 @@ gitlab-ci*.yml @eric
/src/gallium/drivers/iris/ @kwg @llandwerlin @idr
/src/gallium/drivers/i915/ @anholt
# KosmicKrisp
/src/kosmickrisp @aitor
/src/kosmickrisp/compiler @agoldmints
# Microsoft
/src/microsoft/ @jenatali
/src/gallium/drivers/d3d12/ @jenatali

View file

@ -1 +1 @@
26.0.0-devel
25.3.0-rc2

View file

@ -45,13 +45,17 @@ REFRESH_WAIT_LOG = 10
REFRESH_WAIT_JOBS = 6
MAX_ENABLE_JOB_ATTEMPTS = 3
STATUS_COLORS = defaultdict(lambda: "", {
STATUS_COLORS = {
"created": "",
"running": "[blue]",
"success": "[green]",
"failed": "[red]",
"canceled": "[magenta]",
"canceling": "[magenta]",
})
"manual": "",
"pending": "",
"skipped": "",
}
COMPLETED_STATUSES = frozenset({"success", "failed"})
RUNNING_STATUSES = frozenset({"created", "pending", "running"})

View file

@ -106,6 +106,7 @@ class GitlabGQL:
logging.error(traceback_str)
self.invalidate_query_cache()
logging.error("Cache invalidated, retrying without cache")
finally:
return run_uncached()
def _query(

View file

@ -22,7 +22,7 @@ import gitlab
from gitlab.base import RESTObjectList
from gitlab.exceptions import GitlabAuthenticationError
from gitlab.v4.objects import Project, ProjectMergeRequest
from gitlab_common import get_token_from_default_dir, read_token, pretty_duration
from gitlab_common import read_token, pretty_duration
from rich.console import Console
REFRESH_WAIT = 30
@ -47,7 +47,6 @@ def parse_args() -> argparse.Namespace:
parse.add_argument(
"--token",
metavar="token",
default=get_token_from_default_dir(),
help="force GitLab token, otherwise it's read from ~/.config/gitlab-token",
)
return parse.parse_args()

View file

@ -6,7 +6,7 @@ kaleido==0.2.*
pandas==2.*
plotly==5.*
python-dateutil==2.*
python-gitlab==5.*
python-gitlab==4.*
rich==14.1.*
ruamel.yaml.clib==0.2.*
ruamel.yaml==0.17.*

View file

@ -226,8 +226,8 @@ async def gather_bugs(version: str) -> typing.List[str]:
loop = asyncio.get_event_loop()
async with aiohttp.ClientSession(loop=loop) as session:
results = await asyncio.gather(*[get_bug(session, i) for i in issues])
# Remove duplicates.
bugs = sorted(set(results))
typing.cast(typing.Tuple[str, ...], results)
bugs = list(results)
if not bugs:
bugs = ['None']
return bugs

View file

@ -24,9 +24,6 @@ import typing
import pytest
if typing.TYPE_CHECKING:
import aiohttp
# AsyncMock is new in 3.8, so if we're using an older version we need the
# backported version of mock
if sys.version_info >= (3, 8):
@ -202,25 +199,7 @@ async def test_parse_issues(content: str, bugs: typing.List[str]) -> None:
ids = await parse_issues('1234 not used')
assert set(ids) == set(bugs)
@pytest.mark.asyncio
async def test_rst_escape():
out = inliner.quoteInline('foo@bar')
assert out == 'foo\@bar'
@pytest.mark.asyncio
async def test_gather_bugs_duplicates():
mock_gc = mock.AsyncMock(return_value='something')
mock_pi = mock.AsyncMock(return_value=['a', 'b', 'a', 'a', 'c', 'b'])
async def get_bug(session: 'aiohttp.ClientSession', bug_id: str) -> str:
return bug_id
with mock.patch('bin.gen_release_notes.gather_commits', mock_gc), \
mock.patch('bin.gen_release_notes.parse_issues', mock_pi), \
mock.patch('bin.gen_release_notes.get_bug', get_bug):
bugs = await gather_bugs('')
assert bugs == ['a', 'b', 'c']

View file

@ -16,7 +16,6 @@ Caterina Shablia, caterina.shablia@collabora.com, nanokatze
Chia-I Wu, olvaffe@gmail.com, olv
Christian Gmeiner, cgmeiner@igalia.com, austriancoder
Christopher Michael, cmichael@igalia.com, cpmichael
Christoph Pillmayer, christoph.pillmayer@arm.com, chrpil
Colin Marc, hi@colinmarc.com, colinmarc
Connor Abbott, cwabbott0@gmail.com, cwabbott0
Corentin Noël, corentin.noel@collabora.com, tintou
@ -85,11 +84,11 @@ Lukas Lipp, lippls@hotmail.com, fknfilewalker
Maíra Canal, mcanal@igalia.com, mairacanal
Manuel Dun, manueldun@gmail.com, manueldun
Marc Herbert, marc.herbert@gmail.com, marc-hb
Marek Olšák, marek.olsak@amd.com, mareko
Marek Olšák, maraeo@gmail.com, mareko
Mark Collins, mark@igalia.com, PixelyIon
Martin Krastev, martin.krastev@broadcom.com, blu
Martin Roukala (né Peres), martin.roukala@mupuf.org, mupuf
Mary Guillemard, mary@mary.zone, marysaka
Mary Guillemard, mary.guillemard@collabora.com, marysaka
Matthew Brost, matthew.brost@intel.com, mbrost
Matt Turner, mattst88@gmail.com, mattst88
Mauro Rossi, issor.oruam@gmail.com, issor.oruam
@ -108,11 +107,11 @@ Peyton Lee, peytolee@amd.com, peytolee
Pierre-Eric Pelloux-Prayer, pelloux@gmail.com, pepp
Pohsiang (John) Hsu, pohhsu@microsoft.com, pohhsu_microsoft
Qiang Yu, yuq825@gmail.com, yuq825
Rebecca Mckeever, rebecca.mckeever@collabora.com, rmckeever
Rhys Perry, pendingchaos02@gmail.com, pendingchaos
Rob Clark, robclark@freedesktop.org, robclark
Roland Scheidegger, roland.scheidegger@broadcom.com, sroland
Ruijing Dong, ruijing.dong@amd.com, rdong
Ryan Mckeever, ryan.mckeever@collabora.com, rmckeever
Sagar Ghuge, sagar.ghuge@intel.com, sagarghuge
Samuel Pitoiset, samuel.pitoiset@gmail.com, hakzsam
Saroj Kumar, saroj.kumar@amd.com, sarojk
@ -135,6 +134,5 @@ Vinson Lee, vlee@freedesktop.org, vlee
Xaver Hugl, xaver.hugl@kde.org, Zamundaaa
Yiwei Zhang, zzyiwei@chromium.org, zzyiwei
Yogesh Mohan Marimuthu, yogesh.mohanmarimuthu@amd.com, yogeshmohan
Yonggang Luo, luoyonggang@gmail.com, lygstate
Zan Dobersek, zdobersek@igalia.com, zdobersek
Zoltán Böszörményi, zboszor@gmail.com, zboszor

1 Aaron Ruby aruby@qnx.com aruby
16 Chia-I Wu olvaffe@gmail.com olv
17 Christian Gmeiner cgmeiner@igalia.com austriancoder
18 Christopher Michael cmichael@igalia.com cpmichael
Christoph Pillmayer christoph.pillmayer@arm.com chrpil
19 Colin Marc hi@colinmarc.com colinmarc
20 Connor Abbott cwabbott0@gmail.com cwabbott0
21 Corentin Noël corentin.noel@collabora.com tintou
84 Maíra Canal mcanal@igalia.com mairacanal
85 Manuel Dun manueldun@gmail.com manueldun
86 Marc Herbert marc.herbert@gmail.com marc-hb
87 Marek Olšák marek.olsak@amd.com maraeo@gmail.com mareko
88 Mark Collins mark@igalia.com PixelyIon
89 Martin Krastev martin.krastev@broadcom.com blu
90 Martin Roukala (né Peres) martin.roukala@mupuf.org mupuf
91 Mary Guillemard mary@mary.zone mary.guillemard@collabora.com marysaka
92 Matthew Brost matthew.brost@intel.com mbrost
93 Matt Turner mattst88@gmail.com mattst88
94 Mauro Rossi issor.oruam@gmail.com issor.oruam
107 Pierre-Eric Pelloux-Prayer pelloux@gmail.com pepp
108 Pohsiang (John) Hsu pohhsu@microsoft.com pohhsu_microsoft
109 Qiang Yu yuq825@gmail.com yuq825
110 Rebecca Mckeever rebecca.mckeever@collabora.com rmckeever
111 Rhys Perry pendingchaos02@gmail.com pendingchaos
112 Rob Clark robclark@freedesktop.org robclark
113 Roland Scheidegger roland.scheidegger@broadcom.com sroland
114 Ruijing Dong ruijing.dong@amd.com rdong
Ryan Mckeever ryan.mckeever@collabora.com rmckeever
115 Sagar Ghuge sagar.ghuge@intel.com sagarghuge
116 Samuel Pitoiset samuel.pitoiset@gmail.com hakzsam
117 Saroj Kumar saroj.kumar@amd.com sarojk
134 Xaver Hugl xaver.hugl@kde.org Zamundaaa
135 Yiwei Zhang zzyiwei@chromium.org zzyiwei
136 Yogesh Mohan Marimuthu yogesh.mohanmarimuthu@amd.com yogeshmohan
Yonggang Luo luoyonggang@gmail.com lygstate
137 Zan Dobersek zdobersek@igalia.com zdobersek
138 Zoltán Böszörményi zboszor@gmail.com zboszor

View file

@ -80,7 +80,7 @@ def get_symbols_nm(nm, lib):
if line.startswith(' '):
continue
fields = line.split()
if len(fields) >= 2 and fields[1] == 'U':
if len(fields) == 2 and fields[1] == 'U':
continue
symbol_name = fields[0]
if platform_name == 'Linux' or platform_name == 'GNU' or platform_name.startswith('GNU/'):

View file

@ -1,2 +0,0 @@
# Keep this in sync with the `rustc.version()` check in meson.build
msrv = "1.82.0"

View file

@ -24,7 +24,7 @@ def ext_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
parts = ext.split('_', 2)
if parts[0] == 'VK':
full_url = f'https://docs.vulkan.org/refpages/latest/refpages/source/{ext}.html'
full_url = f'https://registry.khronos.org/vulkan/specs/latest/man/html/{ext}.html'
elif parts[0] == 'GL':
full_url = f'https://registry.khronos.org/OpenGL/extensions/{parts[1]}/{parts[1]}_{parts[2]}.txt'
else:
@ -37,7 +37,7 @@ def vkfeat_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
text = utils.unescape(text)
has_explicit_title, title, ext = split_explicit_title(text)
full_url = f'https://docs.vulkan.org/spec/latest/chapters/features.html#features-{ext}'
full_url = f'https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features-{ext}'
pnode = nodes.reference(title, title, internal=False, refuri=full_url)
return [pnode], []

View file

@ -444,101 +444,3 @@ the following line where the other BoardConfig files are included
Then we are set to continue following the official instructions to
build the cuttlefish target and run it in the cuttlefish emulator.
.. _android-android-system-properties:
Android System Properties
-------------------------
Android (generally) uses system properties rather than
:doc:`environment variables <envvars>` to control Mesa/Gallium behavior,
although there are some exceptions to this for
:ref:`Android app developers <envvars-android-app-developers>`.
With the ``os_get_option()`` helper, the environment variable names are
automatically translated to the corresponding system property name by:
- converting UPPER case to lower case
- replacing ``_`` with ``.``
- adding the ``mesa.`` prefix to ``<property_name>`` if it's not present already
- and then querying the system property name with the following prefixes, in
order:
#. ``debug.<property_name>``
#. ``vendor.<property_name>``
#. ``<property_name>``
For example, ``LIBGL_DEBUG`` will be queried as:
#. ``debug.mesa.libgl.debug``
#. ``vendor.mesa.libgl.debug``
#. ``mesa.libgl.debug``
This allows for default ``vendor.`` / ``mesa.`` properties to be overridden by
users at run-time with ``debug.`` values.
System properties can be queried with:
.. code-block:: sh
$ adb shell getprop <property_name>
System properties can be set with:
.. code-block:: sh
$ adb shell setprop <property_name> <value>
For example:
.. code-block:: sh
$ adb shell setprop debug.mesa.libgl.debug verbose
$ adb shell getprop debug.mesa.libgl.debug
verbose
NOTE: Any driver that wishes to support Android system properties should replace
any calls to ``getenv()`` with ``os_get_option()``, which automatically handles
both environment variables and Android system properties.
.. _envvars-android-app-developers:
Android App Developers
^^^^^^^^^^^^^^^^^^^^^^
Android app developers have two options to control Mesa behavior on un-rooted
devices:
- Environment variables, using the wrap shell script
- https://developer.android.com/ndk/guides/wrap-script.html
- ``debug.<property_name>`` system properties
App developers with access to rooted devices can also use ``vendor.`` and
``mesa.`` values, although ``debug.`` prefixes are recommended.
While the system properties values are used for each app invocation once set,
they do not persist across device reboots.
Android Driver Developers
^^^^^^^^^^^^^^^^^^^^^^^^^
Android driver developers have three options to control Mesa behavior on
devices with ``root`` access:
#. ``debug.<property_name>``
#. ``vendor.<property_name>``
#. ``<property_name>``
The ``debug.`` prefix can be used without ``root``, while ``vendor.`` and
``mesa.`` prefixes require ``root``.
Any of the values can be set in the device's makefile to control Mesa
behavior, although ``vendor.`` and ``mesa.`` are typically used for this
purpose.
While the system properties values are used for each app invocation once set
at runtime, they do not persist across device reboots if configured with
``setprop``.

View file

@ -573,7 +573,7 @@ A typical work flow would be:
.. code-block:: sh
nc -lkvup $PORT | stdbuf -o0 xxd -pc -c 4 | awk -Wposix '{printf("%u:%u\n", "0x" $0, a[$0]++)}'
nc -lvup $PORT | stdbuf -o0 xxd -pc -c 4 | awk -Wposix '{printf("%u:%u\n", "0x" $0, a[$0]++)}'
- Start capturing command stream;
- Replay the hanging trace with:

View file

@ -1,107 +0,0 @@
KosmicKrisp
###########
KosmicKrisp is a Vulkan conformant implementation for macOS on Apple Silicon
hardware. It is implemented on top of Metal 4, which requires macOS 26 and up.
No iOS support is present as of now. However, iOS was taken into consideration
during development to support A14 Bionic GPUs and upwards.
Building
********
The following build instructions assume Homebrew as the package manager to
install dependencies. Homebrew homepage https://brew.sh/
Homebrew install command line:
.. code-block:: sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Terminal restart is recommended after Homebrew installation.
Requirements
============
- Xcode and Xcode command line tools
- Homebrew packages
- meson (1.9.1+, can also be installed as a Python package)
- cmake
- pkg-config
- libclc
- llvm
- spirv-llvm-translator
Due to potential conflicts, Homebrew will not add `llvm` to the path. To add
`llvm` to future terminal instances:
.. code-block:: sh
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
To add `llvm` to current terminal instance:
.. code-block:: sh
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
- Python
- Python packages
- mako
- packaging
- pyyaml
- meson (1.9.1+, if not installed through Homebrew)
Since Homebrew manages the Python environment, it is encouraged to create a
Python virtual environment and install all packages in that environment. To
create a Python virtual environment (e.g. ``$HOME/venv_mesa``):
.. code-block:: sh
python3 -m venv $HOME/venv_mesa
To enable a Python virtual environment:
.. code-block:: sh
source $HOME/venv_mesa/bin/activate
Build instructions
==================
Out of tree build directory is recommended.
Once all requirements have been installed, the following command line can be
used to create a debug build:
.. code-block:: sh
meson setup <path/to/mesa> --buildtype=debug -Dplatforms=macos -Dvulkan-drivers=kosmickrisp -Dgallium-drivers= -Dopengl=false -Dzstd=disabled
Environment variables
*********************
KosmicKrisp specific environment variables:
- ``MESA_KK_DEBUG``: Set to ``msl`` to log all generated Metal Shading Language (MSL) shaders.
- ``MESA_KK_GPU_CAPTURE``: Starts Metal capture at device create and ends it at device destroy. Set to ``1`` to activate.
- ``MESA_KK_GPU_CAPTURE_DIRECTORY``: Metal capture will be saved to the specified directory. Defaults to Xcode if no path is provided.
- ``MESA_KK_DISABLE_WORKAROUNDS``: Provide ``all`` to disable all workarounds. Otherwise, provide a comma separated list to disable wanted workarounds e.g. ``1,3,4`` to disable workaround 1, 3 and 4.
Metal workarounds
*****************
Different workarounds are applied throughout the project to avoid issues such
as:
- Metal API and Vulkan API discrepancies
- Metal bugs
- MSL compiler bugs
- MSL compiler crashes
These workarounds can be found in:
.. toctree::
:maxdepth: 1
kosmickrisp/workarounds

View file

@ -1,200 +0,0 @@
KosmicKrisp workarounds
#######################
This file documents the relevant issues found in either Metal, the MSL
compiler or any other component we have no control over that needed to be
worked around to accomplish Vulkan conformance.
All workarounds must be documented here and no code comment info should be
provided other than the name ``KK_WORKAROUND_#``.
Once a workaround was removed from the code, the code comment will be
removed but the documentation here will be kept.
Template
========
Use the following template to create documentation for a new workaround:
.. code-block::
KK_WORKAROUND_#
---------------
| macOS version:
| Metal ticket:
| Metal ticket status:
| CTS test failure/crash:
| Comments:
| Log:
``macOS version`` needs to have the OS version with which it was found.
``Metal ticket`` needs to be either the Metal ticket number with the GitLab
handle of the user that reported the ticket or ``Unreported``.
``Metal ticket status`` needs to be either ``Fixed in macOS # (Build hash)``,
``Waiting resolution`` or empty if unreported. If Apple reported that the issue
was fixed, but no user has verified the fix, append ``[Untested]``.
``CTS test failure/crash`` (remove ``failure`` or ``crash`` based on test
behavior) needs to be the name of the test or test family the issue can be
reproduced with.
``Comments`` needs to include as much information on the issue and how the
workaround fixes it.
``Log`` needs to have the dates (yyyy-mm-dd, the only correct date format) with
info on what was updated.
Workarounds
===========
KK_WORKAROUND_6
---------------
| macOS version: 26.0.1
| Metal ticket: Not reported
| Metal ticket status:
| CTS test failure: ``dEQP-VK.spirv_assembly.instruction.*.float16.opcompositeinsert.*``
| Comments:
Metal does not respect its own Memory Coherency Model (MSL spec 4.8). From
the spec:
``By default, memory in the device address space has threadgroup coherence.``
If we have a single thread compute dispatch so that we do (simplified version):
.. code-block:: c
for (...) {
value = ssbo_data[0]; // ssbo_data is a device buffer
...
ssbo_data[0] = new_value;
}
``ssbo_data[0]`` will not correctly store/load the values so the value
written in iteration 0, will not be available in iteration 1. The workaround
to this issue is marking the device memory pointer through which the memory
is accessed as coherent so that the value is stored and loaded correctly.
Hopefully this does not affect performance much.
| Log:
| 2025-12-08: Workaround implemented and reported to Apple
KK_WORKAROUND_5
---------------
| macOS version: 26.0.1
| Metal ticket: Not reported
| Metal ticket status:
| CTS test failure: ``dEQP-VK.fragment_operations.early_fragment.discard_no_early_fragment_tests_depth``
| Comments:
Fragment shaders that have side effects (like writing to a buffer) will be
prematurely discarded if there is a ``discard_fragment`` that will always
execute. To work around this, we just make the discard "optional" by moving
it inside a run time conditional that will always be true (such as is the
fragment a helper?). This tricks the MSL compiler into not optimizing it into
a premature discard.
| Log:
| 2025-12-01: Workaround implemented
KK_WORKAROUND_4
---------------
| macOS version: 26.0.1
| Metal ticket: FB21124215 (@aitor)
| Metal ticket status: Waiting resolution
| CTS test failure: ``dEQP-VK.draw.renderpass.shader_invocation.helper_invocation*`` and few others
| Comments:
``simd_is_helper_thread()`` will always return true if the shader was started
as a non-helper thread, even after ``discard_fragment()`` is called. The
workaround is to have a variable tracking this state and update it when the
fragment is discarded. This issue is present in M1 and M2 chips.
| Log:
| 2025-11-22: Workaround implemented and reported to Apple
KK_WORKAROUND_3
---------------
| macOS version: 15.4.x
| Metal ticket: FB20113490 (@aitor)
| Metal ticket status: Waiting resolution
| CTS test failure: ``dEQP-VK.subgroups.ballot_other.*.subgroupballotfindlsb``
| Comments:
``simd_is_first`` does not seem to behave as documented in the MSL
specification. The following code snippet misbehaves:
.. code-block:: c
if (simd_is_first())
temp = 3u;
else
temp = simd_ballot(true); /* <- This will return all active threads... */
The way to fix this is by changing the conditional to:
.. code-block:: c
if (simd_is_first() && (ulong)simd_ballot(true))
temp = 3u;
else
temp = (ulong)simd_ballot(true);
| Log:
| 2025-09-09: Workaround implemented and reported to Apple
KK_WORKAROUND_2
---------------
| macOS version: 15.4.x
| Metal ticket: FB21065475 (@aitor)
| Metal ticket status: Waiting resolution
| CTS test crash: ``dEQP-VK.graphicsfuzz.cov-nested-loops-never-change-array-element-one`` and ``dEQP-VK.graphicsfuzz.disc-and-add-in-func-in-loop``
| Comments:
We need to loop to infinite since MSL compiler crashes if we have something
like (simplified version):
.. code-block:: c
while (true) {
if (some_conditional) {
break_loop = true;
} else {
break_loop = false;
}
if (break_loop) {
break;
}
}
The issue I believe is that ``some_conditional`` wouldn't change the value no
matter in which iteration we are (something like fetching the same value from
a buffer) and the MSL compiler doesn't seem to like that much to the point it
crashes.
The implemented solution is to change the ``while(true)`` loop with
``for (uint64_t no_crash = 0u; no_crash < UINT64_MAX; ++no_crash)``, which
tricks the MSL compiler into believing we are not doing an infinite loop
(wink wink).
| Log:
| 2025-09-08: Workaround implemented
KK_WORKAROUND_1
---------------
| macOS version: 15.4.x
| Metal ticket: FB17604106 (@aitor)
| Metal ticket status: [Untested] Fixed in macOS 26 Beta (25A5279m)
| CTS test crash: ``dEQP-VK.glsl.indexing.tmp_array.vec3_dynamic_loop_write_dynamic_loop_read_fragment``
| Comments:
Uninitialized local scratch variable causes the MSL compiler to crash.
Initialize scratch to avoid issue.
| Log:
| 2025-05-14: Workaround implemented and reported to Apple
| 2025-06-14: Apple reported back saying it is now fixed in macOS 26 Beta (Build 25A5279m)

View file

@ -6,9 +6,10 @@ NVK is a Vulkan driver for NVIDIA GPUs.
Hardware support
----------------
NVK currently supports Kepler (GeForce 600 and 700 series) and later GPUs up to
and including Ada (RTX 4000 series), as well as consumer Blackwell GPUs
(RTX 5000 series).
NVK currently supports Maxwell (some GTX 700 and 800 series, most 900
series) and later GPUs up to and including Ada (RTX 4000 series). Support
for Kepler (GeForce 600 and 700 series) and Blackwell (RTX 5000 series) is
currently in-progress but incomplete.
Conformance status:
-------------------
@ -22,7 +23,7 @@ OpenGL support through Zink:
Starting with Mesa 25.1, all Turing (RTX 2000 series and GTX 16xx) and
later GPUs will get NVK+Zink as their OpenGL implementation by default
instead of the old Nouveau GL driver. NVK+Zink is a conformant OpenGL 4.6
implementation. The Nouveau GL driver is no longer supported on these cards.
implementation.
Kernel requirements
-------------------
@ -62,20 +63,10 @@ specific to NVK:
Waits for submit to complete before continuing
``zero_memory``
Zeros all VkDeviceMemory objects upon creation
``trash_memory``
Write repeating nonzero patterns to client memory allocations
``vm``
Logs VM binds and unbinds
``no_cbuf``
Disables automatic promotion of UBOs to constant buffers
``edb_bview``
Forces the driver to use the VK_EXT_descriptor_buffer path for buffer
views.
``gart``
Forces all memory to be allocated from system RAM (GART)
``coherent``
Forces all memory maps to be coherent with the CPU caches. This only
applies to Tegra devices.
.. envvar:: NVK_I_WANT_A_BROKEN_VULKAN_DRIVER
@ -84,10 +75,10 @@ specific to NVK:
poorly tested or completely broken. This is intended for developer use
only.
Developer info
--------------
Hardware Documentation
----------------------
.. toctree::
:glob:
nvk/*
What little documentation we have can be found in the `NVIDIA open-gpu-doc
repository <https://github.com/NVIDIA/open-gpu-doc>`__. The majority of
our documentation comes in the form of class headers which describe the
class state registers.

View file

@ -1,134 +0,0 @@
External Hardware Documentation and Resources
=============================================
Information about hardware behavior comes from a mix of official and
reverse-engineered sources.
Command buffers
^^^^^^^^^^^^^^^
* `NVIDIA open-gpu-doc repository`_ is official documentation from NVIDIA that
has been released to the public. The majority of this documentation comes in
the form of class headers which describe the class state registers.
* `NVIDIA open-gpu-kernel-modules repository`_ is the open-source kernel mode
driver that NVIDIA ships on Turing+ GPUs with GSP. The code here can provide
examples of how to use some hardware features. If open-gpu-doc is missing a
class header, sometimes there will be one here.
* Reverse-engineered command names from `envytools`_ are available in mesa
under eg. ``src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h``. These are no
longer updated. nvk instead uses the open-gpu-doc headers
* `envyhooks`_ is the modern way to dump command sequences from the proprietary
driver
* ``nv_push_dump`` is part of mesa and can disassemble command sequences (build
with ``-D tools=nouveau``, run ``src/nouveau/headers/nv_push_dump`` from the
build dir)
.. _NVIDIA open-gpu-doc repository: https://github.com/NVIDIA/open-gpu-doc
.. _NVIDIA open-gpu-kernel-modules repository: https://github.com/NVIDIA/open-gpu-kernel-modules
.. _envyhooks: https://gitlab.freedesktop.org/nouveau/envyhooks
Shader ISA
^^^^^^^^^^
* `NVIDIA PTX documentation`_ is NVIDIA documentation for CUDA's
intermediate representation. We don't use PTX directly, but this often has
hints about how underlying hardware instructions work. For example, the PTX
`redux` instruction is pretty much identical to the hardware instruction of
the same name.
* `CUDA Binary Utilities`_ is documentation for CUDA's disassembler,
`nvdisasm`. It includes a brief description of most hardware instructions.
There's also an `older version`_ that has older architectures (Kepler through
Volta).
* Kuter Dinel has reverse-engineered instruction encodings for the `Hopper
ISA`_ and `Ada ISA`_ which are autogenerated from his `nv_isa_solver`_
project.
* `nv-shader-tools`_ has some additional tools for disassembling and fuzzing
the hardware ISA
* Mel has dumped a `list of avaiable instructions`_ and their opcodes on recent
architectures by scraping nvdisasm error messages.
* The `Volta whitepaper`_ section "Independent Thread Scheduling" has an
overview of the control flow model used on Volta+ GPUs.
* `Dissecting the NVidia Turing T4 GPU via Microbenchmarking`_ has
reverse-engineered info about the Turing instruction encoding. See especially
section "2.1 Control information" for an overview of compiler-inserted delays
and waits on Maxwell and later.
* `Analyzing Modern NVIDIA GPU cores`_ has additional reverse-engineered info
about the semantics of compiler-inserted delays and waits.
* `Control Flow Management in Modern GPUs`_ has more detail about control flow
reconvergence on Volta+
* `maxas`_ has some reverse-engineered info on the Maxwell ISA
* `asfermi`_ has some reverse-engineered info on the older Fermi ISA
* Red Hat has some NDA'd documentation on instruction latencies from NVIDIA.
Bother karolherbst or airlied on irc if you're missing a latency class for an
instruction on recent architectures.
* Behavior of instructions are tested using the hardware tests in
``src/nouveau/compiler/nak/hw_tests.rs`` and the corresponding ``Foldable``
implementations in ``src/nouveau/compiler/nak/ir.rs`` (build with ``-D
build-tests=true`` and run ``src/nouveau/compiler/nak hw_tests`` from the
build dir)
* NAK's instruction encodings are tested against nvdisasm using
``src/nouveau/compiler/nak/nvdisasm_tests.rs`` (build with ``-D
build-tests=true`` and run ``src/nouveau/compiler/nak nvdisasm_tests`` from
the build dir)
* The old GL driver's compiler, under ``src/gallium/drivers/nouveau/codegen``,
has some information. This is especially useful for graphics-only
instructions, which are often not covered by other sources.
* `Compiler explorer`_ is a convenient tool to see what assembly NVIDIA
generates for a given CUDA program.
.. _NVIDIA PTX documentation: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html
.. _CUDA Binary Utilities: https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-reference
.. _older version: https://docs.nvidia.com/cuda/archive/11.8.0/cuda-binary-utilities/index.html#instruction-set-ref
.. _Hopper ISA: https://kuterdinel.com/nv_isa/
.. _Ada ISA: https://kuterdinel.com/nv_isa_sm89/
.. _nv_isa_solver: https://github.com/kuterd/nv_isa_solver
.. _nv-shader-tools: https://gitlab.freedesktop.org/nouveau/nv-shader-tools
.. _list of avaiable instructions: https://gitlab.freedesktop.org/mhenning/re/-/tree/main/opclass?ref_type=heads
.. _Volta whitepaper: https://images.nvidia.com/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf
.. _Dissecting the NVidia Turing T4 GPU via Microbenchmarking: https://arxiv.org/pdf/1903.07486
.. _Analyzing Modern NVIDIA GPU cores: https://arxiv.org/pdf/2503.20481
.. _Control Flow Management in Modern GPUs: https://arxiv.org/pdf/2407.02944
.. _maxas: https://github.com/NervanaSystems/maxas/wiki
.. _asfermi: https://github.com/hyqneuron/asfermi/wiki
.. _Compiler explorer: https://godbolt.org/z/1jrfhq5G7
Misc
^^^^
* `envytools`_ has reverse-engineered documentation for maxwell and earlier
hardware.
* The nvidia architecture whitepapers give a basic overview of what has changed
between hardware revisions. See eg. the `Blackwell whitepaper`_
* The nvidia architecture tuning guides often mention how details of a hardware
generation has changed, often with information about the memory subsystem or
occupancy. See eg. the `Blackwell tuning guide`_
* `The Nouveau wiki's CodeNames page`_ is useful for mapping NVIDIA marketing
names to engineering names
* `Matching CUDA arch and CUDA gencode for various NVIDIA architectures`_ has a
useful table comparing SM versions to engineering names
.. _envytools: https://envytools.readthedocs.io/en/latest/hw/index.html
.. _Blackwell whitepaper: https://images.nvidia.com/aem-dam/Solutions/geforce/blackwell/nvidia-rtx-blackwell-gpu-architecture.pdf
.. _Blackwell tuning guide: https://docs.nvidia.com/cuda/blackwell-tuning-guide/index.html
.. _The Nouveau wiki's CodeNames page: https://nouveau.freedesktop.org/CodeNames.html
.. _Matching CUDA arch and CUDA gencode for various NVIDIA architectures: https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/

View file

@ -1,126 +0,0 @@
Hardware docs
=============
Command buffers
---------------
Command format
^^^^^^^^^^^^^^
Each command sent to the GPU contains a method and some data. Method names are
documented in corresponding header files copied from NVIDIA, eg. the fermi
graphics methods are in src/nouveau/headers/nvidia/classes/cl9097.h
P_IMMD
""""""
A lot of the time, you will want to issue a single method with its data, which
can be done with P_IMMD::
P_IMMD(p, NV9097, WAIT_FOR_IDLE, 0);
P_IMMD will emit either a single `immediate-data method`_, which takes a single
word, or a pair of words that's equivalent to P_MTHD + the provided data. Code
must count P_IMMD as possibly 2 words as a result.
.. _immediate-data method: https://github.com/NVIDIA/open-gpu-doc/blob/87ba53e0c385285a3aa304b864dccb975a9a0dd4/manuals/turing/tu104/dev_ram.ref.txt#L1214
P_MTHD
""""""
`P_MTHD`_ is a convenient way to execute multiple consecutive methods without
repeating the method header. For example, the code::
P_MTHD(p, NV9097, SET_REPORT_SEMAPHORE_A);
P_NV9097_SET_REPORT_SEMAPHORE_A(p, addr >> 32);
P_NV9097_SET_REPORT_SEMAPHORE_B(p, addr);
P_NV9097_SET_REPORT_SEMAPHORE_C(p, value);
generates four words - one word for the method header (defaulting to 1INC) and
then the next three words for data. 1INC will automatically increment the method
id by one word for each data value, which is why the example can advance from
SET_REPORT_SEMAPHORE_A to B to C.
.. _P_MTHD: https://github.com/NVIDIA/open-gpu-doc/blob/87ba53e0c385285a3aa304b864dccb975a9a0dd4/manuals/turing/tu104/dev_ram.ref.txt#L1042
P_0INC
""""""
`0INC`_ will issue the same method repeatedly for each following data word.
.. _0INC: https://github.com/NVIDIA/open-gpu-doc/blob/87ba53e0c385285a3aa304b864dccb975a9a0dd4/manuals/turing/tu104/dev_ram.ref.txt#L1096
P_1INC
""""""
`1INC`_ will increment after one word and then issue the following method
repeatedly. For example, the code::
P_1INC(p, NV9097, CALL_MME_MACRO(NVK_MME_SET_PRIV_REG));
P_INLINE_DATA(p, 0);
P_INLINE_DATA(p, BITFIELD_BIT(3));
issues one NV9097_CALL_MME_MACRO command, then increments the method and issues
two NV9097_CALL_MME_DATA commands.
.. _1INC: https://github.com/NVIDIA/open-gpu-doc/blob/87ba53e0c385285a3aa304b864dccb975a9a0dd4/manuals/turing/tu104/dev_ram.ref.txt#L1149
Execution barriers
^^^^^^^^^^^^^^^^^^
Commands within a command buffer can be synchronized in a few different ways.
* Explicit WFI - Idles all engines before executing the next command eg. via
`NVA16F_WFI` or `NV9097_WAIT_FOR_IDLE`
* Semaphores - Delay execution based on values in a memory location. See
`open-gpu-doc on semaphores`_
* A subchannel switch - Causes the hardware to execute an implied WFI
.. _open-gpu-doc on semaphores: https://github.com/NVIDIA/open-gpu-doc/blob/master/manuals/turing/tu104/dev_pbdma.ref.txt#L3231
Subchannel switches
"""""""""""""""""""
A subchannel switch occurs when the hardware receives a command for a different
subchannel than the one that it's currently executing. For example, if the
hardware is currently executing commands on the 3D engine (`SUBC_NV9097 == 0`), a
command executed on the compute engine (`SUBC_NV90C0 == 1`) will cause a
subchannel switch. Host methods (class \*6F) are an exception to this - they can
be issued to any subchannel and will not trigger a subchannel switch
[#fhostsubcswitch]_ [#foverlapnvk]_.
Subchannel switches act the same way that an explicit WFI does - they fully idle
the channel before issuing commands to the next engine [#fnsight]_
[#foverlapnvk]_.
This works the same on Blackwell. Some NVIDIA documentation contradicts this:
"On NVIDIA Blackwell Architecture GPUs and newer, subchannel switches do not
occur between 3D and compute workloads"[#fnsight]_. This documentation appears
to be wrong or inapplicable for some reason - tests do not reproduce this
behavior [#foverlapnvk]_ [#foverlapprop]_, and the blob does not change its
event implementation for blackwell [#feventprop]_.
.. [#fnsight] https://docs.nvidia.com/nsight-graphics/UserGuide/index.html#subchannel-switch-overlay
.. [#foverlapnvk] Based on reverse engineering by running
https://gitlab.freedesktop.org/mhenning/re/-/tree/main/vk_test_overlap_exec
under nvk, possibly with alterations to the way nvk generates commands for
pipeline barriers.
.. [#foverlapprop] By running
https://gitlab.freedesktop.org/mhenning/re/-/tree/main/vk_test_overlap_exec
under the proprietary driver and examining the main output (eg. execution
overlaps without pipeline barriers)
.. [#feventprop] For example, the event commands generated here only wait on a
single engine
https://gitlab.freedesktop.org/mhenning/re/-/blob/6ce8c860da65fbf2ab26d124d25f907dea2cf33a/vk_event/blackwell.out#L20612-20793
.. [#fhostsubcswitch] https://github.com/NVIDIA/open-gpu-doc/blob/87ba53e0c385285a3aa304b864dccb975a9a0dd4/manuals/turing/tu104/dev_ram.ref.txt#L1009
Copy engine
^^^^^^^^^^^
The copy engine's `PIPELINED` mode allows a new transfer to start before the
previous transfer finishes, while `NON_PIPELINED` acts as an execution barrier
between the current copy and the previous one [#fpipelined]_.
.. [#fpipelined] https://github.com/NVIDIA/open-gpu-kernel-modules/blob/2b436058a616676ec888ef3814d1db6b2220f2eb/src/common/sdk/nvidia/inc/ctrl/ctrl0050.h#L75-L83

View file

@ -1,71 +0,0 @@
Benchmarking Panfrost
=====================
Obtaining reproducible benchmark timings can sometimes be tricky on Mali
based SoCs. There are a number of things that can be done to make the timings
more predictable.
Make sure the device is actively cooled (to eliminate thermal throttling)
-------------------------------------------------------------------------
This isn't strictly speaking necessary, if you use low enough frequencies
in the steps below, but it is recommended.
Fix the GPU frequency
---------------------
If power management is allowed to vary the GPU frequency, this will lead to
uncertainty in benchmark figures, particularly for shorter benchmark runs.
On most systems, the GPU frequency can be set to a fixed value via a command
like the following (run it as root, sudo alone won't allow the redirection):
.. code-block:: sh
cat /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/min_freq > /sys/devices/platform/fb000000.gpu/devfreq/fb000000.gpu/max_freq
This forces the GPU to always use its minimum frequency. You could reverse
`min_freq` and `max_freq` to fix it to its maximum frequency, if your system
is adequately cooled.
Fix the CPU frequency
---------------------
It is easy to overlook the role the CPU plays in driver performance. To set
its frequency to a fixed value, install the `linux-cpupower` package and
run something like:
.. code-block:: sh
sudo cpupower frequency-info
sudo cpupower frequency-set -d 1.20
sudo cpupower frequency-set -u 1.20
sudo cpupower frequency-info
Adjust the numbers based on what the board actually supports (seen in
the first `frequency-info`. It is best to choose fairly low settings
unless you're confident of the board's cooling.
Pin the benchmark program to a particular core
----------------------------------------------
This is especially important on devices with a big.LITTLE architecture, where
having the benchmark be scheduled on a different kind of core can drastically
change the performance. But even without this, variations in cache residency
and scheduling of kernel tasks can lead to changes in benchmark timing.
Experience shows that using a little core for the benchmark program
tends to give more reproducible results (probably because they have smaller
caches, and also are less likely to be scheduled to by the kernel).
However, forcing the benchmark to run on a little core could change the
bottleneck from GPU to CPU, so watch out for that.
Pinning a task to a particular core is done with the `taskset` command. An
example for the Rock5b (rk3588) board is:
.. code-block:: sh
taskset 0x04 glmark2-es2-wayland
Replace `0x04` with an appropriate mask for your board, and
`glmark2-es2-wayland` with the benchmark program to be used.

View file

@ -1,3 +1,4 @@
drm-shim
========

View file

@ -1,3 +1,4 @@
U-interleaved tiling
====================

View file

@ -43,8 +43,6 @@ Product Series B.V.N.C
GX6250 Series 6XT 4.45.2.58
GX6650 Series 6XT 4.46.6.62
G6110 Series 6XE 5.9.1.46
GE7800 Series 7XE 15.5.1.64
GE8300 Series 8XE 22.67.54.30
GE8300 Series 8XE 22.68.54.30
GE8300 Series 8XE 22.102.54.38
BXE-2-32 B-Series 36.29.52.182

View file

@ -5,14 +5,6 @@ Normally, no environment variables need to be set. Most of the
environment variables used by Mesa/Gallium are for debugging purposes,
but they can sometimes be useful for debugging end-user issues.
Android System Properties
-------------------------
Android (generally) uses system properties rather than environment variables to
control Mesa/Gallium behavior, although there are some exceptions to this. See
:ref:`Android System Properties <android-android-system-properties>` for
details on naming and how to set and get system property values.
LibGL environment variables
---------------------------
@ -98,10 +90,6 @@ Core Mesa environment variables
specifies a file name for logging all errors, warnings, etc., rather
than stderr
.. envvar:: MESA_LOG_PREFIX
specifies what to to include in the log prefix (linux only) - default is ``tag,level``
.. envvar:: MESA_EXTENSION_OVERRIDE
can be used to enable/disable extensions. A value such as
@ -357,11 +345,6 @@ Core Mesa environment variables
lost device. This is extremely useful when testing as it prevents the
test suite from continuing on with a lost device.
.. envvar:: MESA_VK_VALIDATE_SHADER_BINARIES
enables extra validation of shader and pipeline binaries to ensure
consistency of driver binaries.
.. envvar:: MESA_VK_ENABLE_SUBMIT_THREAD
for Vulkan drivers which support real timeline semaphores, this forces
@ -606,9 +589,6 @@ Intel driver environment variables
disable fast clears
``noccs``
disable lossless color compression
``no-resource-barrier``
disable RENDER_BARRIER instruction usage by falling back to
PIPE_CONTROL
``optimizer``
dump shader assembly to files at each optimization pass and
iteration that make progress (Gfx < 9)
@ -1277,6 +1257,32 @@ clc environment variables
- ``dump_spirv`` Dumps all compiled, linked and specialized SPIR-Vs
- ``verbose`` Enable debug logging of clc code
Nine frontend environment variables
-----------------------------------
.. envvar:: D3D_ALWAYS_SOFTWARE
an integer, which forces Nine to use the CPU instead of GPU acceleration.
.. envvar:: NINE_DEBUG
a comma-separated list of named flags that do debugging things.
Use ``NINE_DEBUG=help`` to print a list of available options.
.. envvar:: NINE_FF_DUMP
a boolean, which dumps shaders generated by a fixed function (FF).
.. envvar:: NINE_SHADER
a comma-separated list of named flags, which do alternate shader handling.
Use ``NINE_SHADER=help`` to print a list of available options.
.. envvar:: NINE_QUIRKS
a comma-separated list of named flags that do various things.
Use ``NINE_DEBUG=help`` to print a list of available options.
Softpipe driver environment variables
-------------------------------------
@ -1391,8 +1397,6 @@ RADV driver environment variables
dump the BO history to /tmp/radv_bo_history.log after each BO operations
``checkir``
validate the LLVM IR before LLVM compiles the shader
``dumpibs``
dump IBs (command streams)
``dump_trap_handler``
dump the trap handler shader
``epilogs``
@ -1409,6 +1413,9 @@ RADV driver environment variables
Print image info
``info``
show GPU-related information
``invariantgeom``
Mark geometry-affecting outputs as invariant. This works around a common
class of application bugs appearing as flickering. (deprecated)
``metashaders``
dump internal meta shaders
``noatocdithering``
@ -1425,6 +1432,8 @@ RADV driver environment variables
disable Delta Color Compression (DCC) on images
``nodisplaydcc``
disable Delta Color Compression (DCC) on displayable images
``nodynamicbounds``
do not check OOB access for dynamic descriptors (deprecated)
``noeso``
disable VK_EXT_shader_object
``nofastclears``
@ -1443,6 +1452,8 @@ RADV driver environment variables
disable NGG for GFX10 and GFX10.3
``nonggc``
disable NGG culling for GFX10 and GFX10.3
``nongg_gs``
disable NGG GS for GFX10 and GFX10.3 (deprecated)
``nort``
skip executing vkCmdTraceRays and ray queries (RT extensions will still be
advertised)
@ -1472,6 +1483,9 @@ RADV driver environment variables
enable register shadowing
``spirv``
dump SPIR-V
``splitfma``
split application-provided fused multiply-add in geometry stages
(deprecated)
``startup``
display info at startup
``syncshaders``
@ -1504,8 +1518,10 @@ RADV driver environment variables
Use bvh4 encoding on GPUs that support bvh8 encoding.
``validatevas``
Enable tracking of VA ranges for radv_build_is_valid_va.
``vm``
add a gap between all VA allocations to check for page faults
.. envvar:: RADV_FORCE_FAMILY
create a null device to compile shaders without a AMD GPU (e.g. VEGA10)
.. envvar:: RADV_FORCE_VRS
@ -1553,8 +1569,6 @@ RADV driver environment variables
enable wave64 for ray tracing shaders (GFX10-10.3)
``sam``
enable optimizations to move more driver internal objects to VRAM.
``sparse``
enable experimental sparse binding and sparse residency on GPUs where we don't support it by default (pre Polaris)
``transfer_queue``
enable experimental transfer queue support (GFX9+, not yet spec compliant)
``video_decode``
@ -1762,8 +1776,8 @@ RadeonSI driver environment variables
Use old-style monolithic shaders compiled on demand
``nooptvariant``
Disable compiling optimized shader variants.
``usellvm``
Use LLVM as shader compiler when possible
``useaco``
Use ACO as shader compiler when possible
``nowc``
Disable GTT write combining
``check_vm``

View file

@ -76,7 +76,7 @@ GL 3.1, GLSL 1.40 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe,
GL_ARB_copy_buffer (Buffer copying) DONE (v3d, vc4, lima, crocus)
GL_NV_primitive_restart (Primitive restart) DONE (v3d, crocus)
16 vertex texture image units DONE (v3d)
Texture buffer objs DONE (v3d)
GL_ARB_texture_buffer_object (Texture buffer objs) DONE (v3d)
GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima, crocus, etnaviv)
GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE (v3d, crocus)
GL_EXT_texture_snorm (Signed normalized textures) DONE (v3d, crocus, etnaviv/HALTI1)
@ -108,7 +108,7 @@ GL 3.3, GLSL 3.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe,
GL_ARB_texture_swizzle DONE (v3d, vc4, panfrost, lima, etnaviv/HALTI0)
GL_ARB_timer_query DONE (panfrost, v3d)
GL_ARB_instanced_arrays DONE (etnaviv/HALTI2, v3d, panfrost)
GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost, etnaviv/HALTI2)
GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost)
GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi
@ -206,7 +206,7 @@ GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v
- input/output block locations DONE
GL_ARB_multi_bind DONE (all drivers)
GL_ARB_query_buffer_object DONE (freedreno/a6xx)
GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus, svga)
GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus)
GL_ARB_texture_stencil8 DONE (freedreno, nv50, softpipe, v3d, panfrost, etnaviv/HALTI5)
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, nv50, softpipe, panfrost, crocus)
GL_NV_shader_atomic_int64 DONE (radeonsi, panfrost/v9+)
@ -316,7 +316,6 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_ARB_sparse_texture DONE (radeonsi/gfx9+, zink)
GL_ARB_sparse_texture2 DONE (radeonsi/gfx9+, zink)
GL_ARB_sparse_texture_clamp DONE (radeonsi/gfx9+, zink)
GL_ARB_texture_buffer_object DONE (freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, d3d12, asahi, iris, crocus/gen6+)
GL_ARB_texture_filter_minmax DONE (freedreno/a6xx, iris/gen9+, llvmpipe, nvc0/gm200+, zink)
GL_ARM_shader_framebuffer_fetch_depth_stencil DONE (llvmpipe)
GL_EXT_shader_framebuffer_fetch DONE (freedreno/a6xx, iris/gen9+, llvmpipe, panfrost, virgl, zink, asahi, v3d)
@ -328,7 +327,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_EXT_memory_object DONE (freedreno, radeonsi, llvmpipe, zink, d3d12, iris, crocus/gen7+)
GL_EXT_memory_object_fd DONE (freedreno, radeonsi, llvmpipe, zink, iris, crocus/gen7+)
GL_EXT_memory_object_win32 DONE (zink, d3d12)
GL_EXT_mesh_shader DONE (radeonsi/gfx10_3+, zink)
GL_EXT_mesh_shader DONE (zink)
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink, lima)
GL_EXT_polygon_offset_clamp DONE (all drivers that support GL_ARB_polygon_offset_clamp)
GL_EXT_render_snorm DONE (freedreno/a6xx, r600, radeonsi, softpipe, llvmpipe, virgl, zink, panfrost/v6+, iris, asahi)
@ -337,7 +336,6 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_EXT_semaphore_win32 DONE (zink, d3d12)
GL_EXT_shader_clock DONE (all drivers that support GL_ARB_shader_clock)
GL_EXT_shader_group_vote DONE (all drivers that support GL_ARB_shader_group_vote)
GL_EXT_shader_pixel_local_storage DONE (panfrost/v6+)
GL_EXT_shader_realtime_clock DONE (panfrost/v6+)
GL_EXT_sRGB_write_control DONE (all drivers that support GLES 3.0+)
GL_EXT_texture_compression_astc_decode_mode DONE (panfrost)
@ -346,7 +344,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
GL_EXT_texture_view DONE (all drivers that support GL_OES_texture_view)
GL_KHR_blend_equation_advanced_coherent DONE (freedreno/a6xx, llvmpipe, panfrost, zink, asahi, iris/gen9+, v3d)
GL_KHR_robust_buffer_access_behavior DONE (panfrost, llvmpipe, virgl)
GL_KHR_shader_subgroup DONE (radeonsi, zink, asahi, iris/gen9+)
GL_KHR_shader_subgroup DONE (radeonsi, zink, asahi)
GL_KHR_texture_compression_astc_hdr DONE (panfrost, asahi)
GL_KHR_texture_compression_astc_sliced_3d DONE (freedreno/a4xx+, r600, radeonsi, panfrost, softpipe, llvmpipe, v3d, virgl, zink, lima, asahi, iris/gen9+)
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
@ -434,9 +432,9 @@ we DO NOT WANT implementations of these extensions for Mesa.
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
Vulkan 1.0 -- all DONE: anv, dzn, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn
Vulkan 1.0 -- all DONE: anv, dzn, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn
Vulkan 1.1 -- all DONE: anv, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn
Vulkan 1.1 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn
VK_KHR_16bit_storage DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu/a650+, v3dv, vn)
VK_KHR_bind_memory2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
@ -456,64 +454,64 @@ Vulkan 1.1 -- all DONE: anv, hk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn
VK_KHR_maintenance2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_maintenance3 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_multiview DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
VK_KHR_relaxed_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_relaxed_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_shader_draw_parameters DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_KHR_storage_buffer_storage_class DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_storage_buffer_storage_class DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_variable_pointers DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
Vulkan 1.2 -- all DONE: anv, hk, nvk, panvk/v10+, pvr, tu, vn
VK_KHR_8bit_storage DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, radv, tu/a750+, v3dv, vn)
VK_KHR_buffer_device_address DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_create_renderpass2 DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_depth_stencil_resolve DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_8bit_storage DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu/a750+, v3dv, vn)
VK_KHR_buffer_device_address DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_create_renderpass2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_depth_stencil_resolve DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_draw_indirect_count DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_driver_properties DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_image_format_list DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_imageless_framebuffer DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_separate_depth_stencil_layouts DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_driver_properties DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_image_format_list DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_imageless_framebuffer DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_separate_depth_stencil_layouts DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_atomic_int64 DONE (anv, lvp, nvk, panvk/v10+, radv, vn, tu/a740+)
VK_KHR_shader_float16_int8 DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv, hasvk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn)
VK_KHR_spirv_1_4 DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
VK_KHR_timeline_semaphore DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_uniform_buffer_standard_layout DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_vulkan_memory_model DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_descriptor_indexing DONE (anv, dzn, kk, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_EXT_host_query_reset DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_float16_int8 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_float_controls DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_extended_types DONE (anv, hasvk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn)
VK_KHR_spirv_1_4 DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
VK_KHR_timeline_semaphore DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_uniform_buffer_standard_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_vulkan_memory_model DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_EXT_host_query_reset DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_sampler_filter_minmax DONE (anv, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, vn, v3dv/vc7+)
VK_EXT_separate_stencil_usage DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_shader_viewport_index_layer DONE (anv, hasvk, kk, lvp, nvk, radv, tu, vn)
VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, vn, v3dv/vc7+)
VK_EXT_separate_stencil_usage DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_shader_viewport_index_layer DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
Vulkan 1.3 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv, tu, vn, v3dv
VK_KHR_copy_commands2 DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_dynamic_rendering DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_format_feature_flags2 DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_maintenance4 DONE (anv, hasvk, kk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_shader_integer_dot_product DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_shader_non_semantic_info DONE (anv, hasvk, kk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_terminate_invocation DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_synchronization2 DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_4444_formats DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_copy_commands2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_dynamic_rendering DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_format_feature_flags2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_maintenance4 DONE (anv, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_shader_integer_dot_product DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_shader_non_semantic_info DONE (anv, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_terminate_invocation DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_synchronization2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_image_robustness DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_inline_uniform_block DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_private_data DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_subgroup_size_control DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_private_data DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_image_robustness DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_subgroup_size_control DONE (anv, dzn, hasvk, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_texture_compression_astc_hdr DONE (kk, panvk, vn)
VK_EXT_tooling_info DONE (anv, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_ycbcr_2plane_444_formats DONE (anv, kk, lvp, nvk, panvk/v10+, radv, vn)
VK_EXT_texture_compression_astc_hdr DONE (panvk, vn)
VK_EXT_tooling_info DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_ycbcr_2plane_444_formats DONE (anv, lvp, nvk, panvk/v10+, radv, vn)
Vulkan 1.4 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv/gfx8+, tu/a7xx+, vn
@ -521,15 +519,15 @@ Vulkan 1.4 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv/gfx8+, tu/a7xx+, vn
VK_KHR_global_priority DONE (anv, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_index_type_uint8 DONE (anv, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_line_rasterization DONE (anv, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_load_store_op_none DONE (anv, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_load_store_op_none DONE (anv, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_maintenance5 DONE (anv, lvp, nvk, panvk/v10+, radv, tu, v3dv, vn)
VK_KHR_maintenance6 DONE (anv, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_map_memory2 DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_KHR_push_descriptor DONE (anv, hasvk, kk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_map_memory2 DONE (anv, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_float_controls2 DONE (anv, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_shader_subgroup_rotate DONE (anv, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_vertex_attribute_divisor DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_vertex_attribute_divisor DONE (anv, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_host_image_copy DONE (anv, lvp, nvk/Turing+, panvk, radv/gfx10+, tu, vn)
VK_EXT_pipeline_protected_access DONE (anv/gfx12+, vn)
VK_EXT_pipeline_robustness DONE (anv, lvp, nvk, panvk, radv, v3dv, tu, vn)
@ -538,9 +536,9 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_acceleration_structure DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_android_surface not started
VK_KHR_calibrated_timestamps DONE (anv, hk, kk, nvk, panvk/v10+, radv, tu/a750+, vn)
VK_KHR_calibrated_timestamps DONE (anv, hk, nvk, panvk/v10+, radv, tu/a750+, vn)
VK_KHR_compute_shader_derivatives DONE (anv, lvp, nvk, radv, tu/a7xx+, vn)
VK_KHR_cooperative_matrix DONE (anv, nvk/Turing+, radv/gfx11+, vn)
VK_KHR_cooperative_matrix DONE (anv, nvk/Turing+, radv/gfx11+)
VK_KHR_depth_clamp_zero_one DONE (anv, nvk, panvk, radv, vn)
VK_KHR_deferred_host_operations DONE (anv, hasvk, lvp, radv, tu, vn)
VK_KHR_display DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
@ -559,53 +557,48 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_maintenance7 DONE (anv, hk, lvp, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_maintenance8 DONE (anv, hk, lvp, nvk, panvk/v10+, radv, tu)
VK_KHR_maintenance9 DONE (anv, hk, lvp, nvk, panvk, radv)
VK_KHR_maintenance10 DONE (anv, nvk, radv)
VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv)
VK_KHR_pipeline_binary DONE (radv)
VK_KHR_pipeline_executable_properties DONE (anv, hk, nvk, panvk, hasvk, radv, tu, v3dv)
VK_KHR_pipeline_library DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_present_id DONE (anv, hk, nvk, radv, tu, vn)
VK_KHR_present_id2 DONE (anv, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_wait DONE (anv, hk, nvk, radv, tu, vn)
VK_KHR_present_wait2 DONE (anv, hk, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_id DONE (anv, nvk, radv, tu, vn)
VK_KHR_present_id2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_present_wait DONE (anv, nvk, radv, tu, vn)
VK_KHR_present_wait2 DONE (anv, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)
VK_KHR_ray_tracing_position_fetch DONE (anv, lvp, radv/gfx10.3+, vn)
VK_KHR_robustness2 DONE (anv, pvr, radv, vn)
VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+, radv/gfx12+, vn)
VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+, radv/gfx12+)
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_maximal_reconvergence DONE (anv, hk, kk, lvp, nvk, panvk/v10+, radv, vn)
VK_KHR_shader_relaxed_extended_instruction DONE (anv, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, hk, kk, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_shader_maximal_reconvergence DONE (anv, hk, lvp, nvk, panvk/v10+, radv, vn)
VK_KHR_shader_relaxed_extended_instruction DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, hk, nvk, panvk/v10+, radv, tu, vn)
VK_KHR_shader_quad_control DONE (anv, hk, lvp, nvk, panvk/v10+, radv, vn)
VK_KHR_shader_untyped_pointers DONE (anv, nvk, radv, vn)
VK_KHR_shader_untyped_pointers DONE (anv, nvk, radv)
VK_KHR_shared_presentable_image not started
VK_KHR_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_surface_protected_capabilities DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_swapchain DONE (anv, dzn, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, hk, kk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_swapchain DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_swapchain_mutable_format DONE (anv, hasvk, hk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_KHR_unified_image_layouts DONE (lvp, nvk, panvk, radv/gfx11+, tu)
VK_KHR_wayland_surface DONE (anv, dzn, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, hk, kk, lvp, nvk, hasvk, radv, tu, v3dv, vn)
VK_KHR_workgroup_memory_explicit_layout DONE (anv, hk, lvp, nvk, hasvk, radv, tu, v3dv, vn)
VK_KHR_win32_keyed_mutex not started
VK_KHR_win32_surface DONE (dzn, lvp)
VK_KHR_xcb_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_xlib_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_KHR_surface_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_KHR_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_acquire_xlib_display DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, radv, tu, vn)
VK_EXT_attachment_feedback_loop_layout DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_blend_operation_advanced DONE (vn)
VK_EXT_border_color_swizzle DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv/gfx10+, tu, v3dv, vn)
VK_EXT_buffer_device_address DONE (anv, dzn/sm6.6+, hasvk, hk, nvk, panvk, radv, vn)
VK_EXT_calibrated_timestamps DONE (anv, hasvk, hk, kk, nvk, panvk/v10+, lvp, radv, vn, tu/a750+)
VK_EXT_calibrated_timestamps DONE (anv, hasvk, hk, nvk, panvk/v10+, lvp, radv, vn, tu/a750+)
VK_EXT_color_write_enable DONE (anv, hasvk, hk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_conditional_rendering DONE (anv, hasvk, lvp, nvk, radv, tu, vn)
VK_EXT_conservative_rasterization DONE (anv, nvk, radv, vn, tu/a7xx+)
VK_EXT_custom_border_color DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_custom_resolve DONE (radv)
VK_EXT_debug_marker DONE (radv)
VK_EXT_debug_report DONE (anv, dzn, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_debug_utils DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
@ -618,39 +611,38 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_device_address_binding_report DONE (radv, tu)
VK_EXT_device_fault DONE (radv)
VK_EXT_device_generated_commands DONE (lvp, nvk/Turing+, radv/gfx8+)
VK_EXT_device_memory_report DONE (anv, panvk, radv, vn)
VK_EXT_device_memory_report DONE (anv, radv, vn)
VK_EXT_direct_mode_display DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_discard_rectangles DONE (nvk, radv)
VK_EXT_discard_rectangles DONE (radv)
VK_EXT_display_control DONE (anv, hasvk, nvk, panvk, radv, tu)
VK_EXT_display_surface_counter DONE (anv, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_dynamic_rendering_unused_attachments DONE (anv, hk, lvp, nvk, radv, tu, vn)
VK_EXT_extended_dynamic_state3 DONE (anv, hk, lvp, nvk, pvr, radv, tu, vn)
VK_EXT_external_memory_acquire_unmodified DONE (anv, panvk, radv, vn)
VK_EXT_external_memory_acquire_unmodified DONE (anv, radv, vn)
VK_EXT_external_memory_dma_buf DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_external_memory_host DONE (anv, dzn, hasvk, lvp, radv)
VK_EXT_external_memory_metal DONE (kk)
VK_EXT_filter_cubic DONE (tu/a650+, vn)
VK_EXT_fragment_density_map DONE (tu)
VK_EXT_fragment_shader_interlock DONE (anv, lvp, radv/gfx9+, vn)
VK_EXT_global_priority DONE (anv, hasvk, panvk, radv, tu, vn, hk, lvp)
VK_EXT_global_priority_query DONE (anv, hasvk, panvk, radv, tu, vn, hk, lvp)
VK_EXT_global_priority DONE (anv, hasvk, panvk, radv, tu, vn, hk)
VK_EXT_global_priority_query DONE (anv, hasvk, panvk, radv, tu, vn, hk)
VK_EXT_graphics_pipeline_library DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_hdr_metadata DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_headless_surface DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_EXT_image_compression_control DONE (anv/gfx12-, radv)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, hk, lvp, nvk, panvk, radv/gfx9+, tu, v3dv, vn)
VK_EXT_image_drm_format_modifier DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, radv/gfx9+, tu, v3dv, vn)
VK_EXT_image_sliced_view_of_3d DONE (anv, hk, lvp, nvk, radv/gfx10+, vn)
VK_EXT_image_view_min_lod DONE (anv, hasvk, hk, nvk, radv, tu, vn)
VK_EXT_index_type_uint8 DONE (anv, hasvk, hk, nvk, lvp, panvk, pvr, radv/gfx8+, tu, v3dv, vn)
VK_EXT_legacy_vertex_attributes DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_line_rasterization DONE (anv, hasvk, hk, nvk, panvk, pvr, lvp, radv, tu, v3dv, vn)
VK_EXT_load_store_op_none DONE (anv, hk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_load_store_op_none DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_memory_budget DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_memory_priority DONE (lvp, radv)
VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv, vn)
VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv)
VK_EXT_multi_draw DONE (anv, hasvk, hk, lvp, nvk, radv, tu, vn, v3dv)
VK_EXT_multisampled_render_to_single_sampled DONE (lvp, vn, panvk)
VK_EXT_multisampled_render_to_single_sampled DONE (lvp, vn)
VK_EXT_nested_command_buffer DONE (anv, lvp, nvk, radv, tu, vn)
VK_EXT_non_seamless_cube_map DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_pageable_device_local_memory DONE (lvp)
@ -667,27 +659,26 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_sample_locations DONE (anv, hasvk, hk, nvk, radv, tu/a650+, vn, lavapipe)
VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv, tu, vn)
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv, vn)
VK_EXT_shader_float8 DONE (radv/gfx12+, vn)
VK_EXT_shader_float8 DONE (radv/gfx12+)
VK_EXT_shader_image_atomic_int64 DONE (anv, lvp, nvk, radv, vn)
VK_EXT_shader_object DONE (anv, lvp, hk, nvk, radv)
VK_EXT_shader_replicated_composites DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_EXT_shader_replicated_composites DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, vn)
VK_EXT_shader_stencil_export DONE (anv, hk, lvp, radv, tu, vn)
VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, vn)
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, radv, vn)
VK_EXT_shader_module_identifier DONE (anv, hasvk, hk, nvk, panvk, radv, tu, v3dv)
VK_EXT_shader_uniform_buffer_unsized_array DONE (nvk, radv, vn)
VK_EXT_surface_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_swapchain_maintenance1 DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_transform_feedback DONE (anv, hasvk, hk, lvp, nvk, radv, tu, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, hk, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_ycbcr_image_arrays DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, radv, vn)
VK_EXT_zero_initialize_device_memory DONE (lvp, nvk, pvr, radv, tu)
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
VK_ANDROID_native_buffer DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
VK_GOOGLE_decorate_string DONE (anv, hasvk, hk, kk, lvp, nvk, panvk, radv, tu, vn)
VK_GOOGLE_hlsl_functionality1 DONE (anv, hasvk, hk, kk, lvp, nvk, panvk, radv, tu, vn)
VK_GOOGLE_user_type DONE (anv, hasvk, hk, kk, lvp, nvk, panvk, radv, tu, vn)
VK_GOOGLE_decorate_string DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, vn)
VK_GOOGLE_hlsl_functionality1 DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, vn)
VK_GOOGLE_user_type DONE (anv, hasvk, hk, nvk, panvk, radv, tu, vn)
VK_IMG_filter_cubic DONE (tu/a650+, vn)
VK_NV_compute_shader_derivatives DONE (anv, hasvk, nvk, radv, tu/a7xx+, vn)
VK_NVX_image_view_handle DONE (nvk)
@ -714,15 +705,15 @@ Khronos extensions that are not part of any Vulkan version:
VK_ARM_rasterization_order_attachment_access DONE (lvp, tu, vn)
VK_ARM_shader_core_builtins DONE (panvk)
VK_ARM_shader_core_properties DONE (panvk/v10+)
VK_EXT_mutable_descriptor_type DONE (anv, hk, kk, lvp, nvk, panvk/v9+, radv, tu, vn)
VK_EXT_mutable_descriptor_type DONE (anv, hk, lvp, nvk, panvk/v9+, radv, tu, vn)
VK_EXT_swapchain_colorspace DONE (anv, hk, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_depth_clamp_zero_one DONE (anv, nvk, panvk, pvr, radv, tu, v3dv/vc7+, vn)
VK_INTEL_shader_integer_functions2 DONE (anv, hasvk, radv)
VK_EXT_map_memory_placed DONE (anv, hk, nvk, pvr, radv, tu, vn)
VK_EXT_map_memory_placed DONE (anv, hk, nvk, pvr, radv, tu)
VK_MESA_image_alignment_control DONE (anv, nvk, radv)
VK_EXT_legacy_dithering DONE (anv, tu, vn)
VK_QCOM_fragment_density_map_offset DONE (tu)
VK_VALVE_video_encode_rgb_conversion DONE (radv)
Rusticl OpenCL 1.0 -- all DONE:
Image support DONE

View file

@ -83,7 +83,6 @@ Linux, FreeBSD, and other operating systems.
drivers/asahi
drivers/d3d12
drivers/freedreno
drivers/kosmickrisp
drivers/lima
drivers/llvmpipe
drivers/nvk

View file

@ -31,7 +31,8 @@ you're willing to maintain support for other compiler get in touch.
- Clang 5.0 or later (some parts of Mesa may require later versions)
- Microsoft Visual C++ compiler
- Windows SDK of at least 20348 is required
- Visual Studio 2022 version 17.9 or later for (ARM, AARCH64, ARM64EC, X86, X64)
- Visual Studio 2019 Version 16.11 or later for (ARM, X86, X64)
- Visual Studio 2022 version 17.8.6 or later for (AARCH64, ARM64EC)
Third party/extra tools.
^^^^^^^^^^^^^^^^^^^^^^^^

View file

@ -43,9 +43,6 @@ The exact supported features vary per driver:
* - Panfrost
- ``gpu.counters.panfrost``
-
* - PanVK
- ``gpu.counters.panfrost``
- ``gpu.renderstages.panfrost``
* - V3D
- ``gpu.counters.v3d``
-
@ -58,7 +55,39 @@ Run
To capture a trace with Perfetto you need to take the following steps:
1. Build Mesa with perfetto enabled.
1. Build Perfetto from sources available at ``subprojects/perfetto`` following
`this guide <https://perfetto.dev/docs/quickstart/linux-tracing>`__.
2. Create a `trace config <https://perfetto.dev/docs/concepts/config>`__, which is
a json formatted text file with extension ``.cfg``, or use one of the config
files under the ``src/tool/pps/cfg`` directory. More examples of config files
can be found in ``subprojects/perfetto/test/configs``.
3. Change directory to ``subprojects/perfetto`` and run a
`convenience script <https://perfetto.dev/docs/getting-started/system-tracing#recording-your-first-system-trace>`__
to start the tracing service:
.. code-block:: sh
cd subprojects/perfetto
CONFIG=<path/to/gpu.cfg> OUT=out/linux_clang_release ./tools/tmux -n
4. Start other producers you may need, e.g. ``pps-producer``.
5. Start ``perfetto`` under the tmux session initiated in step 3.
6. Once tracing has finished, you can detach from tmux with :kbd:`Ctrl+b`,
:kbd:`d`, and the convenience script should automatically copy the trace
files into ``$HOME/Downloads``.
7. Go to `ui.perfetto.dev <https://ui.perfetto.dev>`__ and upload
``$HOME/Downloads/trace.protobuf`` by clicking on **Open trace file**.
8. Alternatively you can open the trace in `AGI <https://gpuinspector.dev/>`__
(which despite the name can be used to view non-android traces).
To be a bit more explicit, here is a listing of commands reproducing
the steps above :
.. code-block:: sh
@ -67,52 +96,19 @@ To capture a trace with Perfetto you need to take the following steps:
# Build mesa
mesa $ meson compile -C build
2. Build Perfetto from sources available at ``subprojects/perfetto``.
.. code-block:: sh
# Within the Mesa repo, build perfetto
mesa $ cd subprojects/perfetto
perfetto $ ./tools/install-build-deps
perfetto $ ./tools/gn gen --args='is_debug=false' out/linux
perfetto $ ./tools/ninja -C out/linux
# Example arm64 cross compile instead
perfetto $ ./tools/install-build-deps --linux-arm
perfetto $ ./tools/gn gen --args='is_debug=false target_cpu="arm64"' out/linux-arm64
# Start perfetto
perfetto $ CONFIG=../../src/tool/pps/cfg/gpu.cfg OUT=out/linux/ ./tools/tmux -n
More build options can be found in `this guide <https://perfetto.dev/docs/quickstart/linux-tracing>`__.
# In parallel from the Mesa repo, start the PPS producer
mesa $ ./build/src/tool/pps/pps-producer
3. Select a `trace config <https://perfetto.dev/docs/concepts/config>`__, likely
``src/tool/pps/cfg/system.cfg`` which does whole-system including GPU
profiling for any supported GPUs). Other configs are available in that
directory for CPU-only or GPU-only tracing, and more examples of config files
can be found in ``subprojects/perfetto/test/configs``.
4. Start the PPS producer to capture GPU performance counters.
.. code-block:: sh
mesa $ sudo meson devenv -C build pps-producer
5. Start your application (and any other GPU-using system components) you want
to trace using the perfetto-enabled Mesa build.
.. code-block:: sh
mesa $ meson devenv -C build vkcube
6. Capture a perfetto trace using ``tracebox``.
.. code-block:: sh
mesa $ sudo ./subprojects/perfetto/out/linux/tracebox --system-sockets --txt -c src/tool/pps/cfg/system.cfg -o vkcube.trace
7. Go to `ui.perfetto.dev <https://ui.perfetto.dev>`__ and upload
``vkcube.trace`` by clicking on **Open trace file**.
8. Alternatively you can open the trace in `AGI <https://gpuinspector.dev/>`__
(which despite the name can be used to view non-android traces).
# Back in the perfetto tmux, press enter to start the capture
CPU Tracing
~~~~~~~~~~~
@ -129,20 +125,17 @@ Currently, only EGL and the following drivers have CPU tracepoints.
- VC4
- V3DV
Render stage data sources
~~~~~~~~~~~~~~~~~~~~~~~~~
Vulkan data sources
~~~~~~~~~~~~~~~~~~~
The render stage data sources are the driver-specific traces of command buffer
execution on the GPU.
The Vulkan API gives the application control over recording of command
buffers as well as when they are submitted to the hardware. As a
consequence, we need to ensure command buffers are properly
instrumented for the Perfetto driver data sources prior to Perfetto
actually collecting traces.
The Vulkan API gives the application control over recording of command buffers
as well as when they are submitted to the hardware, and command buffers can be
recorded once and reused repeatedly. Trace commands are normally only recorded
into a command buffer when a perfetto trace is active. Most applications don't
reuse command buffers, so you'll see traces appear shortly after the trace was
started, but if you have one of the rare applications that reuses command
buffers, you'll need to set the :envvar:`MESA_GPU_TRACES` environment variable
before starting a Vulkan application :
This can be achieved by setting the :envvar:`MESA_GPU_TRACES`
environment variable before starting a Vulkan application :
.. code-block:: sh
@ -221,7 +214,7 @@ To run the producer, follow these two simple steps:
./build/pps-producer
V3D / V3DV
^^^^^^^^^^
----------
As we can only have one performance monitor active at a given time, we can only monitor
32 performance counters. There is a need to define the performance counters of interest
@ -234,6 +227,17 @@ for pps_producer using the environment variable ``V3D_DS_COUNTER``.
Troubleshooting
---------------
Tmux
~~~~
If the convenience script ``tools/tmux`` keeps copying artifacts to your
``SSH_TARGET`` without starting the tmux session, make sure you have ``tmux``
installed in your system.
.. code-block:: sh
apt install tmux
Missing counter names
~~~~~~~~~~~~~~~~~~~~~

View file

@ -1,8 +1,6 @@
25.3,2025-12-31,25.3.3,Dylan Baker,
,2026-01-14,25.3.4,Dylan Baker,
,2026-01-28,25.3.5,Dylan Baker,
,2026-02-11,25.3.6,Dylan Baker,Last planned 25.3 release
26.0,2026-01-14,26.0.0-rc1,Eric Engestrom,26.0 branchpoint
,2026-01-21,26.0.0-rc2,Eric Engestrom,
,2026-01-28,26.0.0-rc3,Eric Engestrom,
,2026-02-04,26.0.0-rc4,Eric Engestrom,or 26.0.0 final
25.2,2025-10-29,25.2.6,Eric Engestrom,
,2025-11-12,25.2.7,Eric Engestrom,
25.3,2025-10-15,25.3.0-rc1,Dylan Baker,25.3 branchpoint
,2025-10-22,25.3.0-rc2,Dylan Baker,
,2025-10-29,25.3.0-rc3,Dylan Baker,
,2025-11-05,25.3.0-rc4,Dylan Baker,or 25.3.0 final

1 25.3 25.2 2025-12-31 2025-10-29 25.3.3 25.2.6 Dylan Baker Eric Engestrom
2 2026-01-14 2025-11-12 25.3.4 25.2.7 Dylan Baker Eric Engestrom
3 25.3 2026-01-28 2025-10-15 25.3.5 25.3.0-rc1 Dylan Baker Dylan Baker 25.3 branchpoint
4 2026-02-11 2025-10-22 25.3.6 25.3.0-rc2 Dylan Baker Dylan Baker Last planned 25.3 release
5 26.0 2026-01-14 2025-10-29 26.0.0-rc1 25.3.0-rc3 Eric Engestrom Dylan Baker 26.0 branchpoint
6 2026-01-21 2025-11-05 26.0.0-rc2 25.3.0-rc4 Eric Engestrom Dylan Baker or 25.3.0 final
2026-01-28 26.0.0-rc3 Eric Engestrom
2026-02-04 26.0.0-rc4 Eric Engestrom or 26.0.0 final

View file

@ -3,12 +3,6 @@ Release Notes
The release notes summarize what's new or changed in each Mesa release.
- :doc:`25.3.2 release notes <relnotes/25.3.2>`
- :doc:`25.2.8 release notes <relnotes/25.2.8>`
- :doc:`25.3.1 release notes <relnotes/25.3.1>`
- :doc:`25.3.0 release notes <relnotes/25.3.0>`
- :doc:`25.2.7 release notes <relnotes/25.2.7>`
- :doc:`25.2.6 release notes <relnotes/25.2.6>`
- :doc:`25.2.5 release notes <relnotes/25.2.5>`
- :doc:`25.2.4 release notes <relnotes/25.2.4>`
- :doc:`25.2.3 release notes <relnotes/25.2.3>`
@ -472,12 +466,6 @@ The release notes summarize what's new or changed in each Mesa release.
:maxdepth: 1
:hidden:
25.3.2 <relnotes/25.3.2>
25.2.8 <relnotes/25.2.8>
25.3.1 <relnotes/25.3.1>
25.3.0 <relnotes/25.3.0>
25.2.7 <relnotes/25.2.7>
25.2.6 <relnotes/25.2.6>
25.2.5 <relnotes/25.2.5>
25.2.4 <relnotes/25.2.4>
25.2.3 <relnotes/25.2.3>

View file

@ -1,199 +0,0 @@
Mesa 25.2.6 Release Notes / 2025-10-29
======================================
Mesa 25.2.6 is a bug fix release which fixes bugs found since the 25.2.5 release.
Mesa 25.2.6 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.2.6 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: 361c97e8afa5fe20141c5362c5b489040751e12861c186a16c621a2fb182fc42 mesa-25.2.6.tar.xz
SHA512: c34f55132ee9097a7c4961745bf07a08fc612bf0f7c570c023fedb16c8eafbefdc1cc022f722c345780bb14ec4ce25d9a206a9196d9d51c97b389db5160de9cc mesa-25.2.6.tar.xz
New features
------------
- None
Bug fixes
---------
- [ANV][PTL][DG2] Flickering textures in Assassin's Creed Valhalla benchmark
- ADL, ANV: Wuthering Waves leads to gpu reset on Alder Lake iGPU
- [ANV][EXT_debug_utils] descriptor set object_name leak when not calling vkFreeDescriptorSets
- nvk: CTS failures in sample_locations_ext.verify_interpolation.samples_1
- [regression] [bisected] RuneLite GPU Experimental - GPU crash
- lp_test_arit.c:200:14: error: static declaration of rsqrtf follows non-static declaration
- build failure with glibc 2.42
- zink: chromium flickers in youtube when fullscreening videos
- r600: Attribute stride updates may be skipped
- anv: Assert in brew when descriptor indexing with modulo
- [ANV][TGL]: test_buffer_feedback_instructions_sm51 on vkd3d-proton crashes
Changes
-------
Alyssa Rosenzweig (1):
- anv: use D3D-compatible texturing for Proton
Benjamin Cheng (3):
- radv/video_enc: Cleanup slice count assert
- radv/video: Override H265 SPS block size parameters
- radv/video: Override H265 SPS unaligned resolutions
Connor Abbott (6):
- tu: Don't patch GMEM for input attachments never in GMEM
- tu: Fix 3d load path with D24S8 on a7xx
- tu: Also disable stencil load for attachments not in GMEM
- tu: Fix RT count with remapped color attachments
- tu: Rename tu_render_pass_attachment::clear_views to used_views
- tu: Fix attachment stores with subpasses with partial views
Danylo Piliaiev (2):
- tu: Destroy all mutexes used for device
- tu: Synchronize access to copy_timestamp_cs_pool
Emma Anholt (1):
- nir/shrink_stores: Don't shrink stores to an invalid num_components.
Eric Engestrom (8):
- docs: add sha sum for 25.2.5
- .pick_status.json: Mark !36883 commits as denominated
- .pick_status.json: Update to b82044c31b0be1c7682548a8e10905a4ff5b13d7
- .pick_status.json: Mark 77fb8fb062457dad73bd763e97bf757b6cd04080 as denominated
- .pick_status.json: Mark bca29b1c92320dea0004341a08cc76a18e3edaf3 as denominated
- .pick_status.json: Mark 8d05b7b72e70fe35d6ff6b5d65272ec520a707f3 as denominated
- .pick_status.json: Mark 006085e6769c3697c29cd5087dfabe7b5b8d046a as denominated
- .pick_status.json: Mark 343eef990e54d974d811f7414e79a8854b8c97f9 as denominated
Faith Ekstrand (7):
- panvk: Fix integer dot product properties
- nvk: Include the chipset in the pipeline/binary cache UUID
- nvk: Disable sampleLocationsSampleCounts for 1x MSAA
- nvk: Look at the right pointer in GetDescriptorInfo for SSBOs
- nvk: Capture/replay buffer addresses for EDB capture/replay
- panvk/shader: [de]serialize desc_info.max_varying_loads
- panvk/shader: Use the right copy size for deserializing dynamic UBOs/SSBOs
Gert Wollny (1):
- r600: Fix comparison of strides array when emitting vertex buffers
Job Noorman (2):
- nir: mark fneg distribution through fadd/ffma as nsz
- spirv: don't set in_bounds for structs
José Roberto de Souza (1):
- gallium/llvmpipe/test: Rename rsqrtf() to _rsqrtf()
Karol Herbst (1):
- nak: fix MMA latencies on Ampere
Konstantin Seurer (1):
- aco: Fixup out_launch_size_y in the RT prolog for 1D dispatch
Lionel Landwerlin (6):
- brw: fix invalid sparse bitfield offset computation
- brw: prevent LOAD_REG modifications on MOV_INDIRECT/BROADCAST
- brw: only consider cross lane access on non scalar VGRFs
- brw: fix ballot() type operations in shaders with HALT instructions
- anv: destroy sets when destroying pool
- vulkan/render_pass: Add a missing sType
Marek Olšák (2):
- r300: fix DXTC blits
- winsys/radeon: fix completely broken tessellation for gfx6-7
Mary Guillemard (5):
- hk: Fix maxVariableDescriptorCount with inline uniform block
- hk: Disable 1x in sampleLocationsSampleCounts
- hk: Remove unused allocation in queue_submit
- hk: Make width and height per block in HIC
- hk: Allocate the temp tile buffer in copy_image_to_image_cpu
Mel Henning (2):
- nvk: Fix maxVariableDescriptorCount with iub
- nvk: Really fix maxVariableDescriptorCount w/ iub
Mike Blumenkrantz (3):
- zink: defer swapchain updates for interval changes if acquired image is active
- zink: consistently set/unset msrtss in begin_rendering
- zink: collapse gfx pipeline fetching and binding conditionals
Natalie Vock (1):
- nir/lower_shader_calls: Repair SSA after wrap_instrs
Olivia Lee (1):
- panfrost: fix cl_local_size for precompiled shaders
Pierre-Eric Pelloux-Prayer (1):
- radeonsi: propagate shader updates for merged shaders
Ruijing Dong (1):
- radeonsi/vcn: Correct a typo condition for jpeg decoding
Sagar Ghuge (2):
- brw/rt: Move nir_build_vec3_mat_mult_col_major helper to header
- brw/rt: fix ray_object_(direction|origin) for closest-hit shaders
Taras Pisetskyi (1):
- drirc/anv: force_vk_vendor=-1 for Wuthering Waves
Timur Kristóf (4):
- radeonsi: Don't use compute queue with regalloc hang bug
- radv: Disable compute queues when the regalloc bug is present
- radv: Mitigate GPU hang on Hawaii in Dota 2 and RotTR
- ac/nir/ngg_mesh: Lower num_subgroups to constant
Valentine Burley (2):
- tu: Fix indexing with variable descriptor count
- tu: Fix maxVariableDescriptorCount with inline uniform blocks
Xaver Hugl (2):
- vulkan/wsi: require extended target volume support for scRGB
- vulkan/wsi: remove support for VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
Yiwei Zhang (2):
- panvk: fix to advance vs driver_set properly
- panvk: fix to advance vs res_table properly

View file

@ -1,210 +0,0 @@
Mesa 25.2.7 Release Notes / 2025-11-12
======================================
Mesa 25.2.7 is a bug fix release which fixes bugs found since the 25.2.6 release.
Mesa 25.2.7 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.2.7 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: b40232a642011820211aab5a9cdf754e106b0bce15044bc4496b0ac9615892ad mesa-25.2.7.tar.xz
SHA512: 87dd815e0d11d6ec0eb969ee93d3f376103bb899d90599e0b7902394e41c58139384df79f89633e132ca969348d3320f55308a74651d409b454d51f1bcda27bc mesa-25.2.7.tar.xz
New features
------------
- None
Bug fixes
---------
- Penumbra: Overture OpenGL game has graphical glitch for ice
- RustiCL: fence fd leak on CL-GL interop
- Uniform variable not updated correctly with shared contexts
- [radv] Borderlands 4 triggers a consistent GPU page fault on RDNA2
- radv: RE4 Separate Ways DLC hangs RDNA2 GPU
- ACO: fix a hazard when the number of attributes loaded/consumed don't match with VS prologs
- ACO: loading 64-bit attributes can override the fetch index in VS prologs
- nvk, nak: Broken icons in ENDLESS Legend 2 on a RTX 4080
- LLVMPipe's \`VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount` is lower than Vulkan requires.
- asahi: DMABuf import of multi-plane YCbCr (NV12 from ISP) not renderer correctly
- asahi: DMABuf import of multi-plane YCbCr (NV12 from ISP) not renderer correctly
- brw: Gfx9 sampler messages violate r127 rule
- radv: No Man's Sky XESS page fault GPU reset
- r600/sfn: Assertion \`cir.alu_vec.empty()` failed
Changes
-------
Alyssa Rosenzweig (1):
- asahi,ail: fix multi-plane imports
Benjamin Cheng (2):
- vulkan/video: NULL check codec-specific chain
- radv/video: Fix dummy DPB addresses
Daniel Schürmann (1):
- radv/null_device: set more options which affect compilation
Danylo Piliaiev (2):
- vulkan: Always fill DS state for EXT_dynamic_rendering_unused_attachments
- tu: Use cmd->rp_trace u_trace for draw calls
Dave Airlie (1):
- c11/threads: fix build on c23
David Rosca (6):
- radeonsi/vcn: Fix AV1 bidir compound encode with order_hint disabled
- radv/video: Don't require encode FW version >= interface version
- radv/video: Fix AV1 bidir compound encode with order_hint disabled
- vulkan/video: Avoid NULL pointers in session parameters
- radv/video: Correctly handle no feedback query for encode
- radv/video: Add NULL checks for picture parameters
Dmitry Osipenko (1):
- virtio/vdrm: Fix varying offsets of struct vdrm_device members
Eric Engestrom (7):
- docs: add sha sum for 25.2.6
- .pick_status.json: Update to 2705d8bd8bb0cd049b4e91ac4e15ccc798abeda1
- .pick_status.json: Mark b2badb2b241b3f5637133634b6bb48ebb90e4fed as denominated
- .pick_status.json: Mark ff57c316964a73a7f763e2ff3ddfda99542813e1 as denominated
- asahi/virtio: fix memleak
- ci: track src/c11/ changes
- ci: track src/android_stub/ changes
Faith Ekstrand (3):
- drm-uapi: Import the new NVIDIA modifiers
- nil: Add support for Blackwell 8 and 16-bit modifiers
- nir: Add a couple panfrost sysvals to divergence analysis
Georg Lehmann (1):
- aco/gfx10_3: work around NSA hazard
Gert Wollny (1):
- r600/sfn: AR loads are not dependend on the future and other code blocks
Ian Romanick (2):
- brw: Apply Gfx9 vgrf127 workaround in more cases
- elk: Apply vgrf127 workaround in more cases
Janne Grunau (1):
- hk: Report the correct plane count in VkDrmFormatModifierProperties2?EXT
Karol Herbst (6):
- st/interop: fix fence leak
- rusticl/queue: fix error code for invalid queue properties part 1
- rusticl/queue: fix error code for invalid queue properties part 2
- rusticl/queue: fix error code for invalid sampler kernel arg
- rusticl/kernel: take no kernel_info reference inside the launch closure
- rusticl/spirv: preserve signed zeroes by default
Konstantin Seurer (5):
- lavapipe: Bump maxPrimitiveCount
- lavapipe: Zero image null descriptors
- lavapipe: Bump MAX_DESCRIPTOR_UNIFORM_BLOCK_SIZE
- gallivm/nir/soa: Use the sign of src1 for imod
- llvmpipe: Always recompute 1/w
Lars-Ivar Hesselberg Simonsen (3):
- panvk: Fix IUB decode
- pan/format: Fix mapping for I16F
- pan/format: Disable PAN_BIND_STORAGE_IMAGE for RGBA4/BGRA4
Lionel Landwerlin (3):
- u_trace: reserve chunk space before emitting copies
- anv: avoid invalid timestamp generation due to skipped commands
- vulkan/runtime: simplify robustness state hashing
Ludvig Lindau (1):
- panfrost: Make instrs_equal check res table/index
Marek Olšák (1):
- Revert ABI breakage "amd: Add user queue HQD count to hw_ip info"
Mel Henning (1):
- nak/opt_lop: Don't handle modifiers in dedup_srcs
Mike Blumenkrantz (1):
- zink: don't destroy old push layout when enabling fbfetch descriptor
Natalie Vock (1):
- radv: Fix PSO history with RT pipelines
Paul Gofman (1):
- driconf: add a workaround for Investigation Stories : gunsound
Ryan Houdek (1):
- freedreno/fdl: Fix typo in tiled_to_linear_2cpp
Sagar Ghuge (2):
- anv: Drop unwanted untyped flush for AS query
- intel/common: Consider 0 threads while setting TG
Samuel Pitoiset (3):
- radv: add a workaround for illegal depth/stencil descriptors with No Man's Sky
- aco: fix reserving VGPRs for 64-bit attributes in VS prologs
- radv,aco: wait for all VMEM loads when the prolog loads large 64-bit attributes
Sviatoslav Peleshko (2):
- mesa,driconf: Add WA to initialize vertex program outputs to vec4(0,0,0,1)
- driconf: Add vertex_program_default_out option for Penumbra: Overture
Tapani Pälli (1):
- anv: fix issues found with indirect data stride
Timothy Arceri (1):
- mesa: skip redundant uniform update optimisation if unsafe
Yiwei Zhang (6):
- panvk: fix sample shading of internal blend shader for MSAA
- llvmpipe: zero is also a valid fd
- llvmpipe: fix udmabuf mmap error check
- llvmpipe: add a missing alloc error handling in fd import
- llvmpipe: misc fixes for sparse binding
- glcpp/meson: fix libglcpp generated header dependency

View file

@ -1,249 +0,0 @@
Mesa 25.2.8 Release Notes / 2025-12-04
======================================
Mesa 25.2.8 is a bug fix release which fixes bugs found since the 25.2.7 release.
Mesa 25.2.8 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.2.8 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: 097842f3e49d996868b38688db87b006f7d4541e93ce86d2f341d8b3e7be7c93 mesa-25.2.8.tar.xz
SHA512: a238965ee235bd9178d26b210fc3996b77927dab31964b76cd1e1e72cfffbefbd96e4a57ec4f5018205a58354cd41d6cf99bbc712b275a7518710a34511dfb13 mesa-25.2.8.tar.xz
New features
------------
- None
Bug fixes
---------
- FurMark gets glitchi graphics when using Vulkan API on UHD 620 (mesa 25.2.6 and 26.0)
- tu: resource leak
- [ANV][LNL] - Detroit: Become Human (1222140) - Flickering horizontal artifacts across the screen
- Zink on Android: failed to create dri2 screen
- Amnesia: The Bunker (2023) OpenGL graphics glitch on Intel graphics
- meson: When building radeonsi without llvm, it fails without setting amd_with_llvm to false explicitly
- venus: synchronization tests sometimes get stuck in semaphore/fence wait
- GNOME freeze, Nautilus crash and purple flickering on Intel Arc B580 with Mesa 25.2.2 (openSUSE Tumbleweed)
- Texture matrix stack pops do not seem to always update the texture matrix
- [BMG] Metro Exodus Enhanced Edition (1449560) - Crash
- Polaris, amdgpu: Application using VCE wedges GPU
- radv vulkan video encode does not process used_by_curr_pic_lt_flag correctly
- venus: random failures in dEQP.api.info.image_format_properties2.1d
- zink/radv: new cts fails on rdna3
- RADV Vulkan video encode isn't available on 25.2.7
Changes
-------
Aitor Camacho (2):
- vulkan/cmd_queue: Use vk_strdup and free allocated string memory
- vulkan/wsi: Fix double destroy of present_id_timeline at swapchain create
Anna Maniscalco (1):
- radv: recalculate legacy_gs_info on bind
Benjamin Cheng (4):
- radv/video: Align each layer of encode DPB to 256
- radv/video: Fix num_ref_idx_l{0,1} related overrides
- radv/video: Fix H264/H265 reference selection
- radv/video: Override direct_spatial_mv_pred to 1
Calder Young (3):
- brw: fix SIMD lowering of fp16 sampler message data with multiple components
- anv: Fix ray query shadow stack buffer size
- intel: Fix calculation of max_scratch_ids on fused devices
Christian Gmeiner (1):
- meson: require sysprof-capture-4 >= 4.49.0
Christoph Pillmayer (1):
- nir: Fix preseved metadata in sort_unstructured_blocks
Daniel Schürmann (2):
- nir/opt_large_constants: Fix dead deref instructions accessing lowered variables
- radv/shader_info: rename gs_ring_info -> legacy_gs_info and use union with ngg_info
Dave Airlie (1):
- dozen: return INCOMPATIBLE_DRIVER on instance create failure
David Rosca (6):
- radv/video: Fix enabling video encode
- vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1
- radv/video: Fix coding allow_screen_content_tools and force_integer_mv
- radv/video: Fix coding used_by_curr_pic_lt_flag
- radeonsi/vce: Add workaround for unaligned input surface
- radeonsi/vcn: Reduce allocated size for pre-encode recon pics
Emma Anholt (1):
- tu: Fix leak of compute shader pipeline->base.executables_mem_ctx;
Eric Engestrom (6):
- docs: add sha sum for 25.2.7
- .pick_status.json: Update to df19ec302093b5e47c0d7556ea41af47d2b7af67
- .pick_status.json: Mark fa1fd2413f5a8a24959664e284372135b3deac83 as denominated
- .pick_status.json: Mark b2b5e83894a4e1dec0cd62f73f5598dd4e50c264 as denominated
- meson: auto-disable \`amd-use-llvm` when \`llvm=disabled`
- meson: auto-disable \`draw-use-llvm` when \`llvm=disabled`
Eric R. Smith (1):
- pan: fix a bifrost disassembly assert failure
Erik Faye-Lund (2):
- mesa/main: correct formatquery error-handling
- mesa/st: do not enable EXT_texture_buffer_object with rgba only
Faith Ekstrand (1):
- vulkan/drm-syncobj: Stop returning early waiting for sync files
Gert Wollny (1):
- r600/sfn: Don't start a new ALU-CF if LDS pipeline loads are pending
Ian Forbes (1):
- svga: Check if Stencil buffer is NULL
Ian Romanick (2):
- brw: Force allow_spilling when spill_all is set
- lavapipe: fp16 flrp must also be lowered
Jianxun Zhang (1):
- isl: Disable BMG Modifier (xe2)
Joshua Simmons (1):
- vtn: Fix OpCopyLogical destination type
Karol Herbst (2):
- rusticl/kernel: fix clGetKernelSuggestedLocalWorkSizeKHR implementation
- rusticl/kernel: Do not run kernels with a workgroup size beyond work_dim
Lionel Landwerlin (12):
- brw: fix workaround fence rlen field
- brw: fix SIMD lowering of sampler messages with fp16 data
- anv: ensure slab allocated memory matches image requirements
- anv: fixup load_ubo lowering
- brw: fixup 64bit atomics emulation on 2D array images
- anv: consider 64bit atomics on similar formats with mutable images
- anv: Wa_18040903259 only applies to RCS when in GPGPU mode
- brw: compute final copy propagation resulting source
- nir: fix lower_printf with no arguments
- spirv: fix printf generation
- nir/lower_printf: fix array alignment
- nir/lower_printf: fix missing singleton add
Mario Kleiner (1):
- wsi/wayland: Zero min_luminance, max_luminance HDR light levels are valid.
Matt Turner (1):
- meson: Fix sysprof-capture-4 dependency
Mel Henning (5):
- zink: Return zink_device in create_logical_device
- zink: Make screen->queue_lock a pointer
- zink: Create one queue lock per device
- zink: Lock queue_lock in zink_destroy_screen
- zink: Lock around screen_debug_marker_{begin,end}
Natalie Vock (4):
- aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard
- radv/rt: Keep updated nodes always active
- radv/rt: Correctly copy culling flags when updating to separate AS
- radv: Move VMID reservation to vkCreateDevice
Olivia Lee (2):
- panvk/csf: fix uninitialized read in draw context
- panvk/csf: explicitly set ls_sb_slot in set_fbds_provoking_vertex
Patrick Lerda (2):
- r600: fix rv770 read scratch compatibility
- r600: fix error filters compatibility
Paulo Zanoni (1):
- anv/sparse: we can support R64 and other atomics emulated formats
Pierre-Eric Pelloux-Prayer (1):
- radeonsi/sqtt: clear out sqtt bo on resize
Rob Clark (1):
- freedreno/a6xx: Fix UB in convert_color()
Samuel Pitoiset (2):
- radv: fix per-submit RGP captures on video queues
- radv: reduce maxTexelBufferElements to 1<<29
Sushma Venkatesh Reddy (1):
- drirc: Add anv_assume_full_subgroups for Detroit: Become Human
Tapani Pälli (3):
- drirc/iris: add drirc to disable threaded context
- drirc: set intel_disable_threaded_context for Amnesia The Bunker
- anv: add furmark workaround layer
Timothy Arceri (2):
- mesa: fix _mesa_update_texture_matrices()
- util/driconf: Add linux version of Penumbra fixes
Timur Kristóf (3):
- ac/nir/ngg: Fix scratch space for NGG GS streamout
- radv: Disable sparse mapping when unsupported by VM
- ac/gpu_info: Disable sparse VM mappings pre-Polaris, for now
Valentine Burley (2):
- intel/ci: Drop timeout overrides for pre-merge jobs
- egl: Disable kopper on Android
Yiwei Zhang (2):
- venus: use seq_cst for ring cs and tail update ordering
- venus: fix racy semaphore feedback counter update

File diff suppressed because it is too large Load diff

View file

@ -1,279 +0,0 @@
Mesa 25.3.1 Release Notes / 2025-12-03
======================================
Mesa 25.3.1 is a bug fix release which fixes bugs found since the 25.3.0 release.
Mesa 25.3.1 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.3.1 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: 059d0d985622f49588f01aa29152804f4da8ffe6add046e00a52923379c2d8da mesa-25.3.1.tar.xz
SHA512: 7e2f7295f1f4df129935b60d75c890f6ae585ecc511f69f55a61826df5f2434ffdb4109c632af9842a986bf9beed430a0404d377e8335b71fa36682bd10533ba mesa-25.3.1.tar.xz
New features
------------
- None
Bug fixes
---------
- venus: synchronization tests sometimes get stuck in semaphore/fence wait
- [ANV][LNL] - Detroit: Become Human (1222140) - Flickering horizontal artifacts across the screen
- [ANV][LNL] - Eternal Strands (1491410) - Colorful graphical aberrations are present whenever a 3D asset is visible.
- [ANV][DG2/LNL] SolarBay extreme RT regression
- After 25.3 update some app windows became glitchy on uhd 620
- FurMark gets glitchi graphics when using Vulkan API on UHD 620 (mesa 25.2.6 and 26.0)
- tu: resource leak
- Regression: MSVC fails to build 32 bit binaries
- Zink on Android: failed to create dri2 screen
- Amnesia: The Bunker (2023) OpenGL graphics glitch on Intel graphics
- freedreno, tu: resource leak
- meson: When building radeonsi without llvm, it fails without setting amd_with_llvm to false explicitly
- loader.c:156:14: error: call to undeclared function 'drmCommandWriteRead'
- radv: RB+ for depth-only is broken with unused color attachments
- win_bison random failure extern_stdin:40: ERROR: end of file in string
- Texture matrix stack pops do not seem to always update the texture matrix
- Polaris, amdgpu: Application using VCE wedges GPU
- radv vulkan video encode does not process used_by_curr_pic_lt_flag correctly
- [BMG] Metro Exodus Enhanced Edition (1449560) - Crash
- venus: random failures in dEQP.api.info.image_format_properties2.1d
Changes
-------
Aitor Camacho (2):
- vulkan/cmd_queue: Use vk_strdup and free allocated string memory
- vulkan/wsi: Fix double destroy of present_id_timeline at swapchain create
Alyssa Rosenzweig (1):
- nir/sweep: fix use-after-free with dominance LCA
Benjamin Cheng (4):
- radv/video: Align each layer of encode DPB to 256
- radv/video: Fix num_ref_idx_l{0,1} related overrides
- radv/video: Fix H264/H265 reference selection
- radv/video: Override direct_spatial_mv_pred to 1
Calder Young (3):
- brw: fix SIMD lowering of fp16 sampler message data with multiple components
- anv: Fix ray query shadow stack buffer size
- intel: Fix calculation of max_scratch_ids on fused devices
Christoph Pillmayer (1):
- nir: Fix preseved metadata in sort_unstructured_blocks
Connor Abbott (1):
- tu: Handle case where pipeline writes unused color attachments
Daniel Schürmann (1):
- nir/opt_large_constants: Fix dead deref instructions accessing lowered variables
Dave Airlie (1):
- dozen: return INCOMPATIBLE_DRIVER on instance create failure
David Rosca (7):
- vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1
- radv/video: Fix coding allow_screen_content_tools and force_integer_mv
- radv/video: Fix coding used_by_curr_pic_lt_flag
- radeonsi/vce: Add workaround for unaligned input surface
- radeonsi/vcn: Reduce allocated size for pre-encode recon pics
- radeonsi/vcn: Fix maybe uninitialized warning
- radv/video: Fix AV1 quantization map maxQIndexDelta value
Dylan Baker (9):
- docs: Add sha sums for 25.3.0
- .pick_status.json: Update to 018f45f9812cb5b728e2eb32a5b350efdd9ac90f
- .pick_status.json: Update to 7a3bfd1f7913819db315e6db8b42520a2d862690
- .pick_status.json: Update to 7c193ffef1a8316b4b666c9c2ec5afdd2035dd89
- .pick_status.json: Update to bcedc88f2142d9a2b277c7b848b744e13d426f76
- .pick_status.json: Update to 076a3834374b2ccd43dd1c7ce73f44795d601300
- .pick_status.json: Update to a71b4a4b954dcfc1667dc1b36f1f25ac02d3469b
- .pick_status.json: Update to ac37885fc85203c08f09345c637b6a21f642ed66
- docs/relnotes/25.3.0: Escape some rst language constructs
Emma Anholt (1):
- tu: Fix leak of compute shader pipeline->base.executables_mem_ctx;
Eric Engestrom (3):
- meson: auto-disable \`amd-use-llvm` when \`llvm=disabled`
- meson: auto-disable \`draw-use-llvm` when \`llvm=disabled`
- ci: use $CI_TRON_JOB_PRIORITY tag on all ci-tron jobs
Eric R. Smith (1):
- pan: fix a bifrost disassembly assert failure
Erik Faye-Lund (4):
- pan/kmod: fix priority query logic
- panfrost: remove stale code
- mesa/main: correct formatquery error-handling
- mesa/st: do not enable EXT_texture_buffer_object with rgba only
Faith Ekstrand (1):
- vulkan/drm-syncobj: Stop returning early waiting for sync files
Gil Pedersen (1):
- intel: Add PIPE_FORMAT_R10G10B10X2_UNORM support
Gurchetan Singh (1):
- util: fix arithmetic on a pointer to void warning
Hyunjun Ko (1):
- vulkan/video: Fix H.265 long-term reference handling
Ian Forbes (1):
- svga: Check if Stencil buffer is NULL
Ian Romanick (2):
- brw: Force allow_spilling when spill_all is set
- lavapipe: fp16 flrp must also be lowered
Icenowy Zheng (1):
- pvr: enable samplerMirrorClampToEdge feature
Karol Herbst (2):
- rusticl/kernel: fix clGetKernelSuggestedLocalWorkSizeKHR implementation
- rusticl/kernel: Do not run kernels with a workgroup size beyond work_dim
Lionel Landwerlin (15):
- brw: fixup 64bit atomics emulation on 2D array images
- brw: fix SIMD lowering of sampler messages with fp16 data
- brw: fix workaround fence rlen field
- anv: fixup load_ubo lowering
- anv: ensure slab allocated memory matches image requirements
- anv: consider 64bit atomics on similar formats with mutable images
- anv: Wa_18040903259 only applies to RCS when in GPGPU mode
- brw: compute final copy propagation resulting source
- nir: fix lower_printf with no arguments
- spirv: fix printf generation
- nir/lower_printf: fix array alignment
- nir/lower_printf: fix missing singleton add
- vulkan/runtime: track dynamic descriptor offsets for RT pipelines
- anv: fix broken ray tracing dynamic descriptors
- anv: add 32-wide subgroup requirement heuristic
Matt Turner (2):
- meson: Fix sysprof-capture-4 dependency
- meson: Let -Ddraw-use-llvm=false work for R300 on non-x86
Mel Henning (5):
- zink: Return zink_device in create_logical_device
- zink: Make screen->queue_lock a pointer
- zink: Create one queue lock per device
- zink: Lock queue_lock in zink_destroy_screen
- zink: Lock around screen_debug_marker_{begin,end}
Natalie Vock (3):
- aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard
- radv/rt: Keep updated nodes always active
- radv/rt: Correctly copy culling flags when updating to separate AS
Olivia Lee (2):
- panvk/csf: fix uninitialized read in draw context
- panvk/csf: explicitly set ls_sb_slot in set_fbds_provoking_vertex
Patrick Lerda (2):
- r600: fix rv770 read scratch compatibility
- r600: fix error filters compatibility
Pierre-Eric Pelloux-Prayer (2):
- radeonsi/sqtt: clear out sqtt bo on resize
- mesa: fix function prototype
Qiang Yu (1):
- glsl: support barrier() for task and mesh shader
Rob Clark (2):
- freedreno/a6xx: Fix UB in convert_color()
- freedreno: Fix internal VBO reference leak
Samuel Pitoiset (2):
- radv: fix RB+ for depth-only with unused attachments
- radv: fix per-submit RGP captures on video queues
Sushma Venkatesh Reddy (1):
- drirc: Add anv_assume_full_subgroups for Detroit: Become Human
Tapani Pälli (4):
- drirc/iris: add drirc to disable threaded context
- drirc: set intel_disable_threaded_context for Amnesia The Bunker
- anv: add furmark workaround layer
- anv: add vk_wsi_disable_unordered_submits and enable for GTK
Timothy Arceri (2):
- mesa: fix _mesa_update_texture_matrices()
- util/driconf: Add linux version of Penumbra fixes
Timur Kristóf (2):
- radv: Disable sparse mapping when unsupported by VM
- ac/gpu_info: Disable sparse VM mappings pre-Polaris, for now
Valentine Burley (1):
- egl: Disable kopper on Android
Yiwei Zhang (4):
- venus: use seq_cst for ring cs and tail update ordering
- venus: avoid re-imported dma-buf to have a larger map size
- venus: properly fix the blob mem mapping size
- venus: fix racy semaphore feedback counter update
Yonggang Luo (1):
- ci/microsoft: Downgrading WinFlexBison.win_flex_bison to version 2.5.24
Yurii Kolesnykov (1):
- loader: Wrap nouveau_zink_predicate with HAVE_LIBDRM

View file

@ -1,240 +0,0 @@
Mesa 25.3.2 Release Notes / 2025-12-17
======================================
Mesa 25.3.2 is a bug fix release which fixes bugs found since the 25.3.1 release.
Mesa 25.3.2 implements the OpenGL 4.6 API, but the version reported by
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
4.6 is **only** available if requested at context creation.
Compatibility contexts may report a lower version depending on each driver.
Mesa 25.3.2 implements the Vulkan 1.4 API, but the version reported by
the apiVersion property of the VkPhysicalDeviceProperties struct
depends on the particular driver being used.
SHA checksums
-------------
::
SHA256: e69dab0d0ea03e3e8cb141b032f58ea9fcf3b9c1f61b31f6592cb4bbd8d0185d mesa-25.3.2.tar.xz
SHA512: 499cb0aa254b5a706fb6c2414c23b9d5d03d9397475f7ad16744b982303a2a2bf643ef7adc64870645ee4355b5f95695becd6caff7d7f7caf698e6269589aa13 mesa-25.3.2.tar.xz
New features
------------
- None
Bug fixes
---------
- [bisected][iris] - Celeste - Lighting artifacts during gameplay
- [bsw][regression][bisected][hasvk] various crashing tests
- radv: incorrect vectorization of 8-bit/16-bit causes random GPU hangs with DXVK
- LLVM crashes when loading specific Minecraft Shaderpacks
- Firefox crashes in some Gallium drivers since mesa 25.3.0
- radv: Is radv_wsi_get_prime_blit_queue bugged?
- radv: don't include constant data in RGP captures
- [anv] mpv video playback blacks out when resized larger than video resolution
- corrupted video when using pRefList0ModOperations on radv h264
- [radv] [feature request] Add an env var to not expose resizable bar to app
- Steam Deck/9060 XT Consistently hang with game demo "Cursemark"
Changes
-------
Aitor Camacho (2):
- wsi/metal: Fix command buffer release at destroy
- wsi/metal: Fix blit_imate_to_image's pool selection for cmd buffer alloc
Anna Maniscalco (1):
- radv: recalculate legacy_gs_info on bind
Ashley Smith (1):
- panfrost,panvk: Enable shader_realtime_clock on panthor 1.6
Benjamin Cheng (2):
- radv/video: Fix force_integer_mv=1 on intra frame
- radv/video: Always end ref pic modification list
Boris Brezillon (5):
- panvk: Fix a memory leak in the descriptor set logic
- pan/bi: Fix leak in bi_iterator_schedule()
- panvk: Don't leak shader binaries when loaded from the cache
- panvk: Free the decode context in the create_device() error path
- pan/cs: Don't leak builder resources
Caio Oliveira (1):
- nir/gcm: Consider dead code elimination done by GCM as progress
Calder Young (3):
- anv: Fix scratch pool buffer allocation sizes
- anv: Fix misplaced assertion in anv_scratch_pool_alloc
- anv: Fix typo when checking if async rt scratch size changed
Connor Abbott (4):
- tu: Fix GRAS_BIN_FOVEAT* programming with more than 1 layer
- tu: Fix FragCoord offset when HW viewport offset is enabled
- tu: Fill render pass state when resuming
- ir3: Fix condition for using uniform predicates
Dave Airlie (1):
- nak/cmat: free the type mapping hash table.
Dylan Baker (16):
- docs: Add checksums for 25.3.1
- .pick_status.json: Update to b75cd07265b6d34cefde80399e7ff0cd7652dbca
- .pick_status.json: Mark 829bd406c04566962268138195ecb2c4d78da5cf as backported
- .pick_status.json: Update to b13003133d4440bfd33fc320c051b474458c8e02
- .pick_status.json: Update to 0104b3df414bddeab37ae6cf116c532410134bc0
- .pick_status.json: Update to f912db3f8dc0c0cb8cb2358e6ec79dd03b7a875d
- .pick_status.json: Update to 72b43c0595d41c233d039c32f63120e0c3c27f59
- .pick_status.json: Update to 095c2acf0180a1cbe7d60b6ffbfcd14e35724e22
- anv/video: Read the right source for memcpy
- anv/video: Cast intentional read past end of struct member to void*
- .pick_status.json: Update to b5cf3b1628bdf473ea40a6756a4098eb56151bbc
- .pick_status.json: Update to 518705a4fe794683a4c672f803e011490d24c12c
- .pick_status.json: Update to 9c16bbd0237575e5dd9bd4e5f25d6da990ac4925
- .pick_status.json: Update to dfdaee5ca74fbf1945326b454079575826df5a89
- .pick_status.json: Mark 6dff50c8bc7430bf04c0dc5d8dc648f6ed73e4f3 as backported
- .pick_status.json: Mark bbc8ce27048440befc0519ac03eeefa933f6ef0d as backported
Eric R. Smith (1):
- panfrost: do not allow skipping of fragment shader when alpha-to-coverage
Erik Faye-Lund (2):
- docs/panfrost: remove some stray newlines
- panfrost: do not over-estimate memory needed for dummy-rt
Faith Ekstrand (2):
- pan/bi: Fix LD_VAR_BUF indirect offset calculations
- pan/bi: Handle small vectors in bi_src_index()
Georg Lehmann (3):
- nir/opt_uniform_subgroup: don't try to optimize non trivial clustered reduce
- nir/opt_uniform_subgroup: fix swizzle_amd without fetch_inactive
- nir/divergence_analysis: fix swizzle_amd without fetch inactive
Gurchetan Singh (1):
- gfxstream: fix logspam in TLS helper function
Hans-Kristian Arntzen (1):
- egl/x11: Fix memory leak when querying translated coord.
Hyunjun Ko (1):
- anv/video: fix VP9 chroma subsampling format detection
Janne Grunau (1):
- util/driconf/asahi: Override GL renderer for web browsers
Karmjit Mahil (1):
- gallium: Fix gnu-empty-initalizer error
Karol Herbst (1):
- nir: add ACCESS to shared_uniform_block_intel
Kenneth Graunke (1):
- nir: Fix mod analysis of ishl to shift the recursive result
Konstantin Seurer (1):
- nir: Ignore ray query ranges that don't start with rq_initialize
LingMan (3):
- rust: build \`equivalent` dependency with the correct edition
- rust: build \`paste` dependency with the correct edition
- rust: build \`ucd-trie` dependency with the correct edition
Lionel Landwerlin (8):
- anv: fix internal representations of shaders
- anv: add missing device_memory_report for shaders
- anv: fixup error path for shader allocation
- anv: disable crast on SKL
- vulkan/runtime: add an internal flag for independent sets
- anv: reintroduce non independent sets dynamic descriptor optimization
- anv: move load_num_workgroups tracking to driver
- anv: fix dynamic buffers & independent sets
Mary Guillemard (1):
- nvk: Use rendering state attachment count when setting SET_CT_SELECT
Nanley Chery (3):
- anv: Don't allow STORAGE + CCS for Y_TILED mod
- intel/isl: Only assert surface addresses on gfx9+
- iris: Fix pipe control around fast-clears
Natalie Vock (1):
- radv: Move VMID reservation to vkCreateDevice
Patrick Lerda (1):
- r600: improve cayman scissor 1x1 workaround
Qiang Yu (1):
- ac/llvm: workaround legacy fma intrinsic crash on gfx12
Rhys Perry (2):
- ac/nir: fix calculation of aligned_new_size
- ac/nir: fix check for increasing size of non-descriptor loads
Rob Clark (3):
- freedreno/decode: Add extra indent levels
- gallium: Make upload_cb0 return a releasebuf
- asahi: Set prefer_real_buffer_in_constbuf0
Samuel Pitoiset (4):
- radv: add radv_hide_rebar_on_dgpu and enable for Red Dead Redemption 2
- radv: reduce maxTexelBufferElements to 1<<29
- radv: only include executable size when capturing shaders with RGP
- radv: fix race condition when getting the blit queue
Timothy Arceri (1):
- util/driconf: add Cursemark workaround
Utku Iseri (1):
- panfrost: add earlyzs FPK condition for v6-
Valentine Burley (1):
- panfrost/ci: Fix GitLab rules after YAML split
Yiwei Zhang (1):
- pan: fix pan_blend_reads_dest to consider special min/max funcs

View file

@ -1,22 +1,89 @@
VK_KHR_relaxed_block_layout on pvr
VK_KHR_storage_buffer_storage_class on pvr
VK_EXT_external_memory_acquire_unmodified on panvk
VK_EXT_discard_rectangles on NVK
VK_KHR_present_id on HoneyKrisp
VK_KHR_present_id2 on HoneyKrisp
VK_KHR_present_wait on HoneyKrisp
VK_KHR_present_wait2 on HoneyKrisp
VK_KHR_maintenance10 on ANV, NVK, RADV
VK_EXT_shader_uniform_buffer_unsized_array on NVK, RADV
VK_EXT_device_memory_report on panvk
VK_VALVE_video_encode_rgb_conversion on radv
VK_EXT_custom_resolve on RADV
GL_EXT_shader_pixel_local_storage on Panfrost v6+
VK_EXT_image_drm_format_modifier on panvk/v7
VK_KHR_sampler_ycbcr_conversion on panvk/v7
sparseResidencyImage2D on panvk v10+
sparseResidencyStandard2DBlockShape on panvk v10+
VK_KHR_surface_maintenance1 promotion everywhere EXT is exposed
VK_KHR_swapchain_maintenance1 promotion everywhere EXT is exposed
VK_KHR_dynamic_rendering on PowerVR
VK_EXT_multisampled_render_to_single_sampled on panvk
EGL_EXT_create_context_robustness support on Panfrost V10+
GL_ARB_robust_buffer_access_behavior, GL_KHR_robust_buffer_access_behavior and GL_KHR_robustness support on Panfrost
VK_EXT_mutable_descriptor_type on panvk/v9+
GL_KHR_robustness on v3d
VK_ARM_shader_core_builtins on panvk
VK_KHR_shader_untyped_pointers on anv
cl_ext_immutable_memory_objects
VK_KHR_video_encode_intra_refresh on radv
VK_KHR_video_encode_quantization_map on radv
GL_ATI_meminfo and GL_NVX_gpu_memory_info on r300
VK_KHR_shader_untyped_pointers on anv and RADV
VK_KHR_maintenance8 on NVK
VK_KHR_maintenance9 on NVK
cl_khr_semaphore on radeonsi and zink
cl_khr_external_semaphore on radeonsi and zink
cl_khr_external_semaphore_sync_fd on radeonsi and zink
GL_NV_shader_atomic_int64 on radeonsi and Panfrost V9+
VK_KHR_maintenance7 on panvk/v10+
VK_KHR_maintenance8 on panvk/v10+
VK_KHR_maintenance9 on panvk
VK_AMD_buffer_marker on NVK
VK_EXT_ycbcr_2plane_444_formats on radv
Removed VDPAU frontend
GL_NV_representative_fragment_test on zink
VK_KHR_maintenance9 on HoneyKrisp
sparseBinding on panvk/v10+
sparseResidencyBuffer on panvk/v10+
Vulkan 1.2 on pvr
VK_KHR_create_renderpass2 on pvr
VK_KHR_dedicated_allocation on pvr
VK_KHR_depth_stencil_resolve on pvr
VK_KHR_descriptor_update_template on pvr
VK_KHR_imageless_framebuffer on pvr
VK_KHR_line_rasterization on pvr
VK_KHR_maintenance1 on pvr
VK_KHR_maintenance2 on pvr
VK_KHR_maintenance3 on pvr
VK_KHR_multiview on pvr
VK_KHR_robustness2 on pvr
VK_KHR_separate_depth_stencil_layouts on pvr
VK_KHR_shader_draw_parameters on pvr
VK_KHR_shader_float_controls on pvr
VK_KHR_shader_subgroup_extended_types on pvr
VK_KHR_spirv_1_4 on pvr
VK_KHR_shader_terminate_invocation on pvr
VK_KHR_swapchain_mutable_format on pvr
VK_KHR_vertex_attribute_divisor on pvr
VK_EXT_border_color_swizzle on pvr
VK_EXT_color_write_enable on pvr
VK_EXT_custom_border_color on pvr
VK_EXT_depth_clamp_zero_one on pvr
VK_EXT_depth_clip_enable on pvr
VK_EXT_extended_dynamic_state on pvr
VK_EXT_extended_dynamic_state2 on pvr
VK_EXT_extended_dynamic_state3 on pvr
VK_EXT_image_2d_view_of_3d on pvr
VK_EXT_line_rasterization on pvr
VK_EXT_physical_device_drm on pvr
VK_EXT_provoking_vertex on pvr
VK_EXT_robustness2 on pvr
VK_EXT_queue_family_foreign on pvr
VK_EXT_separate_stencil_usage on pvr
VK_EXT_shader_demote_to_helper_invocation on pvr
VK_EXT_vertex_attribute_divisor on pvr
imageCubeArray on pvr
independentBlend on pvr
sampleRateShading on pvr
logicOp on pvr
drawIndirectFirstInstance on pvr
alphaToOne on pvr
samplerAnisotropy on pvr
shaderStorageImageExtendedFormats on pvr
shaderStorageImageReadWithoutFormat on pvr
shaderStorageImageWriteWithoutFormat on pvr
shaderClipDistance on pvr
shaderCullDistance on pvr
VK_EXT_zero_initialize_device_memory on pvr
VK_KHR_sampler_mirror_clamp_to_edge on pvr
VK_KHR_shader_non_semantic_info on pvr
VK_KHR_shader_relaxed_extended_instruction on pvr
VK_EXT_shader_replicated_composites on pvr
VK_KHR_device_group_creation on pvr
VK_KHR_map_memory2 on pvr
VK_EXT_map_memory_placed on pvr
VK_KHR_device_group on pvr
VK_KHR_buffer_device_address on pvr
GL_EXT_mesh_shader on zink
VK_KHR_wayland_surface on pvr
VK_NVX_image_view_handle on NVK

View file

@ -497,12 +497,11 @@ Our documentation is written as `reStructuredText`_ files in the
.. code-block:: sh
# Install dependencies (adapt for your distribution)
apk add coreutils graphviz clang-dev musl-dev linux-headers
python3 -m venv docs-build
./docs-build/bin/pip3 install sphinx===8.2.3 mako===1.2.3 hawkmoth===0.19.0 clang===$(llvm-config --version)
apk add coreutils graphviz py3-clang clang-dev musl-dev linux-headers
pip3 install sphinx===5.1.1 mako===1.2.3 hawkmoth===0.16.0
# Build docs (on Debian, set LD_LIBRARY_PATH to /usr/lib/llvm-VERSION/lib so it can find libclang.so)
./docs-build/bin/sphinx-build -W -b html docs docs-html/
# Build docs
sphinx-build -W -b html docs docs-html/
The preferred language of the documentation is US English. This
doesn't mean that everyone is expected to pay close attention to

View file

@ -75,8 +75,7 @@ __BEGIN_DECLS
#define ATRACE_TAG_AIDL (1<<24)
#define ATRACE_TAG_NNAPI (1<<25)
#define ATRACE_TAG_RRO (1<<26)
#define ATRACE_TAG_THERMAL (1 << 27)
#define ATRACE_TAG_LAST ATRACE_TAG_THERMAL
#define ATRACE_TAG_LAST ATRACE_TAG_RRO
// Reserved for initialization.
#define ATRACE_TAG_NOT_READY (1ULL<<63)
@ -89,36 +88,6 @@ __BEGIN_DECLS
#error ATRACE_TAG must be defined to be one of the tags defined in cutils/trace.h
#endif
/** Internal implementation detail. Do not use. */
void atrace_begin_body(const char*);
/** Internal implementation detail. Do not use. */
void atrace_end_body();
/** Internal implementation detail. Do not use. */
void atrace_async_begin_body(const char*, int32_t);
/** Internal implementation detail. Do not use. */
void atrace_async_end_body(const char*, int32_t);
/** Internal implementation detail. Do not use. */
void atrace_async_for_track_begin_body(const char*, const char*, int32_t);
/** Internal implementation detail. Do not use. */
void atrace_async_for_track_end_body(const char*, int32_t);
/** Internal implementation detail. Do not use. */
void atrace_instant_body(const char*);
/** Internal implementation detail. Do not use. */
void atrace_instant_for_track_body(const char*, const char*);
/** Internal implementation detail. Do not use. */
void atrace_int_body(const char*, int32_t);
/** Internal implementation detail. Do not use. */
void atrace_int64_body(const char*, int64_t);
/**
* Opens the trace file for writing and reads the property for initial tags.
* The atrace.tags.enableflags property sets the tags to trace.
@ -189,6 +158,7 @@ static inline uint64_t atrace_is_tag_enabled(uint64_t tag)
static inline void atrace_begin(uint64_t tag, const char* name)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_begin_body(const char*);
atrace_begin_body(name);
}
}
@ -201,6 +171,7 @@ static inline void atrace_begin(uint64_t tag, const char* name)
static inline void atrace_end(uint64_t tag)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_end_body();
atrace_end_body();
}
}
@ -218,6 +189,7 @@ static inline void atrace_async_begin(uint64_t tag, const char* name,
int32_t cookie)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_async_begin_body(const char*, int32_t);
atrace_async_begin_body(name, cookie);
}
}
@ -230,72 +202,11 @@ static inline void atrace_async_begin(uint64_t tag, const char* name,
static inline void atrace_async_end(uint64_t tag, const char* name, int32_t cookie)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_async_end_body(const char*, int32_t);
atrace_async_end_body(name, cookie);
}
}
/**
* Trace the beginning of an asynchronous event. In addition to the name and a
* cookie as in ATRACE_ASYNC_BEGIN/ATRACE_ASYNC_END, a track name argument is
* provided, which is the name of the row where this async event should be
* recorded. The track name, name, and cookie used to begin an event must be
* used to end it.
* The cookie here must be unique on the track_name level, not the name level.
*/
#define ATRACE_ASYNC_FOR_TRACK_BEGIN(track_name, name, cookie) \
atrace_async_for_track_begin(ATRACE_TAG, track_name, name, cookie)
static inline void atrace_async_for_track_begin(uint64_t tag, const char* track_name,
const char* name, int32_t cookie) {
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
atrace_async_for_track_begin_body(track_name, name, cookie);
}
}
/**
* Trace the end of an asynchronous event.
* This should correspond to a previous ATRACE_ASYNC_FOR_TRACK_BEGIN.
*/
#define ATRACE_ASYNC_FOR_TRACK_END(track_name, cookie) \
atrace_async_for_track_end(ATRACE_TAG, track_name, cookie)
static inline void atrace_async_for_track_end(uint64_t tag, const char* track_name,
int32_t cookie) {
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
atrace_async_for_track_end_body(track_name, cookie);
}
}
/**
* Trace an instantaneous context. name is used to identify the context.
*
* An "instant" is an event with no defined duration. Visually is displayed like a single marker
* in the timeline (rather than a span, in the case of begin/end events).
*
* By default, instant events are added into a dedicated track that has the same name of the event.
* Use atrace_instant_for_track to put different instant events into the same timeline track/row.
*/
#define ATRACE_INSTANT(name) atrace_instant(ATRACE_TAG, name)
static inline void atrace_instant(uint64_t tag, const char* name) {
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
atrace_instant_body(name);
}
}
/**
* Trace an instantaneous context. name is used to identify the context.
* track_name is the name of the row where the event should be recorded.
*
* An "instant" is an event with no defined duration. Visually is displayed like a single marker
* in the timeline (rather than a span, in the case of begin/end events).
*/
#define ATRACE_INSTANT_FOR_TRACK(trackName, name) \
atrace_instant_for_track(ATRACE_TAG, trackName, name)
static inline void atrace_instant_for_track(uint64_t tag, const char* track_name,
const char* name) {
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
atrace_instant_for_track_body(track_name, name);
}
}
/**
* Traces an integer counter value. name is used to identify the counter.
* This can be used to track how a value changes over time.
@ -304,6 +215,7 @@ static inline void atrace_instant_for_track(uint64_t tag, const char* track_name
static inline void atrace_int(uint64_t tag, const char* name, int32_t value)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_int_body(const char*, int32_t);
atrace_int_body(name, value);
}
}
@ -316,6 +228,7 @@ static inline void atrace_int(uint64_t tag, const char* name, int32_t value)
static inline void atrace_int64(uint64_t tag, const char* name, int64_t value)
{
if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) {
void atrace_int64_body(const char*, int64_t);
atrace_int64_body(name, value);
}
}

View file

@ -1489,6 +1489,29 @@ struct drm_amdgpu_info_hw_ip {
__u32 available_rings;
/** version info: bits 23:16 major, 15:8 minor, 7:0 revision */
__u32 ip_discovery_version;
/* Userq available slots */
__u32 userq_num_slots;
};
/* GFX metadata BO sizes and alignment info (in bytes) */
struct drm_amdgpu_info_uq_fw_areas_gfx {
/* shadow area size */
__u32 shadow_size;
/* shadow area base virtual mem alignment */
__u32 shadow_alignment;
/* context save area size */
__u32 csa_size;
/* context save area base virtual mem alignment */
__u32 csa_alignment;
};
/* IP specific metadata related information used in the
* subquery AMDGPU_INFO_UQ_FW_AREAS
*/
struct drm_amdgpu_info_uq_fw_areas {
union {
struct drm_amdgpu_info_uq_fw_areas_gfx gfx;
};
};
struct drm_amdgpu_info_num_handles {
@ -1554,39 +1577,6 @@ struct drm_amdgpu_info_gpuvm_fault {
__u32 vmhub;
};
struct drm_amdgpu_info_uq_metadata_gfx {
/* shadow area size for gfx11 */
__u32 shadow_size;
/* shadow area base virtual alignment for gfx11 */
__u32 shadow_alignment;
/* context save area size for gfx11 */
__u32 csa_size;
/* context save area base virtual alignment for gfx11 */
__u32 csa_alignment;
};
struct drm_amdgpu_info_uq_metadata_compute {
/* EOP size for gfx11 */
__u32 eop_size;
/* EOP base virtual alignment for gfx11 */
__u32 eop_alignment;
};
struct drm_amdgpu_info_uq_metadata_sdma {
/* context save area size for sdma6 */
__u32 csa_size;
/* context save area base virtual alignment for sdma6 */
__u32 csa_alignment;
};
struct drm_amdgpu_info_uq_metadata {
union {
struct drm_amdgpu_info_uq_metadata_gfx gfx;
struct drm_amdgpu_info_uq_metadata_compute compute;
struct drm_amdgpu_info_uq_metadata_sdma sdma;
};
};
/*
* Supported GPU families
*/

View file

@ -979,20 +979,14 @@ extern "C" {
* 2 = Gob Height 8, Turing+ Page Kind mapping
* 3 = Reserved for future use.
*
* 22:22 s Sector layout. There is a further bit remapping step that occurs
* 26:27 at an even lower level than the page kind and block linear
* swizzles. This causes the bit arrangement of surfaces in memory
* to differ subtly, and prevents direct sharing of surfaces between
* GPUs with different layouts.
* 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a further
* bit remapping step that occurs at an even lower level than the
* page kind and block linear swizzles. This causes the layout of
* surfaces mapped in those SOC's GPUs to be incompatible with the
* equivalent mapping on other GPUs in the same system.
*
* 0 = Tegra K1 - Tegra Parker/TX2 Layout
* 1 = Pre-GB20x, GB20x 32+ bpp, GB10, Tegra Xavier-Orin Layout
* 2 = GB20x(Blackwell 2)+ 8 bpp surface layout
* 3 = GB20x(Blackwell 2)+ 16 bpp surface layout
* 4 = Reserved for future use.
* 5 = Reserved for future use.
* 6 = Reserved for future use.
* 7 = Reserved for future use.
* 0 = Tegra K1 - Tegra Parker/TX2 Layout.
* 1 = Desktop GPU and Tegra Xavier+ Layout
*
* 25:23 c Lossless Framebuffer Compression type.
*
@ -1007,7 +1001,7 @@ extern "C" {
* 6 = Reserved for future use
* 7 = Reserved for future use
*
* 55:28 - Reserved for future use. Must be zero.
* 55:25 - Reserved for future use. Must be zero.
*/
#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \
fourcc_mod_code(NVIDIA, (0x10 | \
@ -1015,7 +1009,6 @@ extern "C" {
(((k) & 0xff) << 12) | \
(((g) & 0x3) << 20) | \
(((s) & 0x1) << 22) | \
(((s) & 0x6) << 25) | \
(((c) & 0x7) << 23)))
/* To grandfather in prior block linear format modifiers to the above layout,
@ -1024,7 +1017,7 @@ extern "C" {
* which corresponds to the "generic" kind used for simple single-sample
* uncompressed color formats on Fermi - Volta GPUs.
*/
static inline __u64
static __inline__ __u64
drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
{
if (!(modifier & 0x10) || (modifier & (0xff << 12)))

View file

@ -24,8 +24,6 @@ extern "C" {
#define DRM_PANFROST_SET_LABEL_BO 0x09
#define DRM_PANFROST_JM_CTX_CREATE 0x0a
#define DRM_PANFROST_JM_CTX_DESTROY 0x0b
#define DRM_PANFROST_SYNC_BO 0x0c
#define DRM_PANFROST_QUERY_BO_INFO 0x0d
#define DRM_IOCTL_PANFROST_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_SUBMIT, struct drm_panfrost_submit)
#define DRM_IOCTL_PANFROST_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_WAIT_BO, struct drm_panfrost_wait_bo)
@ -37,8 +35,6 @@ extern "C" {
#define DRM_IOCTL_PANFROST_SET_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_SET_LABEL_BO, struct drm_panfrost_set_label_bo)
#define DRM_IOCTL_PANFROST_JM_CTX_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_JM_CTX_CREATE, struct drm_panfrost_jm_ctx_create)
#define DRM_IOCTL_PANFROST_JM_CTX_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_JM_CTX_DESTROY, struct drm_panfrost_jm_ctx_destroy)
#define DRM_IOCTL_PANFROST_SYNC_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_SYNC_BO, struct drm_panfrost_sync_bo)
#define DRM_IOCTL_PANFROST_QUERY_BO_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_QUERY_BO_INFO, struct drm_panfrost_query_bo_info)
/*
* Unstable ioctl(s): only exposed when the unsafe unstable_ioctls module
@ -58,46 +54,32 @@ extern "C" {
* This asks the kernel to have the GPU execute a render command list.
*/
struct drm_panfrost_submit {
/**
* @jc: Address to GPU mapping of job descriptor
*/
/** Address to GPU mapping of job descriptor */
__u64 jc;
/**
* @in_syncs: An optional array of sync objects to wait on
* before starting this job.
*/
/** An optional array of sync objects to wait on before starting this job. */
__u64 in_syncs;
/**
* @in_sync_count: Number of sync objects to wait on before
* starting this job.
*/
/** Number of sync objects to wait on before starting this job. */
__u32 in_sync_count;
/**
* @out_sync: An optional sync object to place the completion fence in.
*/
/** An optional sync object to place the completion fence in. */
__u32 out_sync;
/**
* @bo_handles: Pointer to a u32 array of the BOs that are
* referenced by the job.
*/
/** Pointer to a u32 array of the BOs that are referenced by the job. */
__u64 bo_handles;
/**
* @bo_handle_count: Number of BO handles passed in (size is
* that times 4).
*/
/** Number of BO handles passed in (size is that times 4). */
__u32 bo_handle_count;
/**
* @requirements: A combination of PANFROST_JD_REQ_*
*/
/** A combination of PANFROST_JD_REQ_* */
__u32 requirements;
/**
* @jm_ctx_handle: JM context handle. Zero if you want to use the
* default context.
*/
/** JM context handle. Zero if you want to use the default context. */
__u32 jm_ctx_handle;
/**
* @pad: Padding field. Must be zero.
*/
/** Padding field. MBZ. */
__u32 pad;
};
@ -110,26 +92,14 @@ struct drm_panfrost_submit {
* completed.
*/
struct drm_panfrost_wait_bo {
/**
* @handle: Handle for the object to wait for.
*/
__u32 handle;
/**
* @pad: Padding, must be zero-filled.
*/
__u32 pad;
/**
* @timeout_ns: absolute number of nanoseconds to wait.
*/
__s64 timeout_ns;
__s64 timeout_ns; /* absolute */
};
/* Valid flags to pass to drm_panfrost_create_bo.
* PANFROST_BO_WB_MMAP can't be set if PANFROST_BO_HEAP is.
*/
/* Valid flags to pass to drm_panfrost_create_bo */
#define PANFROST_BO_NOEXEC 1
#define PANFROST_BO_HEAP 2
#define PANFROST_BO_WB_MMAP 4
/**
* struct drm_panfrost_create_bo - ioctl argument for creating Panfrost BOs.
@ -137,26 +107,16 @@ struct drm_panfrost_wait_bo {
* The flags argument is a bit mask of PANFROST_BO_* flags.
*/
struct drm_panfrost_create_bo {
/**
* @size: size of shmem/BO area to create (bytes)
*/
__u32 size;
/**
* @flags: see PANFROST_BO_* flags
*/
__u32 flags;
/**
* @handle: Returned GEM handle for the BO.
*/
/** Returned GEM handle for the BO. */
__u32 handle;
/**
* @pad: Padding, must be zero-filled.
*/
/* Pad, must be zero-filled. */
__u32 pad;
/**
* @offset: Returned offset for the BO in the GPU address space.
* This offset is private to the DRM fd and is valid for the
* lifetime of the GEM handle.
* Returned offset for the BO in the GPU address space. This offset
* is private to the DRM fd and is valid for the lifetime of the GEM
* handle.
*
* This offset value will always be nonzero, since various HW
* units treat 0 specially.
@ -176,17 +136,10 @@ struct drm_panfrost_create_bo {
* used in a future extension.
*/
struct drm_panfrost_mmap_bo {
/**
* @handle: Handle for the object being mapped.
*/
/** Handle for the object being mapped. */
__u32 handle;
/**
* @flags: currently not used (should be zero)
*/
__u32 flags;
/**
* @offset: offset into the drm node to use for subsequent mmap call.
*/
/** offset into the drm node to use for subsequent mmap call. */
__u64 offset;
};
@ -235,13 +188,6 @@ enum drm_panfrost_param {
DRM_PANFROST_PARAM_SYSTEM_TIMESTAMP,
DRM_PANFROST_PARAM_SYSTEM_TIMESTAMP_FREQUENCY,
DRM_PANFROST_PARAM_ALLOWED_JM_CTX_PRIORITIES,
DRM_PANFROST_PARAM_SELECTED_COHERENCY,
};
enum drm_panfrost_gpu_coherency {
DRM_PANFROST_GPU_COHERENCY_ACE_LITE = 0,
DRM_PANFROST_GPU_COHERENCY_ACE = 1,
DRM_PANFROST_GPU_COHERENCY_NONE = 31,
};
struct drm_panfrost_get_param {
@ -250,7 +196,7 @@ struct drm_panfrost_get_param {
__u64 value;
};
/*
/**
* Returns the offset for the BO in the GPU address space for this DRM fd.
* This is the same value returned by drm_panfrost_create_bo, if that was called
* from this DRM fd.
@ -298,14 +244,12 @@ struct drm_panfrost_madvise {
* struct drm_panfrost_set_label_bo - ioctl argument for labelling Panfrost BOs.
*/
struct drm_panfrost_set_label_bo {
/**
* @handle: Handle of the buffer object to label.
*/
/** @handle: Handle of the buffer object to label. */
__u32 handle;
/**
* @pad: Must be zero.
*/
/** @pad: MBZ. */
__u32 pad;
/**
* @label: User pointer to a NUL-terminated string
*
@ -315,66 +259,6 @@ struct drm_panfrost_set_label_bo {
__u64 label;
};
/* Valid flags to pass to drm_panfrost_bo_sync_op */
#define PANFROST_BO_SYNC_CPU_CACHE_FLUSH 0
#define PANFROST_BO_SYNC_CPU_CACHE_FLUSH_AND_INVALIDATE 1
/**
* struct drm_panthor_bo_flush_map_op - BO map sync op
*/
struct drm_panfrost_bo_sync_op {
/** @handle: Handle of the buffer object to sync. */
__u32 handle;
/** @type: Type of sync operation. */
__u32 type;
/**
* @offset: Offset into the BO at which the sync range starts.
*
* This will be rounded down to the nearest cache line as needed.
*/
__u32 offset;
/**
* @size: Size of the range to sync
*
* @size + @offset will be rounded up to the nearest cache line as
* needed.
*/
__u32 size;
};
/**
* struct drm_panfrost_sync_bo - ioctl argument for syncing BO maps
*/
struct drm_panfrost_sync_bo {
/** Array of struct drm_panfrost_bo_sync_op */
__u64 ops;
/** Number of BO sync ops */
__u32 op_count;
__u32 pad;
};
/** BO comes from a different subsystem. */
#define DRM_PANFROST_BO_IS_IMPORTED (1 << 0)
struct drm_panfrost_query_bo_info {
/** Handle of the object being queried. */
__u32 handle;
/** Extra flags that are not coming from the BO_CREATE ioctl(). */
__u32 extra_flags;
/** Flags passed at creation time. */
__u32 create_flags;
/** Will be zero on return. */
__u32 pad;
};
/* Definitions for coredump decoding in user space */
#define PANFROSTDUMP_MAJOR 1
#define PANFROSTDUMP_MINOR 0
@ -446,13 +330,10 @@ enum drm_panfrost_jm_ctx_priority {
};
struct drm_panfrost_jm_ctx_create {
/**
* @handle: Handle of the created JM context
*/
/** @handle: Handle of the created JM context */
__u32 handle;
/**
* @priority: Context priority (see enum drm_panfrost_jm_ctx_priority).
*/
/** @priority: Context priority (see enum drm_panfrost_jm_ctx_priority). */
__u32 priority;
};
@ -463,9 +344,8 @@ struct drm_panfrost_jm_ctx_destroy {
* Must be a valid context handle returned by DRM_IOCTL_PANTHOR_JM_CTX_CREATE.
*/
__u32 handle;
/**
* @pad: Padding field, must be zero.
*/
/** @pad: Padding field, MBZ. */
__u32 pad;
};

View file

@ -144,16 +144,6 @@ enum drm_panthor_ioctl_id {
* pgoff_t size.
*/
DRM_PANTHOR_SET_USER_MMIO_OFFSET,
/** @DRM_PANTHOR_BO_SYNC: Sync BO data to/from the device */
DRM_PANTHOR_BO_SYNC,
/**
* @DRM_PANTHOR_BO_QUERY_INFO: Query information about a BO.
*
* This is useful for imported BOs.
*/
DRM_PANTHOR_BO_QUERY_INFO,
};
/**
@ -255,26 +245,6 @@ enum drm_panthor_dev_query_type {
DRM_PANTHOR_DEV_QUERY_GROUP_PRIORITIES_INFO,
};
/**
* enum drm_panthor_gpu_coherency: Type of GPU coherency
*/
enum drm_panthor_gpu_coherency {
/**
* @DRM_PANTHOR_GPU_COHERENCY_ACE_LITE: ACE Lite coherency.
*/
DRM_PANTHOR_GPU_COHERENCY_ACE_LITE = 0,
/**
* @DRM_PANTHOR_GPU_COHERENCY_ACE: ACE coherency.
*/
DRM_PANTHOR_GPU_COHERENCY_ACE = 1,
/**
* @DRM_PANTHOR_GPU_COHERENCY_NONE: No coherency.
*/
DRM_PANTHOR_GPU_COHERENCY_NONE = 31,
};
/**
* struct drm_panthor_gpu_info - GPU information
*
@ -331,16 +301,7 @@ struct drm_panthor_gpu_info {
*/
__u32 thread_max_barrier_size;
/**
* @coherency_features: Coherency features.
*
* Combination of drm_panthor_gpu_coherency flags.
*
* Note that this is just what the coherency protocols supported by the
* GPU, but the actual coherency in place depends on the SoC
* integration and is reflected by
* drm_panthor_gpu_info::selected_coherency.
*/
/** @coherency_features: Coherency features. */
__u32 coherency_features;
/** @texture_features: Texture features. */
@ -349,12 +310,8 @@ struct drm_panthor_gpu_info {
/** @as_present: Bitmask encoding the number of address-space exposed by the MMU. */
__u32 as_present;
/**
* @select_coherency: Coherency selected for this device.
*
* One of drm_panthor_gpu_coherency.
*/
__u32 selected_coherency;
/** @pad0: MBZ. */
__u32 pad0;
/** @shader_present: Bitmask encoding the shader cores exposed by the GPU. */
__u64 shader_present;
@ -370,9 +327,6 @@ struct drm_panthor_gpu_info {
/** @pad: MBZ. */
__u32 pad;
/** @gpu_features: Bitmask describing supported GPU-wide features */
__u64 gpu_features;
};
/**
@ -681,15 +635,6 @@ struct drm_panthor_vm_get_state {
enum drm_panthor_bo_flags {
/** @DRM_PANTHOR_BO_NO_MMAP: The buffer object will never be CPU-mapped in userspace. */
DRM_PANTHOR_BO_NO_MMAP = (1 << 0),
/**
* @DRM_PANTHOR_BO_WB_MMAP: Force "Write-Back Cacheable" CPU mapping.
*
* CPU map the buffer object in userspace by forcing the "Write-Back
* Cacheable" cacheability attribute. The mapping otherwise uses the
* "Non-Cacheable" attribute if the GPU is not IO coherent.
*/
DRM_PANTHOR_BO_WB_MMAP = (1 << 1),
};
/**
@ -1092,101 +1037,6 @@ struct drm_panthor_set_user_mmio_offset {
__u64 offset;
};
/**
* enum drm_panthor_bo_sync_op_type - BO sync type
*/
enum drm_panthor_bo_sync_op_type {
/** @DRM_PANTHOR_BO_SYNC_CPU_CACHE_FLUSH: Flush CPU caches. */
DRM_PANTHOR_BO_SYNC_CPU_CACHE_FLUSH = 0,
/** @DRM_PANTHOR_BO_SYNC_CPU_CACHE_FLUSH_AND_INVALIDATE: Flush and invalidate CPU caches. */
DRM_PANTHOR_BO_SYNC_CPU_CACHE_FLUSH_AND_INVALIDATE = 1,
};
/**
* struct drm_panthor_bo_sync_op - BO map sync op
*/
struct drm_panthor_bo_sync_op {
/** @handle: Handle of the buffer object to sync. */
__u32 handle;
/** @type: Type of operation. */
__u32 type;
/**
* @offset: Offset into the BO at which the sync range starts.
*
* This will be rounded down to the nearest cache line as needed.
*/
__u64 offset;
/**
* @size: Size of the range to sync
*
* @size + @offset will be rounded up to the nearest cache line as
* needed.
*/
__u64 size;
};
/**
* struct drm_panthor_bo_sync - BO map sync request
*/
struct drm_panthor_bo_sync {
/**
* @ops: Array of struct drm_panthor_bo_sync_op sync operations.
*/
struct drm_panthor_obj_array ops;
};
/**
* enum drm_panthor_bo_extra_flags - Set of flags returned on a BO_QUERY_INFO request
*
* Those are flags reflecting BO properties that are not directly coming from the flags
* passed are creation time, or information on BOs that were imported from other drivers.
*/
enum drm_panthor_bo_extra_flags {
/**
* @DRM_PANTHOR_BO_IS_IMPORTED: BO has been imported from an external driver.
*
* Note that imported dma-buf handles are not flagged as imported if they
* where exported by panthor. Only buffers that are coming from other drivers
* (dma heaps, other GPUs, display controllers, V4L, ...).
*
* It's also important to note that all imported BOs are mapped cached and can't
* be considered IO-coherent even if the GPU is. This means they require explicit
* syncs that must go through the DRM_PANTHOR_BO_SYNC ioctl (userland cache
* maintenance is not allowed in that case, because extra operations might be
* needed to make changes visible to the CPU/device, like buffer migration when the
* exporter is a GPU with its own VRAM).
*/
DRM_PANTHOR_BO_IS_IMPORTED = (1 << 0),
};
/**
* struct drm_panthor_bo_query_info - Query BO info
*/
struct drm_panthor_bo_query_info {
/** @handle: Handle of the buffer object to query flags on. */
__u32 handle;
/**
* @extra_flags: Combination of enum drm_panthor_bo_extra_flags flags.
*/
__u32 extra_flags;
/**
* @create_flags: Flags passed at creation time.
*
* Combination of enum drm_panthor_bo_flags flags.
* Will be zero if the buffer comes from a different driver.
*/
__u32 create_flags;
/** @pad: Will be zero on return. */
__u32 pad;
};
/**
* DRM_IOCTL_PANTHOR() - Build a Panthor IOCTL number
* @__access: Access type. Must be R, W or RW.
@ -1233,10 +1083,6 @@ enum {
DRM_IOCTL_PANTHOR(WR, BO_SET_LABEL, bo_set_label),
DRM_IOCTL_PANTHOR_SET_USER_MMIO_OFFSET =
DRM_IOCTL_PANTHOR(WR, SET_USER_MMIO_OFFSET, set_user_mmio_offset),
DRM_IOCTL_PANTHOR_BO_SYNC =
DRM_IOCTL_PANTHOR(WR, BO_SYNC, bo_sync),
DRM_IOCTL_PANTHOR_BO_QUERY_INFO =
DRM_IOCTL_PANTHOR(WR, BO_QUERY_INFO, bo_query_info),
};
#if defined(__cplusplus)

View file

@ -303,10 +303,3 @@ CHIPSET(0xb0b0, ptl, "PTL", "Intel(R) Graphics")
CHIPSET(0xfd80, wcl, "WCL", "Intel(R) Graphics")
CHIPSET(0xfd81, wcl, "WCL", "Intel(R) Graphics")
CHIPSET(0xd740, nvl_s_hx_ul, "NVL-S", "Intel(R) Graphics", FORCE_PROBE)
CHIPSET(0xd741, nvl_u_h, "NVL-U", "Intel(R) Graphics", FORCE_PROBE)
CHIPSET(0xd742, nvl_u_h, "NVL-H", "Intel(R) Graphics", FORCE_PROBE)
CHIPSET(0xd743, nvl_s_hx_ul, "NVL-HX", "Intel(R) Graphics", FORCE_PROBE)
CHIPSET(0xd744, nvl_s_hx_ul, "NVL-UL", "Intel(R) Graphics", FORCE_PROBE)
CHIPSET(0xd745, nvl_s_hx_ul, "NVL-HX", "Intel(R) Graphics", FORCE_PROBE)

View file

@ -144,7 +144,7 @@ typedef enum StdVideoAV1ColorPrimaries {
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
// STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a legacy alias
// STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a deprecated alias
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
} StdVideoAV1ColorPrimaries;

File diff suppressed because it is too large Load diff

View file

@ -19,75 +19,6 @@ extern "C" {
// VK_OHOS_external_memory is a preprocessor guard. Do not pass it to API calls.
#define VK_OHOS_external_memory 1
struct OH_NativeBuffer;
#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1
#define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory"
typedef struct VkNativeBufferUsageOHOS {
VkStructureType sType;
void* pNext;
uint64_t OHOSNativeBufferUsage;
} VkNativeBufferUsageOHOS;
typedef struct VkNativeBufferPropertiesOHOS {
VkStructureType sType;
void* pNext;
VkDeviceSize allocationSize;
uint32_t memoryTypeBits;
} VkNativeBufferPropertiesOHOS;
typedef struct VkNativeBufferFormatPropertiesOHOS {
VkStructureType sType;
void* pNext;
VkFormat format;
uint64_t externalFormat;
VkFormatFeatureFlags formatFeatures;
VkComponentMapping samplerYcbcrConversionComponents;
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
VkSamplerYcbcrRange suggestedYcbcrRange;
VkChromaLocation suggestedXChromaOffset;
VkChromaLocation suggestedYChromaOffset;
} VkNativeBufferFormatPropertiesOHOS;
typedef struct VkImportNativeBufferInfoOHOS {
VkStructureType sType;
const void* pNext;
struct OH_NativeBuffer* buffer;
} VkImportNativeBufferInfoOHOS;
typedef struct VkMemoryGetNativeBufferInfoOHOS {
VkStructureType sType;
const void* pNext;
VkDeviceMemory memory;
} VkMemoryGetNativeBufferInfoOHOS;
typedef struct VkExternalFormatOHOS {
VkStructureType sType;
void* pNext;
uint64_t externalFormat;
} VkExternalFormatOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkGetNativeBufferPropertiesOHOS)(VkDevice device, const struct OH_NativeBuffer* buffer, VkNativeBufferPropertiesOHOS* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryNativeBufferOHOS)(VkDevice device, const VkMemoryGetNativeBufferInfoOHOS* pInfo, struct OH_NativeBuffer** pBuffer);
#ifndef VK_NO_PROTOTYPES
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
VkDevice device,
const struct OH_NativeBuffer* buffer,
VkNativeBufferPropertiesOHOS* pProperties);
#endif
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
VkDevice device,
const VkMemoryGetNativeBufferInfoOHOS* pInfo,
struct OH_NativeBuffer** pBuffer);
#endif
#endif
// VK_OHOS_surface is a preprocessor guard. Do not pass it to API calls.
#define VK_OHOS_surface 1
typedef struct NativeWindow OHNativeWindow;
@ -113,68 +44,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSurfaceOHOS(
#endif
#endif
// VK_OHOS_native_buffer is a preprocessor guard. Do not pass it to API calls.
#define VK_OHOS_native_buffer 1
struct OHBufferHandle;
#define VK_OHOS_NATIVE_BUFFER_SPEC_VERSION 1
#define VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME "VK_OHOS_native_buffer"
typedef enum VkSwapchainImageUsageFlagBitsOHOS {
VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OHOS = 0x00000001,
VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_OHOS = 0x7FFFFFFF
} VkSwapchainImageUsageFlagBitsOHOS;
typedef VkFlags VkSwapchainImageUsageFlagsOHOS;
typedef struct VkNativeBufferOHOS {
VkStructureType sType;
const void* pNext;
struct OHBufferHandle* handle;
} VkNativeBufferOHOS;
typedef struct VkSwapchainImageCreateInfoOHOS {
VkStructureType sType;
const void* pNext;
VkSwapchainImageUsageFlagsOHOS usage;
} VkSwapchainImageCreateInfoOHOS;
typedef struct VkPhysicalDevicePresentationPropertiesOHOS {
VkStructureType sType;
void* pNext;
VkBool32 sharedImage;
} VkPhysicalDevicePresentationPropertiesOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageOHOS)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, uint64_t* grallocUsage);
typedef VkResult (VKAPI_PTR *PFN_vkAcquireImageOHOS)(VkDevice device, VkImage image, int32_t nativeFenceFd, VkSemaphore semaphore, VkFence fence);
typedef VkResult (VKAPI_PTR *PFN_vkQueueSignalReleaseImageOHOS)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int32_t* pNativeFenceFd);
#ifndef VK_NO_PROTOTYPES
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsageOHOS(
VkDevice device,
VkFormat format,
VkImageUsageFlags imageUsage,
uint64_t* grallocUsage);
#endif
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireImageOHOS(
VkDevice device,
VkImage image,
int32_t nativeFenceFd,
VkSemaphore semaphore,
VkFence fence);
#endif
#ifndef VK_ONLY_EXPORTED_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkQueueSignalReleaseImageOHOS(
VkQueue queue,
uint32_t waitSemaphoreCount,
const VkSemaphore* pWaitSemaphores,
VkImage image,
int32_t* pNativeFenceFd);
#endif
#endif
#ifdef __cplusplus
}
#endif

View file

@ -42,7 +42,7 @@ if get_option('layout') != 'mirror'
endif
with_llvm = get_option('llvm')
amd_with_llvm = with_llvm.allowed() and get_option('amd-use-llvm')
amd_with_llvm = get_option('amd-use-llvm')
with_mesa_debug = get_option('buildtype') == 'debug'
@ -156,13 +156,7 @@ if gallium_drivers.contains('auto')
'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'llvmpipe', 'softpipe',
'iris', 'crocus', 'i915', 'zink'
]
elif ['aarch64'].contains(host_machine.cpu_family())
gallium_drivers = [
'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', 'svga',
'tegra', 'virgl', 'lima', 'panfrost', 'llvmpipe', 'softpipe', 'iris',
'zink', 'asahi'
]
elif ['arm'].contains(host_machine.cpu_family())
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
gallium_drivers = [
'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', 'svga',
'tegra', 'virgl', 'lima', 'panfrost', 'llvmpipe', 'softpipe', 'iris',
@ -224,11 +218,10 @@ with_gallium_ethosu = gallium_drivers.contains('ethosu')
foreach gallium_driver : gallium_drivers
pre_args += '-DHAVE_@0@'.format(gallium_driver.to_upper())
endforeach
draw_with_llvm = with_llvm.allowed() and get_option('draw-use-llvm')
with_llvm = with_llvm \
.enable_if(with_gallium_i915, error_message : 'i915 Gallium driver requires LLVM for vertex shaders') \
.enable_if(with_gallium_llvmpipe, error_message : 'LLVMPipe Gallium driver requires LLVM') \
.enable_if(with_gallium_r300 and draw_with_llvm, error_message : 'R300 Gallium driver requires LLVM for vertex shaders on IGP parts') \
.enable_if(with_gallium_r300, error_message : 'R300 Gallium driver requires LLVM for vertex shaders') \
.enable_if(with_gallium_r600 and amd_with_llvm, error_message : 'R600 Gallium driver configured to require LLVM') \
.enable_if(with_gallium_radeonsi and amd_with_llvm, error_message : 'RadeonSI Gallium driver configured to require LLVM')
@ -256,9 +249,7 @@ if _vulkan_drivers.contains('auto')
if system_has_kms_drm
if host_machine.cpu_family().startswith('x86')
_vulkan_drivers = ['amd', 'intel', 'intel_hasvk', 'nouveau', 'swrast']
elif ['aarch64'].contains(host_machine.cpu_family())
_vulkan_drivers = ['swrast', 'intel', 'panfrost', 'freedreno', 'asahi']
elif ['arm'].contains(host_machine.cpu_family())
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
_vulkan_drivers = ['swrast', 'intel', 'panfrost', 'freedreno']
elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family())
_vulkan_drivers = ['amd', 'swrast']
@ -280,7 +271,7 @@ elif _vulkan_drivers.contains('all')
_vulkan_drivers = ['amd', 'intel', 'intel_hasvk', 'swrast',
'freedreno', 'panfrost', 'virtio', 'broadcom',
'imagination', 'microsoft-experimental',
'nouveau', 'asahi', 'gfxstream', 'kosmickrisp']
'nouveau', 'asahi', 'gfxstream']
endif
with_intel_vk = _vulkan_drivers.contains('intel')
@ -297,7 +288,6 @@ with_microsoft_vk = _vulkan_drivers.contains('microsoft-experimental')
with_nouveau_vk = _vulkan_drivers.contains('nouveau')
with_asahi_vk = _vulkan_drivers.contains('asahi')
with_gfxstream_vk = _vulkan_drivers.contains('gfxstream')
with_kosmickrisp_vk = _vulkan_drivers.contains('kosmickrisp')
with_any_vk = _vulkan_drivers.length() != 0
with_llvm = with_llvm \
@ -376,15 +366,9 @@ endif
if with_aco_tests and not with_amd_vk
error('ACO tests require Radv')
endif
if with_aco_tests and not with_tools.contains('drm-shim')
error('ACO tests require AMDGPU drm-shim')
endif
if with_radv_tests and not with_amd_vk
error('RADV tests require RADV')
endif
if with_radv_tests and not with_tools.contains('drm-shim')
error('RADV tests require AMDGPU drm-shim')
endif
with_microsoft_clc = get_option('microsoft-clc').enabled()
with_spirv_to_dxil = get_option('spirv-to-dxil')
@ -690,26 +674,17 @@ _va_drivers = [
with_gallium_virgl,
]
allow_fallback_for_libva = get_option('allow-fallback-for').contains('libva')
fallback_libva_options = []
_va = get_option('gallium-va') \
.require(_va_drivers.contains(true),
error_message : 'VA state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau, d3d12 (with option gallium-d3d12-video), virgl.')
_dep_va_name = host_machine.system() == 'windows' ? 'libva-win32' : 'libva'
dep_va = dependency(
_dep_va_name, version : '>= 1.8.0',
required : _va,
allow_fallback: allow_fallback_for_libva,
default_options: fallback_libva_options
)
dep_va = dependency(_dep_va_name, version : '>= 1.8.0', required : _va)
if dep_va.found()
dep_va_headers = dep_va.partial_dependency(compile_args : true, includes : true)
dep_va_headers = dep_va.partial_dependency(compile_args : true)
if cc.has_header_symbol('va/va.h', 'VASurfaceAttribDRMFormatModifiers',
dependencies: dep_va_headers)
pre_args += '-DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS'
endif
libva_version = cc.get_define('VA_VERSION', prefix: '#include "va/va_version.h"',
dependencies: dep_va_headers).split('.')
endif
with_gallium_va = dep_va.found()
@ -788,7 +763,9 @@ if with_gallium_rusticl or with_nouveau_vk or with_tools.contains('etnaviv') or
rustc = meson.get_compiler('rust')
rust = import('rust')
# Keep this in sync with the `msrv` in clippy.toml
# Keep this in sync with the MINIMUM_SUPPORTED_RUST_VERSION in
# .gitlab-ci/container/build-rust.sh and the `rustup default` line in
# .gitlab-ci/meson/build.sh
if rustc.version().version_compare('< 1.82')
error('Mesa requires Rust 1.82.0 or newer')
endif
@ -820,19 +797,6 @@ if with_gallium_rusticl or with_nouveau_vk or with_tools.contains('etnaviv') or
bindgen_output_args += ['--raw-line', '#![allow(unnecessary_transmutes)]']
endif
rust_global_args = [
# We want to be able to write `else { if {} }` when it makes more sense than
# collapsing it into `else if {}`.
'-Aclippy::collapsible_else_if',
# "Needless lifetimes" might be needless but they're harmless and we
# prefer being explicit, so allow them.
'-Aclippy::needless_lifetimes',
# Being explicit has value, allow it.
'-Aclippy::question_mark',
]
rust_2024_lint_args = [
'-Dboxed_slice_into_iter',
'-Ddeprecated_safe_2024',
@ -865,7 +829,6 @@ with_driver_using_cl = [
with_gallium_asahi, with_asahi_vk, with_tools.contains('asahi'),
with_gallium_panfrost, with_panfrost_vk,
with_nouveau_vk, with_imagination_vk,
with_kosmickrisp_vk,
].contains(true)
if get_option('mesa-clc') == 'system'
@ -882,10 +845,6 @@ endif
with_llvm = with_llvm \
.enable_if(with_clc, error_message : 'CLC requires LLVM')
with_poly = [
with_gallium_asahi, with_asahi_vk, with_tools.contains('asahi'),
].contains(true)
dep_clc = null_dep
if with_clc
dep_clc = dependency('libclc')
@ -1180,7 +1139,6 @@ if cc.get_argument_syntax() == 'msvc'
'/we4024', # Error when passing different type of parameter
'/we4189', # 'identifier' : local variable is initialized but not referenced
'/Zc:__cplusplus', #Set __cplusplus macro to match the /std:c++<version> on the command line
'/Zc:enumTypes', # Enables C++ conforming enum underlying type and enumerator type deduction
'/Zc:preprocessor', # Use the standards-conforming preprocessor
]
c_args += cc.get_supported_arguments(_trial)
@ -1269,12 +1227,7 @@ else
# Check for C and C++ arguments for MSVC compatibility. These are only used
# in parts of the mesa code base that need to compile with MSVC, mainly
# common code
_trial_msvc = [
'-Werror=pointer-arith',
'-Werror=vla',
'-Werror=gnu-empty-initializer',
'-Wgnu-pointer-arith',
]
_trial_msvc = ['-Werror=pointer-arith', '-Werror=vla', '-Werror=gnu-empty-initializer']
c_msvc_compat_args += cc.get_supported_arguments(_trial_msvc)
cpp_msvc_compat_args += cpp.get_supported_arguments(_trial_msvc)
endif
@ -1511,10 +1464,7 @@ endif
if cc.has_header_symbol('errno.h', 'program_invocation_name',
args : '-D_GNU_SOURCE')
pre_args += '-DHAVE_PROGRAM_INVOCATION_NAME'
elif with_tools.contains('intel') and not with_platform_android
# Intel tools is supported on Android where the program name is from
# `getprogname()` without `program_invocation_name` in glibc.
# See `src/util/u_process.c` for more details.
elif with_tools.contains('intel')
error('Intel tools require the program_invocation_name variable')
endif
@ -1661,7 +1611,7 @@ if dep_thread.found()
endif
with_expat = get_option('expat') \
.disable_auto_if(with_platform_windows) \
.disable_auto_if(with_platform_android or with_platform_windows) \
.enable_if(with_intel_tools, error_message : 'Intel tools require expat')
if host_machine.system() == 'darwin'
@ -1794,6 +1744,7 @@ if with_clc
# but we don't know what LLVM version we are using yet
llvm_optional_modules += ['all-targets', 'windowsdriver', 'frontendhlsl', 'frontenddriver']
endif
draw_with_llvm = get_option('draw-use-llvm')
if draw_with_llvm
llvm_modules += 'native'
# lto is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet
@ -1837,12 +1788,8 @@ if dep_llvm.found()
error('Lavapipe and llvmpipe require LLVM draw support.')
endif
if with_gallium_i915 and not draw_with_llvm
error('i915 requires LLVM draw support for vertex shaders.')
endif
if with_gallium_r300 and not draw_with_llvm and host_machine.cpu_family() == 'x86'
error('r300 requires LLVM draw support for vertex shaders.')
if (with_gallium_i915 or with_gallium_r300) and not draw_with_llvm
error('i915 and R300 require LLVM draw support for vertex shaders.')
endif
if host_machine.system() != 'windows'
@ -1948,7 +1895,6 @@ dep_lua = dependency('lua54', 'lua5.4', 'lua-5.4',
'lua53', 'lua5.3', 'lua-5.3',
'lua', required: false,
allow_fallback: with_tools.contains('freedreno'),
disabler : true,
version: '>=5.3')
# Be explicit about only using this lib on Windows, to avoid picking
@ -2245,7 +2191,7 @@ endif
with_sysprof = get_option('sysprof')
if with_sysprof
dep_sysprof = dependency('sysprof-capture-4', version: '>= 49.0')
dep_sysprof = dependency('sysprof-capture-4', version: '>= 3.38.0')
pre_args += '-DHAVE_SYSPROF'
endif
@ -2330,13 +2276,6 @@ else
vulkan_icd_lib_path = get_option('prefix') / get_option('libdir')
endif
vulkan_manifest_per_architecture = get_option('vulkan-manifest-per-architecture')
if vulkan_manifest_per_architecture
vulkan_manifest_suffix = '@0@.json'.format(host_machine.cpu())
else
vulkan_manifest_suffix = 'json'
endif
subdir('include')
subdir('bin')

View file

@ -209,7 +209,7 @@ option(
choices : ['auto', 'amd', 'broadcom', 'freedreno', 'intel', 'intel_hasvk',
'panfrost', 'swrast', 'virtio', 'imagination',
'microsoft-experimental', 'nouveau', 'asahi', 'gfxstream',
'kosmickrisp', 'all'],
'all'],
description : 'List of vulkan drivers to build. If this is set to auto ' +
'all drivers applicable to the target OS/architecture ' +
'will be built'
@ -286,19 +286,6 @@ option(
'Default: $datadir/vulkan/icd.d'
)
option(
'vulkan-manifest-per-architecture',
type : 'boolean',
value : true,
description : 'If true, Vulkan ICDs have a separate JSON manifest per ' +
'architecture, for example lvp_icd.x86_64.json. ' +
'(Recommended for non-default ${prefix}.) ' +
'If false, all architectures share a single JSON manifest, ' +
'for example lvp_icd.json, referencing the library by its ' +
'basename. ' +
'(Recommended for Unix OS distros installing into /usr.)'
)
option(
'moltenvk-dir',
type : 'string',
@ -846,7 +833,7 @@ option(
type : 'array',
value : ['perfetto'],
choices : [
'libdrm', 'libva', 'perfetto',
'libdrm', 'perfetto',
],
description : 'Allows the fallback mechanism if the dependency is not available on the system, or too old.'
)

View file

@ -103,8 +103,6 @@ ForEachMacros:
- foreach_list_typed_safe
- foreach_two_lists
- U_SPARSE_BITSET_FOREACH_SET
# nir
- nir_foreach_function_temp_variable
- nir_foreach_function_temp_variable_safe
@ -239,9 +237,7 @@ ForEachMacros:
- agx_foreach_reg_dest
- agx_foreach_successor
- foreach_next_use
# poly
- poly_foreach_xfb
- libagx_foreach_xfb
# radv
- PHASE

View file

@ -27,12 +27,12 @@
#define FAMILY_NV 0x8F //# 143 / Navi: 10
#define FAMILY_VGH 0x90 //# 144 / Van Gogh
#define FAMILY_NV3 0x91 //# 145 / Navi: 3x
#define FAMILY_STX 0x96
#define FAMILY_GFX1150 0x96
#define FAMILY_PHX 0x94 //# 148 / Phoenix
#define FAMILY_RMB 0x92 //# 146 / Rembrandt
#define FAMILY_RPL 0x95 //# 149 / Raphael
#define FAMILY_MDN 0x97 //# 151 / Mendocino
#define FAMILY_NV4 0x98
#define FAMILY_GFX12 0x98
// AMDGPU_FAMILY_IS(familyId, familyName)
#define FAMILY_IS(f, fn) (f == FAMILY_##fn)
@ -101,9 +101,9 @@
#define AMDGPU_NAVI31_RANGE 0x01, 0x10 //# 01 <= x < 16
#define AMDGPU_NAVI32_RANGE 0x20, 0xFF //# 32 <= x < 255
#define AMDGPU_NAVI33_RANGE 0x10, 0x20 //# 16 <= x < 32
#define AMDGPU_STRIX1_RANGE 0x01, 0x40 //# 1 <= x < 64
#define AMDGPU_STRIX_HALO_RANGE 0xC0, 0xFF //# 192 <= x < 255
#define AMDGPU_KRACKAN1_RANGE 0x40, 0x50 //# 64 <= x < 80
#define AMDGPU_GFX1150_RANGE 0x01, 0x40 //# 1 <= x < 64
#define AMDGPU_GFX1151_RANGE 0xC0, 0xFF //# 192 <= x < 255
#define AMDGPU_GFX1152_RANGE 0x40, 0x50 //# 64 <= x < 80
#define AMDGPU_GFX1153_RANGE 0x50, 0xC0 //# 80 <= x < 192
#define AMDGPU_PHOENIX1_RANGE 0x01, 0x80 //# 1 <= x < 128
#define AMDGPU_PHOENIX2_RANGE 0x80, 0xC0 //# 128 <= x < 192
@ -181,9 +181,9 @@
#define ASICREV_IS_NAVI31_P(r) ASICREV_IS(r, NAVI31)
#define ASICREV_IS_NAVI32_P(r) ASICREV_IS(r, NAVI32)
#define ASICREV_IS_NAVI33_P(r) ASICREV_IS(r, NAVI33)
#define ASICREV_IS_STRIX1(r) ASICREV_IS(r, STRIX1)
#define ASICREV_IS_STRIX_HALO(r) ASICREV_IS(r, STRIX_HALO)
#define ASICREV_IS_KRACKAN1(r) ASICREV_IS(r, KRACKAN1)
#define ASICREV_IS_GFX1150(r) ASICREV_IS(r, GFX1150)
#define ASICREV_IS_GFX1151(r) ASICREV_IS(r, GFX1151)
#define ASICREV_IS_GFX1152(r) ASICREV_IS(r, GFX1152)
#define ASICREV_IS_GFX1153(r) ASICREV_IS(r, GFX1153)
#define ASICREV_IS_PHOENIX(r) ASICREV_IS(r, PHOENIX)
#define ASICREV_IS_PHOENIX2(r) ASICREV_IS(r, PHOENIX2)

View file

@ -220,11 +220,11 @@ ADDR_E_RETURNCODE Lib::Create(
pLib = Gfx10HwlInit(&client);
break;
case FAMILY_NV3:
case FAMILY_STX:
case FAMILY_GFX1150:
case FAMILY_PHX:
pLib = Gfx11HwlInit(&client);
break;
case FAMILY_NV4:
case FAMILY_GFX12:
pLib = Gfx12HwlInit(&client);
break;
default:

View file

@ -750,9 +750,9 @@ ChipFamily Gfx11Lib::HwlConvertChipFamily(
}
break;
case FAMILY_STX:
case FAMILY_GFX1150:
{
m_settings.isStrix = 1;
m_settings.isGfx1150 = 1;
}
break;
case FAMILY_PHX:
@ -1743,7 +1743,7 @@ UINT_32 Gfx11Lib::GetValidDisplaySwizzleModes(
if (false
|| (m_settings.isPhoenix)
|| (m_settings.isStrix)
|| (m_settings.isGfx1150)
)
{
// Not all GPUs support displaying with 256kB swizzle modes.

View file

@ -34,7 +34,7 @@ struct Gfx11ChipSettings
{
struct
{
UINT_32 isStrix : 1;
UINT_32 isGfx1150 : 1;
UINT_32 isPhoenix : 1;
UINT_32 reserved1 : 30;

View file

@ -43,8 +43,12 @@ multisample-dEQP-GLES31.functional.blend_equation_advanced.basic.multiply,Fail
multisample-dEQP-GLES31.functional.blend_equation_advanced.basic.overlay,Fail
multisample-dEQP-GLES31.functional.blend_equation_advanced.basic.screen,Fail
# new with ANGLE 2024-10-17
KHR-GLES31.core.texture_buffer.texture_buffer_max_size,Fail
# New failure with ANGLE 2025-02-12
KHR-GLES3.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit,Crash
# New failures with ES CTS 3.2.12.0
KHR-GLES3.framebuffer_blit.scissor_blit,Crash
KHR-GLES3.framebuffer_blit.multisampled_to_singlesampled_blit_depth_config_test,Crash

View file

@ -347,16 +347,14 @@
.ci-tron-test-amdgpu:
variables:
CI_TRON_PATTERN__JOB_WARN__REGEX: 'ring .* timeout'
CI_TRON_KERNEL__URL: "https://fs.mupuf.org/radv/linux-6.17.3_w_buddy_fixes/linux-x86_64"
CI_TRON_INITRAMFS__DEPMOD__URL: "https://fs.mupuf.org/radv/linux-6.17.3_w_buddy_fixes/linux-x86_64.depmod.cpio.xz"
CI_TRON_INITRAMFS__GPU__URL: "https://fs.mupuf.org/radv/linux-6.17.3_w_buddy_fixes/linux-x86_64.gpu_amdgpu.cpio"
CI_TRON_INITRAMFS__DEPMOD__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.depmod.cpio.xz"
CI_TRON_INITRAMFS__GPU__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.gpu.cpio"
CI_TRON_INITRAMFS__GPU__FORMAT__0__ARCHIVE__KEEP__0__PATH: "(lib/(modules|firmware/amdgpu)/.*)"
CI_TRON_KERNEL_CMDLINE__LOAD_MODULES: 'modules_load=amdgpu'
tags:
- farm:$RUNNER_FARM_LOCATION
- $CI_TRON_DUT_SETUP_TAGS
- amdgpu:$INTEGRATED_OR_DISCRETE
- ci-tron:priority:$CI_TRON_JOB_PRIORITY
.ci-tron-test-radv:
extends: .ci-tron-test-amdgpu
@ -419,6 +417,20 @@
CI_TRON_KERNEL_CMDLINE__TSC_WORKAROUND: 'tsc=unstable'
GPU_VERSION: radv-polaris10
# FIXME: B2C's 6.16 kernel regressed and leads to the following hang with a 10% probability. Let's keep using the
# last known working kernel until the bisection is over.
# [ 32.648386] amdgpu 0000:2d:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring kiq_0.2.1.0 test failed (-110)
# [ 32.648641] [drm:gfx_v8_0_hw_fini [amdgpu]] *ERROR* KCQ disable failed
# [ 32.900818] amdgpu: cp is busy, skip halt cp
# [ 33.152738] amdgpu: rlc is busy, skip halt rlc
# [ 33.980604] amdgpu 0000:2d:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring gfx test failed (-110)
# [ 33.980854] amdgpu 0000:2d:00.0: amdgpu: resume of IP block <gfx_v8_0> failed -110
# [ 33.980860] amdgpu 0000:2d:00.0: amdgpu: GPU Recovery Failed: -110
CI_TRON_KERNEL__URL: "https://fs.mupuf.org/radv/linux-6.15.9/linux-x86_64"
CI_TRON_INITRAMFS__DEPMOD__URL: "https://fs.mupuf.org/radv/linux-6.15.9/linux-x86_64.depmod.cpio.xz"
CI_TRON_INITRAMFS__GPU__URL: "https://fs.mupuf.org/radv/linux-6.15.9/linux-x86_64.gpu.cpio"
.polaris10-test-valve-mupuf:
extends: .polaris10-test-valve
variables:
@ -477,6 +489,11 @@
INTEGRATED_OR_DISCRETE: discrete
GPU_VERSION: radv-navi21
FDO_CI_CONCURRENT: 32
# FIXME: drop everything below to use the same kernel as the rest of the amdgpu jobs
CI_TRON_KERNEL__URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci
CI_TRON_INITRAMFS__DEPMOD__URL: null
CI_TRON_INITRAMFS__GPU__URL: null
CI_TRON_INITRAMFS__GPU__FORMAT__0__ARCHIVE__KEEP__0__PATH: null
.vangogh-test-valve:
variables:
@ -485,6 +502,11 @@
INTEGRATED_OR_DISCRETE: integrated
GPU_VERSION: radv-vangogh
FDO_CI_CONCURRENT: 8
tags:
- farm:$RUNNER_FARM_LOCATION
- amdgpu:$INTEGRATED_OR_DISCRETE
- $CI_TRON_DUT_SETUP_TAGS
- $CI_TRON_JOB_PRIORITY_TAG
.raphael-test-valve:
variables:
@ -501,6 +523,12 @@
INTEGRATED_OR_DISCRETE: discrete
GPU_VERSION: radv-navi31
FDO_CI_CONCURRENT: 32
# FIXME: drop everything below to use the same kernel as the rest of the amdgpu jobs
CI_TRON_KERNEL__URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci
CI_TRON_INITRAMFS__DEPMOD__URL: null
CI_TRON_INITRAMFS__GPU__URL: null
CI_TRON_INITRAMFS__GPU__FORMAT__0__ARCHIVE__KEEP__0__PATH: null
.gfx1201-test-valve:
variables:
@ -508,4 +536,4 @@
CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:NAVI48
INTEGRATED_OR_DISCRETE: discrete
GPU_VERSION: radv-gfx1201
FDO_CI_CONCURRENT: 32
FDO_CI_CONCURRENT: 16 # FIXME: Replace with 32 when the zerovram regression is addressed

View file

@ -193,6 +193,7 @@ radv-tahiti-vkcts:
timeout: 1h
variables:
CI_TRON_TIMEOUT__OVERALL__MINUTES: 50
RADV_PERFTEST: video_decode,video_encode
radv-hawaii-vkcts:
extends:
@ -202,6 +203,7 @@ radv-hawaii-vkcts:
timeout: 1h
variables:
CI_TRON_TIMEOUT__OVERALL__MINUTES: 50
RADV_PERFTEST: video_decode,video_encode
radv-polaris10-vkcts:
extends:
@ -310,7 +312,8 @@ radv-navi31-vkcts:
- .radv-valve-rules
variables:
RADV_DEBUG: nomeshshader # Disable mesh shaders until task shaders stop hanging
RADV_PERFTEST: transfer_queue,hic
# TODO: Remove video_encode,video_decode with next kernel.
RADV_PERFTEST: transfer_queue,video_decode,video_encode,hic
CI_TRON_TIMEOUT__OVERALL__MINUTES: 20
@ -359,8 +362,8 @@ radv-fossils:
# RDNA3 (GFX11)
- AMDGPU_GPU_ID="NAVI31"
./install/fossilize-runner.sh
# RDNA3.5 (STRIX1)
- AMDGPU_GPU_ID="STRIX1"
# RDNA3.5 (GFX1150)
- AMDGPU_GPU_ID="GFX1150"
./install/fossilize-runner.sh
############### vkd3d-proton

View file

@ -1,4 +1,4 @@
KHR-GL46.shader_image_load_store.basic-allTargets-atomic,Fail
KHR-GL46.es_31_compatibility.shader_image_load_store.basic-allFormats-store-fs,Fail
KHR-GL46.sparse_texture2_tests.StandardPageSizesTestCase_texture_1d_array_r11f_g11f_b10f,Fail
KHR-GL46.sparse_texture2_tests.StandardPageSizesTestCase_texture_1d_array_r16,Fail
KHR-GL46.sparse_texture2_tests.StandardPageSizesTestCase_texture_1d_array_r16f,Fail

View file

@ -3,7 +3,3 @@ dEQP-GLES31.functional.geometry_shading.basic.output_256
KHR-GLES31.core.tessellation_shader.vertex.vertex_ordering
KHR-GL46.tessellation_shader.vertex.vertex_ordering
KHR-Single-GL46.arrays_of_arrays_gl.AtomicUsage
# The mesh shader tests trigger GPU resets on amdgpu, making the system
# unstable, so they have to be be skipped for now.
KHR-Single-GL46.meshShader.*

Some files were not shown because too many files have changed in this diff Show more