Compare commits

..

306 commits

Author SHA1 Message Date
Dylan Baker
5005a50879 VERSION: bump for 25.3.1
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-12-03 22:02:48 -08:00
Dylan Baker
c030e5312e docs: add release notes for 25.3.1 2025-12-03 22:02:09 -08:00
Yiwei Zhang
68d31c28d4 venus: fix racy semaphore feedback counter update
Previously, we update the sfb dst slot upon vn_SignalSemaphore so that
vn_GetSemaphoreCounterValue can poll just the feedback slot itself.
However, that can race with pending sfb cmds that are going to update
the slot value, ending up with stuck sync progression.

This change fixes it by disallowing vn_SignalSemaphore to touch the sfb
dst slot. To ensure counter query being monotonic, vn_GetSemaphoreCounterValue
now takes the greater of signaled counter and the sfb counter read.

Test with dEQP-VK.synchronization* group:
- w/o this: stuck shows up within 2 min with 8 parallel deqp runs
- with this: no stuck for multiple full runs of the same

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14304
Fixes: 5c7e60362c ("venus: enable timeline semaphore feedback")
(cherry picked from commit 829bd406c0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 15:02:48 -08:00
Sushma Venkatesh Reddy
e6a8e1321b drirc: Add anv_assume_full_subgroups for Detroit: Become Human
Add workaround to assume full 32-thread subgroups. This fixes rendering
corruption when running the Detriot: Become Human game using anv driver.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14120

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 36d7cd0514)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 22:24:03 +00:00
Dylan Baker
9685a1fbf0 docs/relnotes/25.3.0: Escape some rst language constructs
That are from the gitlog, which we don't currently escape.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 12:31:36 -08:00
Icenowy Zheng
0cfce3ffda pvr: enable samplerMirrorClampToEdge feature
This is forgotten when advertising the corresponding extension, which
leads to inconsistency, thus fail of
dEQP-VK.api.info.vulkan1p2.feature_extensions_consistency CTS testcase.

Enable the corresponding feature too. I ran all CTS tests with
"mirror_clamp_to_edge" in name, which are all skipped with NotSupported
before (because of the feature being not advertised), and gain
3695/11140 Pass with the remaining ones still NotSupported (no Fail).

This also makes the feature extension consistency CTS testcase Pass too.

Fixes: 4d34c07b7a ("pvr: advertise VK_KHR_sampler_mirror_clamp_to_edge")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
(cherry picked from commit ab9e148bfb)

Conflicts:
	src/imagination/vulkan/pvr_physical_device.c
        (File has been renamed since branchpoint)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 11:23:49 -08:00
Lionel Landwerlin
de09b48697 anv: add 32-wide subgroup requirement heuristic
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13052
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Tested-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com>
Cc: mesa-stable
(cherry picked from commit 296325b787)

Stable:
    - `nir_src_as_alu` is still alled `nir_src_as_alu_instr`

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 11:17:49 -08:00
Gil Pedersen
a1afc1076f intel: Add PIPE_FORMAT_R10G10B10X2_UNORM support
This utilizes the RGBX format faking logic from e8cd7a30 to enable
PIPE_FORMAT_R10G10B10X2_UNORM renderer support using swizzling.

This format is needed for better HDR rendering support in the iris driver, to
support the Proton / Wine DXGI implementation, which requires an RGBA ordered
renderer for its Vulkan implementation. This in turn requires the Wayland
display to support both alpha and opaque formats. The check currently fails,
since only PIPE_FORMAT_R10G10B10A2_UNORM is exposed when Gallium (iris) is
the DRI Wayland renderer.

Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 858364be71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:31 -08:00
Aitor Camacho
d110b38d32 vulkan/wsi: Fix double destroy of present_id_timeline at swapchain create
Fixes: c888da3d48 ("vulkan/wsi: Add mechanism to wait for WSI semaphore unsignal.")

Reviewed-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit df19ec3020)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:30 -08:00
Ian Romanick
84caa703c9 lavapipe: fp16 flrp must also be lowered
Prevents failures with fp16 in lavapipe and Zink on lavapipe when
"nir/lower_flrp: Check and set shader_info::flrp_lowered" is
applied. Lowering with an incomplete mask on the first call to
nir_lower_flrp will prevent later calls (with the complete mask) from
doing anything.

Fixes: b38879f8c5 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 341e2d3283)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:27 -08:00
Dylan Baker
2213869af3 .pick_status.json: Update to ac37885fc8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-03 08:40:24 -08:00
Lionel Landwerlin
48d55072b1 anv: fix broken ray tracing dynamic descriptors
We completely missed that handling.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e76ed91d3f ("anv: switch over to runtime pipelines")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14284
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 0ca870c6f3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:01:45 -08:00
Lionel Landwerlin
9586b50990 vulkan/runtime: track dynamic descriptor offsets for RT pipelines
Dynamic descriptors are mapped an array of offsets provided through
vkCmdBindDescriptorSets*() commands.

When pipelines are compiled with independent sets layouts, the
implementation might have to do additional runtime calculation to
figure out what offset in the contiguous array maps to what dynamic
descriptor in the pipeline layout.

For graphics pipelines you can always compute that information when
binding the shaders. There is always a limited amount of shaders (5
max).

For ray tracing pipelines, there could be lots of shaders to process
at every pipeline binding call. Besides there is no interface from the
runtime to the driver to list all the shaders used at the moment.

So do that tracking in the runtime and pass the information down to
the driver through the cmd_set_rt_state() vfunc.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 69a04151db ("vulkan/runtime: add ray tracing pipeline support")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 5c53c6e693)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:01:45 -08:00
David Rosca
c24290a929 radv/video: Fix AV1 quantization map maxQIndexDelta value
Fixes: ae6ea69c85 ("radv: Implement VK_KHR_video_encode_quantization_map")
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 2b2914d81f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Tapani Pälli
1ee375555c anv: add vk_wsi_disable_unordered_submits and enable for GTK
See radv change 0d9d45db4e for further explanation.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14354
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit b2b5e83894)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Gurchetan Singh
27a88241ba util: fix arithmetic on a pointer to void warning
Otherwise, the following error is observed:

src/util/cache_ops_x86_clflushopt.c:40:22:
   error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
   40 |    void *end = start + size;
      |                ~~~~~ ^
src/util/cache_ops_x86_clflushopt.c:44:9:
  error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith]
   44 |       p += cpu_caps->cacheline;
      |       ~ ^

This works with GNU extension enabled, but does lead to warnings
with Clang.

v2: Add to trial_c + trial_cpp checks (Erik)
v3: use c_msvc_compat_args to avoid fixing other instances of this issue (Erik)

Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit 14cfe14626)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 11:00:27 -08:00
Aitor Camacho
3e8ecfedd4 vulkan/cmd_queue: Use vk_strdup and free allocated string memory
Fixes: 9082715ab0 ("vk/cmd_queue: generate copies for string struct members")

Reviewed-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Signed-off-by: Aitor Camacho <aitor@lunarg.com>
(cherry picked from commit 16c98f4f18)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 10:12:06 -08:00
Dylan Baker
610dbae397 .pick_status.json: Update to a71b4a4b95
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-02 10:11:59 -08:00
Qiang Yu
212f734e37 glsl: support barrier() for task and mesh shader
It was ignored when translating glsl to nir.

Fixes: d52452a486 ("glsl: allow barrier builtin functions for mesh shader")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 2f6a034528)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:56 -08:00
Benjamin Cheng
de081cee46 radv/video: Override direct_spatial_mv_pred to 1
VCN always uses spatial direct mode.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 9e37969179)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:56 -08:00
Benjamin Cheng
e9956932bb radv/video: Fix H264/H265 reference selection
The order of pReferenceSlots is not well-defined by spec. Instead we
need to look at the RefPicList0/1 which provides slot indices.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit ab56ce154b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:55 -08:00
Benjamin Cheng
0997cc6707 radv/video: Fix num_ref_idx_l{0,1} related overrides
Since we only support 1 L0/L1 ref, the default num refs in the PPS
should always be 0. With that there never any need to set the override
flag in the slice header (until more references are supported).
Also the ref pic list modifications should be clamped to the size of the
ref pic list.

This fixes an issue seen with dEQP-VK.video.encode.h264.i_p_b_13_*.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 2e21eec921)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:54 -08:00
Calder Young
a977cd49d1 intel: Fix calculation of max_scratch_ids on fused devices
The subslice IDs provided by the SR0.0 EU register are not adjusted to account
for fusing, so the upper bound max_scratch_ids can vary from device to device
depending on what specific slices were fused during manufacturing.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
(cherry picked from commit c0d809820f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:54 -08:00
Tapani Pälli
7b0ce4bde3 anv: add furmark workaround layer
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14274
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit ba89826b75)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:53 -08:00
Timothy Arceri
0e019bd754 util/driconf: Add linux version of Penumbra fixes
Cc: mesa-stable
(cherry picked from commit d10036362f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:52 -08:00
Emma Anholt
5693ff3e2a tu: Fix leak of compute shader pipeline->base.executables_mem_ctx;
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14358
(cherry picked from commit 89da258e71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:52 -08:00
Pierre-Eric Pelloux-Prayer
1430b06e9b mesa: fix function prototype
Replace void* by GLvoid* and add GLAPIENTRY to match the gl_API.xml
version.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14164
Fixes: ae75b59cb5 ("glthread, tc: Fix buffer release with glthread and tc")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 671e943c9b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:51 -08:00
Calder Young
f21dca7139 anv: Fix ray query shadow stack buffer size
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Cc: mesa-stable
(cherry picked from commit 09e8a54087)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:50 -08:00
Ian Romanick
11d5d20e8b brw: Force allow_spilling when spill_all is set
This ensures that g0 is reserved for spilling since there is going to be
spilling.

Fixes: 8bca7e520c ("intel/brw: Only force g0's liveness to be the whole program if spilling")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 1fc2f52d36)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:49 -08:00
David Rosca
c205817236 radeonsi/vcn: Fix maybe uninitialized warning
Backport-to: 25.3
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1884b03a10)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:48 -08:00
Natalie Vock
681e8b7e84 radv/rt: Correctly copy culling flags when updating to separate AS
This was missing and led to the field being uninitialized.

Cc: mesa-stable
(cherry picked from commit b7f011e653)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:42 -08:00
Natalie Vock
8e9da72044 radv/rt: Keep updated nodes always active
In updateable AS, we keep all nodes active even if they're
degenerate/NaN, because too many games ignore API rules about not
making inactive nodes active (and some vendor tips outright advise this
behavior). We also need to match this by keeping everything active in
the update side. The ALWAYS_ACTIVE macro has been long removed and
replaced by VK_BVH_BUILD_FLAG, too. Since updating only happens to
updateable AS, don't even check for the flag, just implement the
always-active handling.

Cc: mesa-stable
(cherry picked from commit bc1eea90b9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:41 -08:00
Lionel Landwerlin
142c392389 nir/lower_printf: fix missing singleton add
If we're using the singleton, we need to add to it.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 4b9aa9dc91)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:41 -08:00
Lionel Landwerlin
97d5911e00 nir/lower_printf: fix array alignment
The pointer arithmetic doesn't need a 4byte alignment, otherwise
everything is broken.

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 d24633023f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:40 -08:00
Lionel Landwerlin
45bd0be006 spirv: fix printf generation
Not having the uses_printf will drop the printf info in serialization.

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 67faf6dfbd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:40 -08:00
Lionel Landwerlin
e1eaedbd99 nir: fix lower_printf with no arguments
SPIRV generated printf with no arguments have an undef source (not the
expected deref).

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 6940b8fcd7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:39 -08:00
Valentine Burley
54277ca7e1 egl: Disable kopper on Android
Kopper is not supported on Android, and attempting to use it breaks zink
on the platform.

Disable kopper automatically when running on Android, fixing zink without
`LIBGL_KOPPER_DISABLE`.

Fixes: 3294cad341 ("egl: Rename dri2_detect_swrast() and also detect kopper")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14331
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Antonio Ospite <antonio.ospite@collabora.com>
(cherry picked from commit 8a1ea724b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:38 -08:00
Samuel Pitoiset
93d5e37c5b radv: fix per-submit RGP captures on video queues
SQTT user data packets aren't supported either.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit af461de026)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:38 -08:00
Faith Ekstrand
7882a413fb vulkan/drm-syncobj: Stop returning early waiting for sync files
In the WAIT_ALL case in spin_wait_for_sync_file(), we were returning the
moment we saw the first success.  However, this isn't a wait-all, it's a
bad wait-any.  We should instead just continue on to check the next sync
until we've ensured that every sync in the array has a sync file.  The
only reason this wasn't blowing up in our face is because it only
affects non-timeline drivers (pretty rare these days) and because most
of the places where we use WAIT_PENDING on non-timeline drivers is to
guard a sync file export and those typically have only a single sync in
the array.

Cc: mesa-stable
Reviewed-by: Gurchetan Singh <gurchetansingh@google.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
(cherry picked from commit e4e619d685)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:37 -08:00
Tapani Pälli
e6c814c448 drirc: set intel_disable_threaded_context for Amnesia The Bunker
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14084
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 21f646d196)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:37 -08:00
Tapani Pälli
1f1f0d5ad6 drirc/iris: add drirc to disable threaded context
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 4daabf76b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:36 -08:00
Rob Clark
bbbee1f85d freedreno: Fix internal VBO reference leak
It appears that this extra ref is no longer needed.  And not dropped
anywhere.

Fixes: b3133e250e ("gallium: add pipe_context::resource_release to eliminate buffer refcounting")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14315
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit cccdbbc360)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:36 -08:00
Ian Forbes
e32d0815af svga: Check if Stencil buffer is NULL
Fixes a nullptr dereference on older HW versions.

Fixes: f29d939824 ("svga: rework framebuffer state")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
(cherry picked from commit 4e16a5b68b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:35 -08:00
Patrick Lerda
6599a0ea57 r600: fix error filters compatibility
The shader-db functionality was interfering with the error
filters.

Two new options are added: R600_DEBUG=shaderdb and
R600_DEBUG=precompile. The option precompile is added
to maintain the compatibility with the shader-db repository.

This change fixes 22 of these tests:
deqp-gles31/functional/debug/error_filters/case_.*: warn pass
deqp-gles31/functional/debug/error_groups/case_.*: warn pass

Fixes: 28d6a5af25 ("r600: Add shader precompile and shader-db support.")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit f005c0b5ad)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:34 -08:00
Hyunjun Ko
33abe4a45e vulkan/video: Fix H.265 long-term reference handling
Without these fixes, H.265 streams using long-term references would
fail to decode correctly as the decoder wouldn't distinguish between
short-term and long-term reference frames.

Fixes: 896f95a37e ("vulkan/video: fix h265 decoding with LT enabled.")

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 01de6ac134)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:34 -08:00
Eric Engestrom
3cdda99e9a ci: use $CI_TRON_JOB_PRIORITY tag on all ci-tron jobs
Moving `ci-tron:priority:` out of the variable because an empty value
will not be authorized, and this makes it obvious if that bug ever
happens (job will not be picked up and gitlab will complain that
`ci-tron:priority:` is not a tag registered by any runner), instead of
getting picked up by any runner that will then reject (fail) the job.

(This is caused by GitLab's API not allowing tags to be enforced when
picking up jobs, resulting in jobs with missing tags being picked up by
any runner, like the bug we had with the generic fd.o runners a few
months ago.)

v2 (Martin Roukala):
 * use the priority tags in all amdgpu jobs
 * add missing tags in etnaviv jobs
 * add missing tags in broadcom jobs

Cc: mesa-stable
(cherry picked from commit 53fe1f39a0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:33 -08:00
Lionel Landwerlin
c9a52df804 brw: compute final copy propagation resulting source
Fixes this test on Xe2+:

INTEL_DEBUG=no32 ./deqp-vk -n dEQP-VK.spirv_assembly.instruction.maint9_vectorization.bit_field_u_extract.result_v16i-base_v16i-offset_s64u-count_s16i

Generate invalid code for that platform:

and(16)         g37<1>UW        g65<16,4,4>UW   0x000fUW        { align1 1H I@5 };
	ERROR: Invalid register region for source 0.  See special restrictions section.

Several helpers like has_subdword_integer_region_restriction() do not
see the final type of the source, so compute it early.

Maybe new_src could be used in more cases. Being conservative for now.

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

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:33 -08:00
Dave Airlie
4988213fe6 dozen: return INCOMPATIBLE_DRIVER on instance create failure
When probing on generic Linux platforms, the loading of d3d12 and
the first init of could fail, but the error returned causes a
loader warning to be printed.

Use the correct error return to stop this.

Cc: mesa-stable
(cherry picked from commit c00b66fa71)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:32 -08:00
Eric Engestrom
0648e0a222 meson: auto-disable draw-use-llvm when llvm=disabled
The option's description is:
> Whether to use LLVM for the Gallium draw module, if LLVM is included.

Let's disable it right away if LLVM is disabled, to avoid some
configurations from failing.

Cc: mesa-stable
(cherry picked from commit 37c7d19e46)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:31 -08:00
Eric Engestrom
fb984d2845 meson: auto-disable amd-use-llvm when llvm=disabled
The option's description is:
> Whether to use LLVM for the AMD drivers, if LLVM is included.

Let's disable it right away if LLVM is disabled, to avoid configurations
like the one in the issue below from failing.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14306
(cherry picked from commit 69bb927ebf)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:30 -08:00
Matt Turner
005d8a870c meson: Let -Ddraw-use-llvm=false work for R300 on non-x86
Prior to commit b8b38d38b1 ("meson: reinstate LLVM requirement for r300
and enforce it for i915 too") it was possible to build and use r300 for
architectures that do not have LLVM (e.g., alpha).

The only SWTCL chips are integrated graphics in x86 systems, and are not
available in discrete cards.

Fixes: b8b38d38b1 ("meson: reinstate LLVM requirement for r300 and enforce it for i915 too")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 4235c39a9a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:29 -08:00
Rob Clark
1e2bf818fa freedreno/a6xx: Fix UB in convert_color()
Swizzle can include PIPE_SWIZZLE_0/_1 (4 and 5) which result in indexing
beyond the channel array.

Reported-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Fixes: 76e350671f ("freedreno/a6xx: Sysmem clear fixes")
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
(cherry picked from commit f0465ced7f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:29 -08:00
Dylan Baker
6cd6fc82ed .pick_status.json: Update to 076a383437
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-12-01 09:16:12 -08:00
Dylan Baker
1400d5477a .pick_status.json: Update to bcedc88f21
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:37:39 -08:00
Matt Turner
4eac81ed95 meson: Fix sysprof-capture-4 dependency
The versioning scheme changed in v45.0 (the previous version was
3.48.0). As such, this version check would wrongly accept e.g. 48.0.

Fixes: e9341568fa ("meson: require sysprof-capture-4 >= 4.49.0")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit ad14942300)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:58 -08:00
Yurii Kolesnykov
54828a0b15 loader: Wrap nouveau_zink_predicate with HAVE_LIBDRM
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com>
Fixes: 265afd9bfd ("loader: Don't fall back to nouveau GL without zink")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14290
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 4913177b14)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:57 -08:00
Pierre-Eric Pelloux-Prayer
3134ebd354 radeonsi/sqtt: clear out sqtt bo on resize
If the resizing fails, we shouldn't use the destroyed bo anymore.

Fixes: 5794a86f19 ("radeonsi/sqtt: support sqtt buffer auto-resizing")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit bac9d17ead)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:55 -08:00
Lionel Landwerlin
72c77df965 anv: Wa_18040903259 only applies to RCS when in GPGPU mode
Sadly this probably won't change anything in terms of perf as the CCS
engine has a bunch of other restrictions.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 243c01c703 ("anv/iris: implement Wa_18040903259")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit 07b7de35cc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:54 -08:00
Samuel Pitoiset
5885477397 radv: fix RB+ for depth-only with unused attachments
When there are no color outputs in the rendering state, but color write
enable/write aren't masked out (which seems legal with
VK_EXT_dynamic_rendering_unused_attachments), the driver must emit
CB_DISABLE to disable CB rendering completely.

Otherwise, if there is also a depth/stencil attachment in the rendering
state, CB0 is always set to 32_R for RB+. That means, the pixel shader
would still export fragments but to the previously bound color
attachment.

VKCTS is missing coverage.

Fixes: 4580293ab2 ("radv: implement RB+ depth-only rendering for better perf")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14319
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 168a8d0b52)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:53 -08:00
Yonggang Luo
8069763b02 ci/microsoft: Downgrading WinFlexBison.win_flex_bison to version 2.5.24
This is achieved by provide version parameter to winget-cli

Fixes: 9592686ca0 ("ci/windows: Use winget to install packages and install Microsoft.WindowsWDK.10.0.26100")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13968

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 84cce2a739)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:51 -08:00
Mel Henning
5b6d043852 zink: Lock around screen_debug_marker_{begin,end}
vkQueueBeginDebugUtilsLabelEXT and vkQueueEndDebugUtilsLabelEXT
require queue to be externally synchronized, which means these functions
require the lock. Unfortunately, there's no guarantee that the debug
markers will be matched in the multithreaded case, but I suppose this is
better than crashing.

Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 80db8171de)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:50 -08:00
Mel Henning
7c1705c148 zink: Lock queue_lock in zink_destroy_screen
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 018178842e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:50 -08:00
Mel Henning
3b6f03bd49 zink: Create one queue lock per device
We currently only create one queue per queue family on the device. The
device can be shared between multiple zink_screens, so having one lock
per screen can still lead to multiple locks per queue. Fix this by
allocating queue_lock along with the device.

This fixes an issue that was causing crashes with nvk+zink and
QtWebEngine with QTWEBENGINE_FORCE_USE_GBM=1 This can be reproduced by
resizing the window in either:

 * anki - https://apps.ankiweb.net/ or
 * Qt's simplebrowser example
   https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-simplebrowser-example.html

which would then cause this dmesg error:

    nouveau 0000:01:00.0: anki[92007]: Failed to find syncobj (-> in): handle=40

along with a context loss.
With VK_LOADER_LAYERS_ENABLE=VK_LAYER_KHRONOS_validation we would additionally
get warnings like:

    Validation Error: [ UNASSIGNED-Threading-MultipleThreads-Write ] | MessageID = 0xa05b236e
    vkQueueSubmit(): THREADING ERROR : object of type VkQueue is simultaneously used in current thread 139824449189568 and thread 139823901816512
    Objects: 1
        [0] VkQueue 0x557a666783e0

Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 9acce36652)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:49 -08:00
Mel Henning
81f1cefcea zink: Make screen->queue_lock a pointer
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit dff1b9d4e9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:49 -08:00
Mel Henning
aaca86cd4d zink: Return zink_device in create_logical_device
Fixes: 015eda4a41 ("zink: deduplicate VkDevice and VkInstance")
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit f0dc8c0224)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:48 -08:00
Eric R. Smith
052f8bde04 pan: fix a bifrost disassembly assert failure
We were overflowing an array during bifrost disassembly. This was
only a problem if the user explicitly set an environment variable,
so unlikely to occur in casual use, and also only could be triggered
in very specific, dense code. But we still should get this right!

The specific CTS test that caused the assert is:

'dEQP-VK.graphicsfuzz.stable-quicksort-for-loop-with-injection'

with environment variable `BIFROST_MESA_DEBUG=shaders`. One of the
shaders has a clause with 6 constants (the maximum) and this overflowed
the array because we assume we always have an extra slot (used for
modifier processing).

Cc: mesa-stable
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 65ba14519e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:47 -08:00
Dylan Baker
e0669e19e9 .pick_status.json: Update to 7c193ffef1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-21 14:22:46 -08:00
Lionel Landwerlin
28874a99ad anv: consider 64bit atomics on similar formats with mutable images
vkd3d-proton uses a R32G32_UINT image with MUTABLE

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ed77f67e44 ("anv: add emulated 64bit integer storage support")
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit 73bf51dba0)

Conflicts:
	src/intel/ci/anv-adl-vkd3d-fails.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:39:00 -08:00
Erik Faye-Lund
798ec2e23f mesa/st: do not enable EXT_texture_buffer_object with rgba only
GL_EXT_texture_buffer_object requires support for alpha, luminance,
luminance-alpha and intensity formats. If we can't support those, we
can't enable the extension.

Fixes: 45ca7798dc ("glsl: handle interactions between EXT_gpu_shader4 and texture extensions")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 6f2b8c3f61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:59 -08:00
Erik Faye-Lund
5dde2812b9 mesa/main: correct formatquery error-handling
Most of the time, we remember to check for both extensions. But in one
case, it seems we forgot the GLES extension. Whoops.

Let's switch to a helper here, so we don't have to repeat the logic over
and over again.

Fixes: b4c0c514b1 ("mesa: add OES_texture_buffer and EXT_texture_buffer support")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 9d5e0c1ad2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:59 -08:00
David Rosca
d9cbd8ce83 radeonsi/vcn: Reduce allocated size for pre-encode recon pics
We use 4x downscale for pre-encode, so we don't need full size
pre-encode reconstructed pictures.

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1f83e73145)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:58 -08:00
Yiwei Zhang
3c8fb6206c venus: properly fix the blob mem mapping size
There's a single underlying bo mapping shared by the initial alloc here
and the later import of the same. The mapping size has to be initialized
with the real size of the created blob resource, since the app can query
the exported native handle size for re-import. e.g. lseek dma-buf size

Similar to virtgpu_bo_create_from_device_memory, the app can do multiple
imports with different sizes for suballocation. So on the initial
import, the mapping size has to be initialized with the real size of the
backing blob resource.

Backport-to: 25.3
(cherry picked from commit 0afc408cb9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:58 -08:00
Yiwei Zhang
e583dc112f venus: avoid re-imported dma-buf to have a larger map size
If the allocation originates from the same instance, the tracker map
size follows the allocationSize. After export and re-import, mapping the
whole dma-buf can exceed the original map size. This change backs out
the offending changes.

Test: dEQP-VK.api.external.memory.*.suballocated.host_visible.*
Fixes: 442f242a49 ("venus: requests whole blob mem size for non-dedicated import")
(cherry picked from commit c259ea24ee)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:57 -08:00
Natalie Vock
9618c54d33 aco/insert_nops: Consider s_setpc target susceptible to VALUReadSGPRHazard
Some GPU hangs witnessed in the wild on RDNA4 in Control and Arc Raiders
seem to point towards closest-hit shaders reading a stale value for the
SGPR pair containing the currently-executing shader's address.

This SGPR pair was read by VALU in the preceding traversal shader,
making it susceptible to VALUReadSGPRHazard. Inserting
VALUReadSGPRHazard mitigations before accessing the s_setpc target seems
to fix the hang. We don't have conclusive proof that this is hazardous,
but given that all signs point towards it and we have a reasonably
simple workaround, let's roll with this for now to mitigate the hangs.

Cc: mesa-stable
(cherry picked from commit 1243d575a5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:57 -08:00
Karol Herbst
eb51b0b39a rusticl/kernel: Do not run kernels with a workgroup size beyond work_dim
When no workgroup size is specified we try to run with the most optimal one
possible. However we didn't take into account that we shouldn't run a
workgroup of higher dimensionality than requested by the application.

Fixes: 376d1e6667 ("rusticl: implement cl_khr_suggested_local_work_size")
(cherry picked from commit d46be8fbf2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:56 -08:00
Karol Herbst
57ea82d834 rusticl/kernel: fix clGetKernelSuggestedLocalWorkSizeKHR implementation
There were two issues:
1. The global_work_offset parameter is optional but we errored on NULL
2. We didn't return the reqd_work_group_size when set on the kernel.

Fixes: 376d1e6667 ("rusticl: implement cl_khr_suggested_local_work_size")
(cherry picked from commit 810dca450c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:55 -08:00
Timothy Arceri
a7ed5d61b1 mesa: fix _mesa_update_texture_matrices()
_math_matrix_is_dirty() should only be used to decide if we need to
run _math_matrix_analyse(). We already decided that we had a new
texture matrix when we called _mesa_update_texture_matrices() so
we need to set _TexMatEnabled correctly otherwise we might
incorrectly return _NEW_FF_VERT_PROGRAM | _NEW_FF_FRAG_PROGRAM in
the following if-statement.

Fixes: ec978e002f ("mesa: only update fixed-func programs on texture matrix enablement changes")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14286
Reviewed-by: Emma Anholt <emma@anholt.net>
(cherry picked from commit b0047be0c2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:55 -08:00
Lionel Landwerlin
e4d77530b4 anv: ensure slab allocated memory matches image requirements
The VMA of VkDeviceMemory has to accomodate all the resources that can
be bound to it. For sparse images it's 64KiB alignment, for other
tiled images it's 4KiB. But we also have a workaround that requires a
64KiB alignment for Tile4 images.

The initial version of the slab allocator missed the 4KiB alignment.
This fix adds the workaround handling too.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: dabb012423 ("anv: Implement anv_slab_bo and enable memory pool")
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
(cherry picked from commit 401b2066b0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:54 -08:00
Lionel Landwerlin
db8281fdbb anv: fixup load_ubo lowering
Use ult like nir_lower_explicit_io.

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 775f8ec105)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:54 -08:00
Olivia Lee
1d97f7da0c panvk/csf: explicitly set ls_sb_slot in set_fbds_provoking_vertex
SB_ID(LS) is currently equal to zero, so this is not a behavior change,
but worth setting it explicitly for clarity and in case the sb
assignments change.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 885805560f ("panvk/csf: fix case where vk_meta is used before PROVOKING_VERTEX_MODE_LAST")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit ebbf05f9d2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:53 -08:00
Olivia Lee
9fbbbc994b panvk/csf: fix uninitialized read in draw context
We check fn_set_fbds_provoking_vertex_stride == 0 to determine whether a
previous function variant has already been allocated, so this value must
be initialized to zero before we start the loop. We could fix this by
explicitly initializing just that field, but I figure it's simpler and
safer to just zero-initialize the whole struct.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 885805560f ("panvk/csf: fix case where vk_meta is used before PROVOKING_VERTEX_MODE_LAST")
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit e899bc8be8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:52 -08:00
Lionel Landwerlin
229e6040a1 brw: fix workaround fence rlen field
send.ugm (1|M0)          r125     r0      null:0  0x0            0x0200651F           {$9} // wr:1+0, rd:0; fence invalid flush type scoped to tile

When destination of Send(s) is not null, the response length must not be 0.

Should only affect DG2 products.

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 4816318887)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:52 -08:00
David Rosca
fce07c7f86 radeonsi/vce: Add workaround for unaligned input surface
VCE requires 16x16 aligned input surface. Blit into an internal
scratch surface when input surface is not 16 aligned.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14270
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
(cherry picked from commit 17c015c2de)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:51 -08:00
Dylan Baker
8a428651fe .pick_status.json: Update to 7a3bfd1f79
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-19 09:23:46 -08:00
Patrick Lerda
ddb166148b r600: fix rv770 read scratch compatibility
The flag mega_fetch should be set on rv770 for a
read scratch operation (as written in the r700
documentation p357). Without this flag, read scratch
does not work and a gpu hang could be triggered.

Here are the tests fixed:
shaders/glsl-predication-on-large-array: fail pass
spec/glsl-1.10/execution/temp-array-indexing/glsl-fs-giant-temp-array: fail pass
spec/glsl-1.10/execution/temp-array-indexing/glsl-vs-giant-temp-array: fail pass
spec/glsl-1.30/execution/fs-large-local-array: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec2: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec3: fail pass
spec/glsl-1.30/execution/fs-large-local-array-vec4: fail pass
spec/glsl-1.30/execution/fs-multiple-large-local-arrays: fail pass

Fixes: 9c48a139b0 ("r600g: Support emitting scratch ops")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit f8de09a811)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:38 -08:00
Erik Faye-Lund
5238c8d029 panfrost: remove stale code
This code was no longer needed after switching to os_read_file, but I
accidentally left it around, whoops!

Fixes: 49183bfb79 ("pan/bi: use os_read_file-helper")
CID: 1665295
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit d77279fa9b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:38 -08:00
Erik Faye-Lund
8c796df86f pan/kmod: fix priority query logic
The PANFROST_JM_CTX_PRIORITY values aren't bitmasks, but enum values.
But the kernel interface uses the BIT()-macro on them, so we need to do
the same. We don't have the macro, but it's trivial to do this with a
bitshift instead.

Fixes: f04dbf0bc0 ("pan/kmod: query and cache available context priorities from KMD")
CID: 1666511
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 37a7a157e8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:37 -08:00
Calder Young
f966640ddf brw: fix SIMD lowering of fp16 sampler message data with multiple components
Fixes: 61d6aea4 ("brw: fix SIMD lowering of sampler messages with fp16 data")
Closes: mesa/mesa#13149
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit d6fbbfef5c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:36 -08:00
David Rosca
7bdac1e66f radv/video: Fix coding used_by_curr_pic_lt_flag
Fixes: d68a1fc0d4 ("radv/video: port hevc slice header encoding from radeonsi")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14301
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 3abb2707e2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:36 -08:00
Christoph Pillmayer
8ddecf22ac nir: Fix preseved metadata in sort_unstructured_blocks
Fixes: c859ea5783 ("nir: Add a sort_unstructured_blocks() helper")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
(cherry picked from commit 8db66767a9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:35 -08:00
David Rosca
b951bbc5bd radv/video: Fix coding allow_screen_content_tools and force_integer_mv
This was copied from radeonsi which expected seq_force_screen_content_tools = 2
and seq_force_integer_mv = 2.

Fixes: 37e71a5cb2 ("radv/video: add support for AV1 encoding")
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 3858a6a696)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:35 -08:00
David Rosca
51a21fa57e vulkan/video: Fix coding AV1 seq_choose_screen_content_tools = 1
Fixes: 724655bfc6 ("vulkan/video: add support for AV1 encoding to runtime")
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 22803f0d50)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:34 -08:00
Timur Kristóf
1cbce7ea76 ac/gpu_info: Disable sparse VM mappings pre-Polaris, for now
Disable sparse mappings on GFX7-8 due to GPU hangs in the VK CTS,
except Polaris where it happens to work "well enough" to pass
the VK CTS and run some games already.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 567e1b56ef)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:33 -08:00
Timur Kristóf
1f6d6533c0 radv: Disable sparse mapping when unsupported by VM
Also disable the sparse binding queue and other related features.
Using sparse on GFX6-8 can cause GPU hangs at the moment.

Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 1c8881fc60)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:32 -08:00
Daniel Schürmann
19cab16a87 nir/opt_large_constants: Fix dead deref instructions accessing lowered variables
It could happen that unused derefs weren't removed
if DCE wasn't called prior to nir_opt_large_constants.

Cc: mesa-stable
(cherry picked from commit 0d70716c8a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:32 -08:00
Lionel Landwerlin
8b20f43336 brw: fix SIMD lowering of sampler messages with fp16 data
We need to make sure the data part returned by sampler messages is
always aligned to a physical register. Just like the residency data
lives in a single physical register after the data.

Lowering a vec3 16bits per components led to a half a physical
register allocation which then confused the descriptor lowering
(expecting physical register units).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 295734bf88 ("intel/fs: fix residency handling on Xe2")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12794
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 61d6aea401)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:31 -08:00
Yiwei Zhang
d29700fce6 venus: use seq_cst for ring cs and tail update ordering
To avoid incompatibility between the compiler implementations used by
the driver and the renderer, seq_cst ordering is picked here, which has
required a full mfence instruction. Then the renderer side acquire is
ensured to be ordered after the cache flush of ring cs updates.

Perf wise, there's no regression in headless vkmark runs. In theory,
the overhead introduced here weighs trivially as compared to the ring
cs encode/decode part. So we should go for better robustness.

Test: venus on windows guest works with renderer on Linux
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14277
(cherry picked from commit 07d059f3e2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:30 -08:00
Lionel Landwerlin
d22a20de74 brw: fixup 64bit atomics emulation on 2D array images
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ce7208c3ee ("brw: add support for texel address lowering")
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
(cherry picked from commit b3cc54731f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:27 -08:00
Connor Abbott
1f1b69c35a tu: Handle case where pipeline writes unused color attachments
With VK_EXT_unused_attachments, we may have a case where the FS writes
to attachments 0 and 1, both have valid formats and are enabled, yet the
renderpass only has 1 color attachment. In this case we would set
RB_PS_MRT_CNTL to 2, but since we never emitted RB_MRT_BUF_INFO[1] and
so on, we would get garbage attachment info from the last render pass
and end up writing to an attachment that doesn't exist.

Fix this by disabling attachments that are unused. We can't move setting
RB_PS_MRT_CNTL to emitting when we emit color RT state, because then we
have the inverse problem of a FS that writes to attachments 0 and 1, a
renderpass that has 2 attachments, but a blend state that only includes
1 attachment (and therefore disables color writes for attachment 1). At
least one side (blending or RT emission) has to assume that the other
side may have more RTs enabled and disable the rest of the RTs up to
MAX_RTS.

Fixes: c2eb768eb2 ("tu: Expose VK_EXT_dynamic_rendering_unused_attachments")
(cherry picked from commit 6064e3a7d8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:26 -08:00
Alyssa Rosenzweig
b475bf8f26 nir/sweep: fix use-after-free with dominance LCA
Either we need to save this pointer or toss it.

==146166==ERROR: AddressSanitizer: heap-use-after-free on address 0x7bfe77013920 at pc 0x7b9e6fd5b978 bp 0x7ffc30ef18e0 sp 0x7ffc30ef18d8
READ of size 4 at 0x7bfe77013920 thread T0
    #0 0x7b9e6fd5b977 in get_header ../src/util/ralloc.c:83
    #1 0x7b9e6fd5b977 in ralloc_parent ../src/util/ralloc.c:382
    #2 0x7b9e6fd5b977 in reralloc_size ../src/util/ralloc.c:198
    #3 0x7b9e6fd5b977 in reralloc_array_size ../src/util/ralloc.c:241
    #4 0x7b9e705f83c2 in range_minimum_query_table_resize ../src/util/range_minimum_query.c:21
    #5 0x7b9e7018af1d in realloc_info ../src/compiler/nir/nir_dominance_lca.c:33
    #6 0x7b9e7018af1d in nir_calc_dominance_lca_impl ../src/compiler/nir/nir_dominance_lca.c:126
    #7 0x7b9e6ff9815c in nir_metadata_require ../src/compiler/nir/nir_metadata.c:42
    #8 0x7b9e6ff998e4 in nir_metadata_require_most ../src/compiler/nir/nir_metadata.c:200
    #9 0x7b9e6f8aab4d in st_finalize_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:735
    #10 0x7b9e6f0afb14 in st_create_common_variant ../src/mesa/state_tracker/st_program.c:858
    #11 0x7b9e6f0be2d3 in st_get_common_variant ../src/mesa/state_tracker/st_program.c:973
    #12 0x7b9e6f0bf9cf in st_precompile_shader_variant ../src/mesa/state_tracker/st_program.c:1478
    #13 0x7b9e6f0bf9cf in st_finalize_program ../src/mesa/state_tracker/st_program.c:1596
    #14 0x7b9e6f8b0127 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:633
    #15 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #16 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #17 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #18 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872
    #19 0x7f9e7893dd65 in GOMP_parallel (/lib64/libgomp.so.1+0xdd65) (BuildId: 9cc501fdca53b5d4ab094f709486781c98573bc9)
    #20 0x000000400d6a in main /home/alyssa/shader-db/run.c:689
    #21 0x7f9e78011574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #22 0x7f9e78011627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #23 0x000000401014 in _start (/home/alyssa/shader-db/run+0x401014) (BuildId: a83b8d830cc265be3f54ea3e7a21a0fb5156624b)

0x7bfe77013920 is located 0 bytes inside of 64-byte region [0x7bfe77013920,0x7bfe77013960)
freed by thread T0 here:
    #0 0x7f9e782e5beb in free.part.0 (/usr/lib64/libasan.so.8+0xe5beb) (BuildId: cab80046dbc1c97c6e14490acc37d079701f8d9a)
    #1 0x7b9e6fd5bc39 in unsafe_free ../src/util/ralloc.c:319
    #2 0x7b9e6fd5bc39 in ralloc_free ../src/util/ralloc.c:264
    #3 0x7b9e70063d81 in nir_sweep ../src/compiler/nir/nir_sweep.c:219
    #4 0x7b9e6f0bf499 in st_finalize_program ../src/mesa/state_tracker/st_program.c:1585
    #5 0x7b9e6f8b0127 in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:633
    #6 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #7 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #8 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #9 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872

previously allocated by thread T0 here:
    #0 0x7f9e782e5e4b in realloc.part.0 (/usr/lib64/libasan.so.8+0xe5e4b) (BuildId: cab80046dbc1c97c6e14490acc37d079701f8d9a)
    #1 0x7b9e6fd5a883 in resize ../src/util/ralloc.c:167
    #2 0x7b9e705f83c2 in range_minimum_query_table_resize ../src/util/range_minimum_query.c:21
    #3 0x7b9e7018af1d in realloc_info ../src/compiler/nir/nir_dominance_lca.c:33
    #4 0x7b9e7018af1d in nir_calc_dominance_lca_impl ../src/compiler/nir/nir_dominance_lca.c:126
    #5 0x7b9e6ff9815c in nir_metadata_require ../src/compiler/nir/nir_metadata.c:42
    #6 0x7b9e6ff998e4 in nir_metadata_require_most ../src/compiler/nir/nir_metadata.c:200
    #7 0x7b9e6f8b0ede in st_link_glsl_to_nir ../src/mesa/state_tracker/st_glsl_to_nir.cpp:550
    #8 0x7b9e6f8b3611 in st_link_shader ../src/mesa/state_tracker/st_glsl_to_nir.cpp:816
    #9 0x7b9e6f7bcf51 in link_program ../src/mesa/main/shaderapi.c:1412
    #10 0x7b9e6f7bcf51 in link_program_error ../src/mesa/main/shaderapi.c:1474
    #11 0x0000004020b0 in main._omp_fn.0 /home/alyssa/shader-db/run.c:872

Fixes: 17876a00af ("nir: Add a faster lowest common ancestor algorithm")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 65fcdf4c81)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:26 -08:00
Benjamin Cheng
4bd93089a7 radv/video: Align each layer of encode DPB to 256
VCN requires the luma/chroma VAs to be 256 aligned. On VCN5, the
collocated buffer was not 256 aligned which can cause these VAs to be
unaligned.

This fixes VVL PositiveVideoEncodeH264.Basic on VCN5.

Fixes: 37e71a5cb2 ("radv/video: add support for AV1 encoding")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 8848495875)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:25 -08:00
Dylan Baker
7e61052f7b .pick_status.json: Update to 018f45f981
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
2025-11-17 09:54:24 -08:00
Dylan Baker
0cb99ef602 docs: Add sha sums for 25.3.0
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
2025-11-14 13:56:23 -08:00
Dylan Baker
f7aeb0d677 VERSION: bump for 25.3.0
Signed-off-by: Dylan Baker <dylan.c.baker@intel.com>
2025-11-14 13:25:42 -08:00
Dylan Baker
523eea18c5 docs: add release notes for 25.3.0 2025-11-14 13:24:41 -08:00
Samuel Pitoiset
48b0dd2892 radv: add vk_wsi_disable_unordered_submits and enable for GTK
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
GTK is missing a semaphore between QueueSubmit() and QueuePresent()
causing the WSI submit to be "unordered" and to immediately signal the
semaphores (because it's missing a wait semaphore in QueuePresent()).

The workaround is to disable unordered WSI submits until GTK fixes it
properly.

Cc: "25.3"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14087
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 0d9d45db4e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-14 08:36:53 -08:00
Dylan Baker
25abf47e3e .pick_status.json: Update to 8f13905c5e
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-14 08:36:53 -08:00
Mario Kleiner
28ca4a48d6 wsi/wayland: Zero min_luminance, max_luminance HDR light levels are valid.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
CTA-861-G section 6.9.1 Static Metadata Type 1 declares that zero values
for different groups of HDR Metadata properties are allowed, including
zero nits values for max display mastering luminance, max content light
level, max frame-average light level and min display mastering luminance.

A zero value is meant to be treated by the video sink as "undefined" /
"unknown", and handled accordingly. This is common for dynamically
generated visual content.

The is_hdr_metadata_legal() function in the Vulkan/WSI/Wayland HDR backend
currently declares HDR light level metadata as invalid if the mastering
display min_luminance and max_luminance light levels are set to the legal
level of zero nits. This causes valid HDR metadata as set by the client
via vkSetHdrMetadata() to be not sent to the compositor.

Fix this by skipping checks that don't apply if min_luminance or
max_luminance are zero. If max_luminance is zero then we skip sending
of mastering display min/max luminance to Wayland, as sending a a
max_luminance <= min_luminance would trigger a protocol error. All
other valid data is still send, ie. color primaries, white-point,
content light levels.

Fixes: cb7726bb2c ("vulkan/wsi: validate HDR metadata to not cause protocol errors")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Co-authored-by: Michel Dänzer <michel@daenzer.net>
Reviewed-by: Xaver Hugl <xaver.hugl@kde.org>
(cherry picked from commit 490f05f82c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:38:01 -08:00
Lars-Ivar Hesselberg Simonsen
23665f9bd9 pan/format: Disable PAN_BIND_STORAGE_IMAGE for RGBA4/BGRA4
The RGBA4/BGRA4 formats had the PAN_BIND_STORAGE_IMAGE set, but we
cannot support that.

Fixes: d95423686f ("pan/format: Add PAN_BIND_STORAGE_IMAGE flag")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 15868cf6e9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:38:00 -08:00
Lars-Ivar Hesselberg Simonsen
b7ce6abb6a pan/format: Fix mapping for I16F
This was mapped to RG16F, while R16F should be correct.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 1e2ca4dad6)

Conflicts:
	src/panfrost/ci/panfrost-g610-fails.txt
	src/panfrost/ci/panfrost-g610-flakes.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:37:59 -08:00
Ludvig Lindau
0fbf00af9b panfrost: Make instrs_equal check res table/index
Add resource table and index check to instruction equality function.
This prevents CSE from mistakenly eliminating LEA_BUF_IMM instructions
that load from different resources, but with the same buffer offset.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 00b5275fe8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:40 -08:00
Gert Wollny
e2164fbc11 r600/sfn: Don't start a new ALU-CF if LDS pipeline loads are pending
Fixes: e57643cf (r600/sfn: Add handling for R600 indirect access alias handling)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 79e4323cf0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:39 -08:00
Joshua Simmons
f651443a74 vtn: Fix OpCopyLogical destination type
Previously the type info for nested values was copied from the source
operand, rather than propagating the new type from the destination
operand.

Fixes: 4c363acf94 ("vtn: Allow for OpCopyLogical with different but compatible types")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
(cherry picked from commit 7ac1f7777d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:38 -08:00
Marek Olšák
b5a4245193 gallium/noop: don't unref buffers passed to set_vertex_buffers to fix crashes
this code is invalid after the refcounting rework

Fixes: b3133e250e - gallium: add pipe_context::resource_release to eliminate buffer refcounting

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

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:37 -08:00
Lionel Landwerlin
76d66b72db anv: disable software detiling on Xe2+ for image atomics 64bits
This is what happens when you leave MR unreviewed for months.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: d39e443ef8 ("anv: add infrastructure for common vk_pipeline")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit c4e2878537)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:37 -08:00
Timur Kristóf
09b856c367 ac/nir/ngg: Fix scratch space for NGG GS streamout
For GS streamout, we need the following LDS scratch space:

- Repacking streamout vertices takes 1 dword per 4 waves per stream
  (max 16 bytes for Wave64, max 32 bytes for Wave32)
- 1 dword per stream for buffer info
  (16 bytes)
- 1 dword per buffer for buffer info
  (16 bytes)

Previously, the space used for buffer info aliased with the
space for repacking the output vertices in ngg_gs_finale(),
and there was no barrier in between, which caused a race
condition, resulting in random failure.

Fix this by allocating a few more LDS dwords so that aliasing
is not required, which also allows us to remove an extra
workgroup barrier.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12705
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit 8f99d736d0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:36 -08:00
Christian Gmeiner
e5f9980d50 meson: require sysprof-capture-4 >= 4.49.0
When Mesa is compiled with sysprof support, applications can crash with a
segfault during shutdown. This happens because sysprof_collector_mark()
registers thread-local storage destructors that get called after the library
containing the destructor code has been unloaded.

The problem was fixed in sysprof https://gitlab.gnome.org/GNOME/sysprof/-/merge_requests/152

CC: mesa-stable
Closes: mesa/mesa#13571
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit e9341568fa)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:35 -08:00
Dmitry Baryshkov
7f68450a6c ci: drop google-freedreno remnants
Drop remnants of the  google-freedreno lab entries.

Fixes: 6541b911bd ("freedreno/ci: Remove baremetal job templates")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 9a33edca35)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:34 -08:00
Natalie Vock
feccefbc86 radv: Fix PSO history with RT pipelines
1. The prolog needs to have a null check. Libraries don't have prologs.
2. We only need to print the shaders actually included in this pipeline.
   Libraries were already printed separately.
3. The traversal shader was wrongly omitted from the output.

Cc: mesa-stable
(cherry picked from commit 73a31dafbc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:33 -08:00
Sviatoslav Peleshko
a407dc6d83 driconf: Add vertex_program_default_out option for Penumbra: Overture
Penumbra's vertex program Diffuse_EnvMap_Reflect_vp.cg produces 3-component
texture coordinates and primitive colors while using the FF fragment
program. Add this WA to fix the misrenderings.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14170
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
(cherry picked from commit 5af8abbf8b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:32 -08:00
Sviatoslav Peleshko
4a0cb910e4 mesa,driconf: Add WA to initialize vertex program outputs to vec4(0,0,0,1)
Per ARB_vertex_program spec result registers are 4-component and initially
undefined, and the FF fragment program expects its intputs to be
4-component too. So, if the client's vertex program does not write the
whole vector it will cause misrenderings unless the same client also
supplies fragment program that expects less than 4 componens.

This commit adds a workaround that initializes results to vec4(0, 0, 0, 1)
which seems to be an expected behavior for such clients.

Cc: mesa-stable
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
(cherry picked from commit f03432c81a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:31 -08:00
Faith Ekstrand
8ffc19f935 nir: Add a couple panfrost sysvals to divergence analysis
Fixes: 2af6e4beeb ("pan: Don't pretend we support load_{vertex_id_zero_base,first_vertex}")
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayern@arm.com>
(cherry picked from commit 0e9fcb33c3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:30 -08:00
Tapani Pälli
de44196bfb anv: fix issues found with indirect data stride
Use tristate for the aligned setting, otherwise it is always
first disabled which contributes to the condition if we set the
new stride active.

v2: set ByteStride in dword units and take secondary cmdbuf
    in to account (Lionel)

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Nataraj Deshpande <nataraj.deshpande@intel.com>
(cherry picked from commit 2741ddd75a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:30 -08:00
Timothy Arceri
f0aeb824b9 glsl: assign block indices in the order they appear
The hash lookup should be negligible. This makes things
predictable rather than having hash table modifications causing
the order to change, and fixes things for some seemingly buggy games.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13802
Fixes: be5a15f11d ("util/hash_table: start with 16 entries to reduce reallocations")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 595a2fdbd2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:29 -08:00
Sagar Ghuge
2cb191d7d1 intel/common: Consider 0 threads while setting TG
In ray tracing dispatch, we have dispatch.threads set to 0 since we
calculate the local_size_x/y/z based on the launch sizes.

This change takes 0 threads into an account and returh the TG size 8 in
such scenarios. Before this change, we were setting TG size to 2.

Fixes: 0c4e1c9efc ("intel/common: Add helper for compute thread group dispatch size")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
(cherry picked from commit 16f66ffe55)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:28 -08:00
Patrick Lerda
b074ea9fe8 r600: limit pre-evergreen predicate ready size
With the current stack configuration the rv770 seems to be unable
to go beyond three with the "vs-output-array-float-index-wr-before-gs.shader_test"
test. Anyway, the value four seems to be sufficient for the other tests.

This issue was triggered on rv770, for instance, with:
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/gs-output-array-float-index-wr.shader_test -auto -fbo"
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/vs-output-array-float-index-wr-before-gs.shader_test -auto -fbo"

Fixes: 713edb5998 ("r600/sfn: handle the IF predicate in the scheduler")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
(cherry picked from commit ae049f6fea)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:27 -08:00
Karol Herbst
42726a2afa rusticl/spirv: preserve signed zeroes by default
Cc: mesa-stable
(cherry picked from commit 92a4ae0ab2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:26 -08:00
Karol Herbst
e42294ba9f rusticl/kernel: take no kernel_info reference inside the launch closure
Otherwise patterns like this wouldn't work:

clCreateKernel(prog)
clEnqueueNDRangeKernel
clReleaseKernel
clBuildProgram(prog)

Fixes: bb2453c649 ("rusticl/kernel: move most of the code in launch inside the closure")
(cherry picked from commit df344f12cc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:26 -08:00
Karol Herbst
3bb77d6906 rusticl/queue: fix error code for invalid sampler kernel arg
Fixes: 5795ee0e08 ("rusticl: translate spirv to nir and first steps to kernel arg handling")
(cherry picked from commit c0f0baeaca)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:25 -08:00
Karol Herbst
efd2f1d61c rusticl/queue: fix error code for invalid queue properties part 2
Fixes: 2c202eb787 ("rusticl: verify validity of property names and values")
(cherry picked from commit e98abe35c0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:24 -08:00
Karol Herbst
2cd6bc199a rusticl/queue: fix error code for invalid queue properties part 1
Cc: mesa-stable
(cherry picked from commit e83400cab2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:23 -08:00
Eric Engestrom
5c3427b1fe ci: track src/android_stub/ changes
Fixes: 932f51d593 ("ci: Include enough Android headers to let us compile test EGL")
Suggested-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit f689322d27)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:23 -08:00
Eric Engestrom
b6ae45d326 ci: track src/c11/ changes
It's used by mesa_util, so let's just consider changes to it can affect
any job.

Fixes: b2ddec4e98 ("c11: Implement c11/time.h with c11/impl/time.c")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 2ec3e536fd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:22 -08:00
Lionel Landwerlin
14097ed79d anv/blorp/iris: rework Wa_14025112257
Drivers already have to track this workaround, so remove the logic
from Blorp and let the driver manage this.

Also in Anv don't accumulate this workaround, emit it directly in
place right after COMPUTE_WALKER. Accumulating can be problematic when
you want to dispatch concurrent compute shaders that do not need any
cache flush interaction (typical example with the internal
simple_shader framework).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3e0ad0176b ("anv: Emit state cache invalidation after every compute dispatch")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit c478b6355a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:21 -08:00
Dave Airlie
0ef221f4a4 c11/threads: fix build on c23
C23/glibc is now including once_init in stdlib.h

https://patchwork.sourceware.org/project/glibc/patch/78061085-f04a-0c45-107b-5a8a15521083@redhat.com/#213088

Just fix up our use of it.

Cc: mesa-stable
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
(cherry picked from commit 179e744f75)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:20 -08:00
Karol Herbst
263e1823d2 st/interop: fix fence leak
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14050
Fixes: 1396dc1c38 ("mesa/st, dri2, wgl, glx: Modify flush_objects interop func to export a fence_fd")
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 87550fc657)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:19 -08:00
Faith Ekstrand
e334938384 nil: Add support for Blackwell 8 and 16-bit modifiers
Backport-to: 25.2
Reviewed-by: James Jones <jajones@nvidia.com>
(cherry picked from commit f1cb63a21d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:18 -08:00
Faith Ekstrand
f299249d8b drm-uapi: Import the new NVIDIA modifiers
Imported from kernel commit eef295a850820 of drm-misc-fixes

Backport-to: 25.2
Reviewed-by: James Jones <jajones@nvidia.com>
(cherry picked from commit 3247452b2c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:17 -08:00
Sagar Ghuge
594ae17ec9 anv: Drop unwanted untyped flush for AS query
CmdWriteAccelerationStructuresPropertiesKHR writes the data with MI
commands, we no longer dispatch shaders to write the properties.
As a result, we don't need to flush untyped cache.

Fixes: f0e18c475b ("intel: remove GRL/intel-clc")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 14194e59a4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:15 -08:00
Benjamin Cheng
02ba16ec03 radv/video: Fix dummy DPB addresses
This fixes the VVL PositiveVideoDecodeAV1.* tests, which trigger error
concealment. These DPB addresses would not be normally used, but get
used by the error concealment path.

Fixes: d103b76ad6 ("radv/video: add VK_KHR_video_decode_av1 support.")
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 82d944b388)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:14 -08:00
Lars-Ivar Hesselberg Simonsen
1460a0319f panvk: Fix IUB decode
The base address used for bounds checking the entry was wrong. Directly
pass the end_of_entry address instead.

Fixes: db4bcd48d7 ("panvk: Fix IUB decode")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
(cherry picked from commit 89293120f0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:09 -08:00
Dylan Baker
d48e4a3f3b .pick_status.json: Update to 294e72e2b5
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-13 08:10:00 -08:00
Christian Gmeiner
d3d820d6ef anv: Fix needs_temp_copy() incorrectly matching depth/stencil formats
The needs_temp_copy() function was incorrectly identifying some
depth/stencil formats as needing RGB<->RGBA conversion.

VK_FORMAT_D32_SFLOAT_S8_UINT maps to PIPE_FORMAT_Z32_FLOAT_S8X24_UINT,
which has 3 channels (F32 depth, UP8 stencil, X24 padding). The
component count check (== 3) was matching this as an RGB color format,
causing depth/stencil images to incorrectly use the RGB conversion path.

Add an explicit vk_format_is_depth_or_stencil() check before the
component count test to ensure depth/stencil formats always use the
direct copy path.

Fixes: f97b51186f ("anv: intermediate RGB <-> RGBX copy for HIC")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 0be53b2ed8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:55 -08:00
Mario Kleiner
70e3af188d wsi/display: Allow atomic modeset for change of Colorspace or HDR poperties
At least some drivers need a full modeset to change the Colorspace
property or to en-/disable HDR mode. E.g., at least amdgpu-kms as
tested under Linux 6.8 on Polaris needs it. Otherwise the atomic
commit for disabling HDR in _wsi_display_cleanup_state() will fail,
and the connector stays stuck in HDR mode after vkDestroySwapchainKHR().

Fixes: 1ed78dd7ec ("wsi/display: Clean up DRM hdr/color state on swapchain destruction")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit ba82d36dce)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:55 -08:00
Mario Kleiner
b777384e99 wsi/display: Initially set default HDR metadata from EDID for HDR modes
For a selected non-default imageColorSpace during swapchain creation,
make sure that proper HDR setup also works even if a client app does not
explicitly call vkSetHdrMetadataEXT() in time.

Assign the EDID provided metadata here, so the 1st atomic commit will
set Colorspace and HDR metadata properties on the connector, to make sure
HDR or other wide color gamut modes get enabled.

Without this, the chain->color_outcome_serial would stay at zero and
the properties would not ever get assigned during drm_atomic_commit(),
leaving HDR disabled on the display sink.

Fixes: 13137393f6 ("wsi/display: Expose HDR10 colorspace based on EDID")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit 19b2e3b81b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:54 -08:00
Mario Kleiner
c4e0f4d917 wsi/display: Accept 0 nits for HDR light level properties for "undefined"
CTA-861-G section 6.9.1 Static Metadata Type 1 declares that zero values
for different groups of HDR Metadata properties are allowed, including
zero nits values for max display mastering luminance, max content light
level, max frame-average light level and min display mastering luminance.

A zero value is meant to be treated by the video sink as "undefined" /
"unknown", and handled accordingly. This is common for dynamically
generated visual content.

Therefore don't assert on some minimum nits level > 0, but only check for
a non-negative level.

Fixes: b4176393a0 ("wsi/display: Implement VK_EXT_hdr_metadata on KHR_display swapchain")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Autumn Ashton <misyl@froggi.es>
(cherry picked from commit 19dc09aded)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:54 -08:00
Danylo Piliaiev
f3268818d5 tu: Use cmd->rp_trace u_trace for draw calls
Fixes: 707c97f634 ("tu: Add tracepoints around draws, with shader sha1s.")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
(cherry picked from commit c04e375588)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:53 -08:00
Yiwei Zhang
9e809986f6 panvk: fix mem alloc size for VkBuffer backed by imported blob AHB
For AHB VkBuffer import, the allocationSize comes from the raw external
AHB props query and it can be larger than the underlying buffer memory
requirement. So we must respect the allocationSize for the actual mem
import to support mapping the whole AHB size, and the dedicated buffer
info has to be stripped to obey the spec.

Test: CtsNativeHardwareTestCases no longer crashes on debug build panvk

Fixes: 66bbd9eec8 ("panvk: implement AHB image deferred init and memory alloc")
Tested-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
(cherry picked from commit 4ec2a921d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:53 -08:00
Lionel Landwerlin
8a813632c3 vulkan/runtime: simplify robustness state hashing
We're doing the same in vk_pipeline_precomp_shader_create().

Also fixes valgrind warning due to uninitialized fields

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit fc6d17a290)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:52 -08:00
Daniel Schürmann
b17381dc8d radv/null_device: set more options which affect compilation
Cc: mesa-stable
(cherry picked from commit 23ef756496)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:52 -08:00
David Rosca
7aa2c70759 radv/video: Add NULL checks for picture parameters
Fixes vk_layer_validation_tests PositiveVideoDecode.* and
PositiveVideoDecode*.InlineSessionParams

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit bd151bf8b2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:51 -08:00
David Rosca
11a4adec73 radv/video: Correctly handle no feedback query for encode
Fixes vk_layer_validation_tests PositiveVideoEncodeAV1.*

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 23a3587aa6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:50 -08:00
David Rosca
e21d417234 vulkan/video: Avoid NULL pointers in session parameters
Always copy parameters that are not guarded by a flag, zero init
the structs if not provided by application.

Fixes vk_layer_validation_tests PositiveVideoEncode*.GetEncodedSessionParams

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 6a1c6ab95b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:50 -08:00
Benjamin Cheng
dafde3434a vulkan/video: NULL check codec-specific chain
It seems applications are allowed to do no-op updates by not passing any
codec-specific extension structures.

Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 4d22427079)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:49 -08:00
Timothy Arceri
38e258d5d4 mesa: skip redundant uniform update optimisation if unsafe
If multiple contexts are updating uniform values we can't assume
a uniform update can skip flushing.

Fixes: b32e20e630 ("mesa: skip redundant uniform updates for glUniformHandle")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14129

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 34db720660)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:48 -08:00
Lionel Landwerlin
478d92171d anv: avoid invalid timestamp generation due to skipped commands
We skip the stall emission for STATE_BASE_ADDRESS since this one can
be skipped on Gfx12.5+ and instead add a new sba tracepoint that has
valid timestamps.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 0147908a89 ("anv: predicate emission of STATE_BASE_ADDRESS")
Reviewed-by: Casey Bowman <casey.g.bowman@intel.com>
(cherry picked from commit cff047280a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:48 -08:00
Emma Anholt
96d959986c v3dv: Fix assertion failure for not-found primary_fd during enumeration.
Found when I had v3dv built in my aarch64 turnip setup.

Fixes: 451a0bd490 ("v3dv: use v3d primary node for VK_EXT_physical_device_drm")
(cherry picked from commit bb532a7a39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:47 -08:00
Yiwei Zhang
c167b0a816 glcpp/meson: fix libglcpp generated header dependency
Explicitly declare glcpp-parse.h as a file dependency to ensure
glcpp_parse custom target completes before compiling glcpp-lex.c.

Cc: mesa-stable
(cherry picked from commit 53482178ef)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:47 -08:00
Lionel Landwerlin
ec8518d123 brw: avoid invalid URB messages
Some new CTS tests have geometry shader looking like this :

   void main()
   {
      gl_Position = gl_in[0].gl_Position;
      EmitVertex();
      EndPrimitive();
      // <-- some storage buffer write
   }

The generate shader has :
   - a message to write the position
   - a message to write to the storage buffer
   - a final message to end the thread

This generates an empty EOT URB messages which is apparently not legal
(simulation complains, HW hangs) :

send(8)         nullUD          g126UD          nullUD          0x04088007                0x00000000
                urb MsgDesc: offset 0 SIMD8 write masked  mlen 2 ex_mlen 0 rlen 0 { align1 1Q A@1 EOT };

Instead emit a write with actual data and the mask set at 0 to discard
the effect :

mov(8)          g127<1>UD       0x00000000UD                    { align1 WE_all 1Q };
mov(8)          g125<1>UD       0x00000000UD                    { align1 1Q };
send(8)         nullUD          g126UD          g125UD          0x04088007                0x00000040
                urb MsgDesc: offset 0 SIMD8 write masked  mlen 2 ex_mlen 1 rlen 0 { align1 1Q A@1 EOT };

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit ff57c31696)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:46 -08:00
Ian Romanick
269a6fe030 brw: Correctly generate conditional modifier for BFN
Fixes: 4193895145 ("brw/cmod: Enable limited cmod propagation for BFN")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 34fe598b39)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:46 -08:00
Georg Lehmann
4b46e87296 aco/gfx10_3: work around NSA hazard
4+ dword NSA can hang if exec becomes non-zero again directly before
the instruction.

Foz-DB Navi21:
Totals from 608 (0.74% of 82161) affected shaders:
Instrs: 945138 -> 946431 (+0.14%)
CodeSize: 5171580 -> 5176864 (+0.10%)
Latency: 13356895 -> 13357113 (+0.00%)
InvThroughput: 3043234 -> 3043236 (+0.00%); split: -0.00%, +0.00%

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9852
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13981
Cc: mesa-stable

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
(cherry picked from commit b2172467d1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:45 -08:00
David Rosca
3f169d14d2 radv/video: Fix AV1 bidir compound encode with order_hint disabled
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit bcb6e6b6e6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:45 -08:00
David Rosca
3a63355583 radv/video: Don't require encode FW version >= interface version
Otherwise this breaks backwards compatibility when bumping interface
version for new features.

Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 96db490318)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:44 -08:00
David Rosca
7fb0030c06 radeonsi/vcn: Fix AV1 bidir compound encode with order_hint disabled
Cc: mesa-stable
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
(cherry picked from commit 1a8a8db8c5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:44 -08:00
Yiwei Zhang
e96e71fb79 llvmpipe: misc fixes for sparse binding
This change:
1. Move size validation within sparse binding, but not escape to
   non-sparse code path.
2. Error out if sparse is requested on unsupported platforms.

Fixes: d747c4a874 ("lavapipe: Implement sparse buffers and images")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit e0acc5c2b4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:43 -08:00
Yiwei Zhang
eface4be0d llvmpipe: add a missing alloc error handling in fd import
Fixes: d74ea2c117 ("llvmpipe: Implement dmabuf handling")
Suggested-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 66414c6b70)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:42 -08:00
Yiwei Zhang
36aff3454b llvmpipe: fix udmabuf mmap error check
Upon failing to mmap, MAP_FAILED (void *)-1 is returned instead of NULL.

Fixes: d74ea2c117 ("llvmpipe: Implement dmabuf handling")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 3e07f57d4a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:42 -08:00
Yiwei Zhang
3d9d9ca09b llvmpipe: zero is also a valid fd
Fixes: a062544d3d ("llvmpipe: Use an anonymous file for memory allocations")
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
(cherry picked from commit 3a655c212b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:41 -08:00
Samuel Pitoiset
e817b525d8 radv,aco: wait for all VMEM loads when the prolog loads large 64-bit attributes
Not the most optimal solution but 64-bit vertex attributes are rarely
used. Could still revisit if we find a real use case that matters.

This fixes recent VKCTS coverage:

dEQP-VK.pipeline.fast_linked_library.vertex_input.component_mismatch.r64g64b64.*_to_dvec2
dEQP-VK.pipeline.shader_object_.*.vertex_input.component_mismatch.r64g64b64.*_to_dvec2

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14243
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit a0d607bfdb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:41 -08:00
Samuel Pitoiset
8eec239517 aco: fix reserving VGPRs for 64-bit attributes in VS prologs
Otherwise the fetch index would be overwritten if the attribute format
is 64-bit and more than 2 components are loaded.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14242
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit ba5bf81aa2)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:40 -08:00
Sagar Ghuge
e9f677dff9 anv: Use correct engine class for companion RCS
Fixes: 6f138fe723 ("anv: avoid null pointer access in utrace copies on CCS")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 43d98a3f1a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:38 -08:00
Dylan Baker
4f5c1c6c75 .pick_status.json: Update to 04a0d512fa
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
2025-11-07 08:14:36 -08:00
Dylan Baker
944ec88ca5 VERSION: bump for 25.3.0-rc4
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-11-06 09:02:18 -08:00
Georg Lehmann
7d4557bae8 radv: do not report wave32 in gl_SubgroupSize for Doom Dark Ages
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
The shaders in question use:

(memory_load + (gl_SubgroupSize - 1)) & ~(gl_SubgroupSize - 1)

My guess is that this is supposed to be the subgroup size of whatever
produced the value, not the subgroup size in this shader.
And because in the consumer the workgroup size is 32, we use wave32.

Fixes: a2d3cbac2a ("radv: determine subgroup/wave size early")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14187

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 83e9ae2d5c)

Conflicts:
	src/amd/vulkan/radv_instance.c
	src/amd/vulkan/radv_instance.h
	src/util/driconf.h

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-05 10:18:26 -08:00
Yiwei Zhang
4482281292 panvk: fix sample shading of internal blend shader for MSAA
Align with gallium side. When fixed-function blending is not available,
the internal blend shader is used. This is handled by a single ST_TILE
in the blend shader with the current sample ID, which requires sample
shading enablement.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 763d2418b8)

CI fails removed from cherry-pick as the file doesn't exist on stable,
and the main branch change has only removals.

Conflicts:
	src/panfrost/ci/panfrost-g925-fails.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-05 10:16:55 -08:00
Connor Abbott
1dadb38d7b tu: Fix attachment stores with subpasses with partial views
Subpasses can have different view masks, although this isn't often used.
So we can't use the view mask of the last subpass when deciding what to
store, instead we have to use the same used_views field that's used by
loads and clears.

Noticed by upcoming tests for VK_QCOM_multiview_per_view_render_areas.

Cc: mesa-stable
(cherry picked from commit c0b5c04b84)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 14:12:21 -08:00
Connor Abbott
ef9457d119 tu: Rename tu_render_pass_attachment::clear_views to used_views
It's not just used for clears, it was already used for loads and it
needs to be used for stores too so clear_views was a confusing name.

Cc: mesa-stable
(cherry picked from commit 6c3ed74ed2)

Conflicts:
	src/freedreno/vulkan/tu_pass.cc
	src/freedreno/vulkan/tu_pass.h

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 14:12:20 -08:00
Lionel Landwerlin
9696921018 anv: avoid null pointer access in utrace copies on CCS
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3e0ad0176b ("anv: Emit state cache invalidation after every compute dispatch")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 6f138fe723)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Lionel Landwerlin
30678337dd u_trace: reserve chunk space before emitting copies
Some implementations can emit tracepoints when copying u_trace
buffers. It's important to reserve the slots we want to copy into
before emitting the copies so that both processes don't clash with one
another.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
(cherry picked from commit df5f92d114)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Danylo Piliaiev
eb2668aad7 vulkan: Always fill DS state for EXT_dynamic_rendering_unused_attachments
If renderpass has D/S attachment, but pipeline has D/S as UNDEFINED,
D/S should be properly disabled for the pipeline. The easiest way is to
ensure that D/S state is valid when pipeline's D/S format is UNDEFINED.
So we always create VkPipelineDepthStencilStateCreateInfo.

CC: mesa-stable

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
(cherry picked from commit 2798ef7bfd)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ryan Houdek
e23c722170 freedreno/fdl: Fix typo in tiled_to_linear_2cpp
The non-aarch64 path was copying in the wrong direction.

Fixes: 7a5a33e0e3 ("freedreno/fdl: Add tiling/untiling implementation for a6xx/a7xx")
(cherry picked from commit 455eb2c751)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Mel Henning
2ad12150e8 nak/opt_lop: Don't handle modifiers in dedup_srcs
The handling in dedup_srcs was incorrect because it would apply the
modifier from srcs[i] to the LUT without removing the modifier from the
instruction. We can fix and simplify this code by removing all modifiers
before the dedup_srcs() call, which we were doing immediately after the
call anyway.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13966
Fixes: 66c9c40f68 ("nak: Handle modifiers in dedup_srcs() in opt_lop()")
Reviewed-by: Seán de Búrca <sdeburca@fastmail.net>
Reviewed-by: Lorenzo Rossi <git@rossilorenzo.dev>
(cherry picked from commit 041216e605)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
3109237d7c llvmpipe: Always recompute 1/w
The value depends on the tgsi_interpolate_loc which is not constant for
the loop. llvm should be able to cse in cases where they are the same.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit aa28fcb610)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
775652e08b gallivm/nir/soa: Use the sign of src1 for imod
This is the behavior specified by the nir opcode, the spirv spec and
required by maintenance8.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 4d30da6599)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
51285c6715 lavapipe: Bump MAX_DESCRIPTOR_UNIFORM_BLOCK_SIZE
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 25e678a37d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
c70fd7f766 lavapipe: Zero image null descriptors
The size queries for images do not use function pointers so we need to
be careful that width, height and depth are 0.

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit d6dd96e1c7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Konstantin Seurer
d527eedb15 lavapipe: Bump maxPrimitiveCount
The vulkan spec requires at least 2^29-1.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14212
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit ff145d2ddc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Marek Olšák
7c18540961 Revert ABI breakage "amd: Add user queue HQD count to hw_ip info"
This reverts commit 56d758d321.

It broke ABI between Mesa and libdrm, causing crashes due to stack smashing.

See: https://gitlab.freedesktop.org/mesa/libdrm/-/issues/121#note_3172362

Fixes: 56d758d321
(cherry picked from commit 5d92c92ce5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Janne Grunau
90b6c3a8ac hk: Report the correct plane count in VkDrmFormatModifierProperties2?EXT
Fixes import of planar formats like NV12 in gtk4. Allows
`gst-launch-1.0 v4l2src ! gtk4paintablesink` to use vulkan instead of
falling back to OpenGL.

Closes: #14217
Cc: mesa-stable
Signed-off-by: Janne Grunau <j@jannau.net>
(cherry picked from commit 83b97379dc)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Alyssa Rosenzweig
3dab73159b asahi,ail: fix multi-plane imports
We need to handle plane offsets everywhere. I noticed this broken before but
didn't realize it was a GL driver issue. Fix is easy, wrote this on my sofa
while waking up in the morning.

Fixes gst-launch-1.0 v4l2src ! glimagesink

Note that cheese & snapshot both still hang for some reason due to
libgstpipewire, but the Mesa side should be fine now.

Closes: #14217
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: mesa-stable
(cherry picked from commit aa9f937116)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ian Romanick
55a37838b9 elk: Apply vgrf127 workaround in more cases
No shader-db changes on Broadwell. Older platforms were not tested.

Fixes: e7b7d572b3 ("intel/fs/ra: Re-arrange interference setup")
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 2e8b89ec60)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Ian Romanick
9bad1beb98 brw: Apply Gfx9 vgrf127 workaround in more cases
No shader-db changes on any Intel platform.

fossil-db:

Skylake
Intel(R) HD Graphics 530 (SKL GT2)
Totals:
Cycle count: 57669758527 -> 57669757913 (-0.00%); split: -0.00%, +0.00%

Totals from 10 (0.00% of 1736875) affected shaders:
Cycle count: 274949 -> 274335 (-0.22%); split: -0.36%, +0.14%

This change is likely due to subtle differences of different registers
being allocated.

In addition, fossils/google-meet-clvk/BgBlur.1f58fdf742c27594.1.foz and
fossils/google-meet-clvk/Relight.1f58fdf742c27594.1.foz stopped failing
EU validation on Gfx9 platforms.

Closes: #14171
Fixes: e7b7d572b3 ("intel/fs/ra: Re-arrange interference setup")
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
(cherry picked from commit 3e6af6c5bb)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
Dylan Baker
3086692bcd .pick_status.json: Update to 27d9e4ec2a
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-04 10:16:42 -08:00
David Rosca
ce6c6a7a57 radv/video: Only use write_memory for encode feedback with full support
write_memory is used after encoding every frame to mark the feedback
buffer as ready. Only use it when write_memory can work without PCIe
atomics support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 874e02003a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-03 13:17:41 +01:00
David Rosca
629a0a4dcc radv/video: Introduce two levels of write_memory support
Print warning when using write_memory with firmwares that require
PCIe atomics support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 8e1d74bbb4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-11-03 13:17:38 +01:00
Icenowy Zheng
12c82aaa82 gallivm: orcjit: remember Context in addition to ThreadSafeContext
The llvm::orc::ThreadSafeContext object wraps an llvm::Context and keeps
its reference.

As we are no longer able to squeeze out Context from ThreadSafeContext
in LLVM 21, do not let ThreadSafeContext create Context implicitly for
LLVM 21, instead explicitly create Context and then remember it.

This also eliminates the code creating a Context that is never disposed.

Fixes: cd129dbf8a ("gallivm: support LLVM 21")
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
(cherry picked from commit cc60a7a39d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:14 -07:00
Samuel Pitoiset
1e885e7a88 radv: add a workaround for illegal depth/stencil descriptors with No Man's Sky
Using descriptors with both depth and stencil aspects is illegal in
Vulkan and this hangs the GPU.

Use NULL descriptors to mitigate the issue. Note that AMDVLK also
ignores them.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13325
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit cb4e0c4140)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:13 -07:00
Tapani Pälli
3ddddf78b4 anv: bring back some lost game drirc workarounds for subgroups
Fixes: d39e443ef8 (" anv: add infrastructure for common vk_pipeline")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit f48df6f45c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:12 -07:00
Gert Wollny
86313f9571 r600/sfn: AR loads are not dependend on the future and other code blocks
If the AR is loaded from a register changing that register in a loop was
resulting in a scheduling failure because the AR load was made dependend
on a later instruction. Fix the dependencies by only using dependencies on
older instruuctions in the same block.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14114
Fixes: d21054b4bc ("r600/sfn: Add pass to split addess and index register loads")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 43d9765e35)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:12 -07:00
Paul Gofman
a46307a732 driconf: add a workaround for Investigation Stories : gunsound
CC: mesa-stable
(cherry picked from commit 63aec75981)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:11 -07:00
Dylan Baker
0a0d08dfe0 .pick_status.json: Update to e44a776f47
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-31 12:07:09 -07:00
Faith Ekstrand
182877f3c8 nvk: Don't re-initialize the descriptor writer if the set matches
The logic here before was wrong.  In the case where the set is the same,
it would avoid the flush but then re-initialize anyway, loosing the
dirty information and causing us not to actually flush out all the
descriptors.

Fixes: 1f0fda22f7 ("nvk: Flush descriptor set maps")
(cherry picked from commit 2f6b3b6b91)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:05 -07:00
Eric Engestrom
9aeac1e0a7 util/meson: don't build libmesa_util_clflush unless needed
Fixes: efbecd93ba ("util: Build util/cache_ops_x86.c with -msse2")
(cherry picked from commit 0fe0acd4c3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:05 -07:00
Eric Engestrom
46f0422165 util/meson: don't build libmesa_util_clflushopt unless needed
Fixes: 555881e574 ("util/cache_ops: Add some cache flush helpers")
(cherry picked from commit ccf33664e8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:04 -07:00
Samuel Pitoiset
f69d1abfcf radv: ignore dual-source blending when blending isn't enabled for MRT0
The Vulkan spec says:
    "VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239
     If blending is enabled for any attachment where either the source
     or destination blend factors for that attachment use the secondary
     color input, the maximum value of Location for any output attachment
     statically used in the Fragment Execution Model executed by this
     command must be less than maxFragmentDualSrcAttachments"

Which means it must be disabled.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14190
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit b2badb2b24)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:14:00 -07:00
Eric Engestrom
770e095766 asahi/virtio: fix memleak
Fixes: c64a2bbff5 ("asahi: port to stable uAPI")
(cherry picked from commit fdef10916e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:58 -07:00
Dmitry Osipenko
205fe1a245 virtio/vdrm: Fix varying offsets of struct vdrm_device members
Struct virgl_renderer_capset_drm has a varying size depending on whether
AMDGPU driver is enabled or not. This breaks offset of struct vdrm_device
members for non-AMD drivers when Mesa is built with multiple native context
drivers including the AMD driver. Place varying capsets in the end struct
vdrm_device to mitigate the issue.

Fixes: 5736280730 ("virtio/vdrm: add ENABLE_DRM_AMDGPU for c_args")
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
(cherry picked from commit bd8377bb04)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:58 -07:00
Mike Blumenkrantz
093c7d9d8e zink: don't destroy old push layout when enabling fbfetch descriptor
this may be in use by programs, and adding tracking/refcounting just to
delete a descriptor layout isn't worth the effort

cc: mesa-stable

(cherry picked from commit 272cf1db8e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:57 -07:00
Gert Wollny
2c67b0fac6 r600/sfn: make sure kill and update_exec don't happen in one group
v2: - Correctly test in multi-slot split whether the group has kill if
      we want to add a multi-slot op.
    - update group_has_predicate if an according vector op was added

Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 317345cc98)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:57 -07:00
Gert Wollny
e082f6b6c0 r600/sfn: Track whether a ALU group has a exec flag update
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 0d065a2421)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:56 -07:00
Gert Wollny
a12369eb3d r600/sfn: move some common code into try_readport
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit 51e7c477d6)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:55 -07:00
Gert Wollny
6670d0742b r600/sfn: extract function to update group after instr insert
Fixes: 359bfc3138 ("r600/sfn: make sure that kill and update pred are not in the same group")

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
(cherry picked from commit a7f477b51f)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:55 -07:00
Mike Blumenkrantz
a7a020dde6 zink: collapse mesh pipeline fetching and binding conditionals
this avoids taking the wrong conditional if a pipeline fetch fails

cc: mesa-stable

(cherry picked from commit 343eef990e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:54 -07:00
Mike Blumenkrantz
7e15070ee1 zink: collapse gfx pipeline fetching and binding conditionals
this avoids taking the wrong conditional if a pipeline fetch fails

cc: mesa-stable

(cherry picked from commit 0b24fd174a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:54 -07:00
Sagar Ghuge
0edb1852a7 vulkan/runtime: Fix typo in stack size calculation
Fixes: 69a04151db ("vulkan/runtime: add ray tracing pipeline support")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
(cherry picked from commit a00560f763)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:53 -07:00
Alyssa Rosenzweig
3ce875a2d0 anv: use D3D-compatible texturing for Proton
Intel & AMD Direct3D drivers modify their rounding behaviour for texturing to
match Direct3D expectations. Such behaviour is not conformant in Vulkan, and
Intel hardware lacks a reasonable way to get NVIDIA's behaviour (which uniquely
works for Vulkan & Direct3D). The second best choice is to use
Direct3D-compatible behaviour for Proton (via driconf) and our current
Vulkan-conformant behaviour everywhere else. Given the APIs diverge and there is
no Vulkan extension to control the behaviour explicitly, driconf'ing on the
engineName is the reasonable solution.

anv already has a anv_force_filter_addr_rounding driconf option to force
Direct3D behaviour for certain Direct3D titles. Here we simply apply it to all
D3D10+ titles, aligning us with the Windows driver.

Note that D3D9 does not have this behaviour. We therefore use standard Vulkan
behaviour for D3D9 to avoid breaking D3D9 titles, even though the engineName is
the same as D3D10+.

This is the same solution radv uses, they call it radv_disable_trunc_coord. We
could unify the driconf entries later.

See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38098#note_3166306
for a more detailed analysis, as well as the linked references:

   https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27337
   https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25911
   https://github.com/HansKristian-Work/vkd3d-proton/pull/1884

This fixes misrendering in piles of Direct3D games run on anv via Proton,
including Assassin's Creed Valhalla.

Cc: mesa-stable
Closes: #13886
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Co-authored-by: Calder Young <cgiacun@gmail.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
(cherry picked from commit 7a71952762)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:52 -07:00
Dylan Baker
fd777ce645 .pick_status.json: Update to 3334284845
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38268>
2025-10-30 12:13:41 -07:00
Dylan Baker
315b688976 VERSION: bump for rc3
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-30 11:35:06 -07:00
Job Noorman
3a71d94735 spirv: don't set in_bounds for structs
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The arr::in_bounds field was set unconditionally for every deref created
for a chain. For struct derefs, which don't have this field, this would
write to an unused memory location, which is probably why this never
caused issues.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: f19cbe98e3 ("nir,spirv: Preserve inbounds access information")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 0ac55b786a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:18 -07:00
Benjamin Cheng
8a2bf930bb radv/video: Override H265 SPS unaligned resolutions
VCN requires 64x16 alignment for HEVC. When the app requests non-aligned
resolutions, make up for it with conformance window cropping.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Cc: mesa-stable
(cherry picked from commit cef8eff74d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:18 -07:00
Benjamin Cheng
ac492d42be radv/video: Override H265 SPS block size parameters
VCN only supports this set of parameters.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Cc: mesa-stable
(cherry picked from commit 84b6d8e0d7)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:17 -07:00
Lionel Landwerlin
2e17fd0cb2 vulkan/render_pass: Add a missing sType
Fixes: 3a204d5cf3 ("vulkan/render_pass: Add a better helper for render pass inheritance")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
(cherry picked from commit c5740c2548)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:16 -07:00
Marek Olšák
9311f170c4 zink: fix mesh and task shader pipeline statistics
Fixes: 9d0e73335a - zink: enable GL_EXT_mesh_shader
(cherry picked from commit 41a8c4d37c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:15 -07:00
Dylan Baker
3e227a04b1 .pick_status.json: Update to 32b646c597
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-28 12:53:10 -07:00
Sagar Ghuge
f63a5df30b brw/rt: fix ray_object_(direction|origin) for closest-hit shaders
We were returning world BVH level for origin/direction, this commit
fixes by retuning correct object BVH level origin/direction.

Fixes: aaff191356 ("brw/rt: fix ray_object_(direction|origin) for closest-hit shaders")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 89fbcc8c34)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Sagar Ghuge
9ba765e3e3 brw/rt: Move nir_build_vec3_mat_mult_col_major helper to header
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 3edeb1e191)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mike Blumenkrantz
8010d0cd39 zink: disable primitiveFragmentShadingRateMeshShader feature
features are auto-enabled, but some of them cause validation errors
which are simple to work around

Fixes: 90f3c57337 ("zink: hook up VK_EXT_mesh_shader")
(cherry picked from commit a2ef369abf)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Job Noorman
f1f32d557e ir3/ra: fix assert during file start reset
While accounting for an input register's merge set when resetting the
file start after the preamble, we implicitly assume that the allocated
register is the preferred one by asserting that the register's merge set
offset is not smaller than its physreg (to prevent an underflow).
However, inputs are not guaranteed to have their preferred register
allocated which causes the assert to get triggered.

Fix this by only taking the whole merge set into account for inputs that
actually got their preferred register allocated.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Fixes: 9d4ba885bb ("ir3/ra: make main shader reg select independent of preamble")
(cherry picked from commit f84d85790e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Natalie Vock
05e5db1a4d nir/lower_shader_calls: Repair SSA after wrap_instrs
Wrapping jump instructions that are located inside ifs can break SSA
invariants because the else block no longer dominates the merge block.
Repair the SSA to make the validator happy again.

Cc: mesa-stable
(cherry picked from commit 50e65dac79)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Taras Pisetskyi
5ae8474029 drirc/anv: force_vk_vendor=-1 for Wuthering Waves
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12459

Signed-off-by: Taras Pisetskyi <taras.pisetskyi@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit dcd9b90aff)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
b3470359bf hk: Allocate the temp tile buffer in copy_image_to_image_cpu
We may require a bigger more than 16KiB to handle the image copy.
We now always allocate a buffer to handle it properly fixing the
remaining failures on VKCTS 1.4.4.0 for HIC.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
(cherry picked from commit d37ba302d0)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
5e1a88cea0 hk: Make width and height per block in HIC
We were assuming that every formats used for HIC had a block widgh and
height of 1x1.

This is wrong for compressed formats like BC5, ASTC, ect.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Reviewed-by: Eric Engestrom <eric@igalia.com>
(cherry picked from commit 887f06a966)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Sagar Ghuge
040453857b anv: Call brw_nir_lower_rt_intrinsics_pre_trace lowering pass
Call this pass before nir_lower_shader_calls().

Fixes: d39e443e ("anv: add infrastructure for common vk_pipeline")
Cc: mesa-stable
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit 006085e676)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
28e172e956 hk: Remove unused allocation in queue_submit
Unused and leaking memory, found with address sanitizer.

Fixes: c64a2bbff5 ("asahi: port to stable uAPI")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 64131475a8)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
74880f8954 hk: Disable 1x in sampleLocationsSampleCounts
We don't support it, everyone dropped support for that, let's not expose it.

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 7e636d52f1)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Mary Guillemard
f02f5e217f hk: Fix maxVariableDescriptorCount with inline uniform block
Same problem as NVK on VKCTS 1.4.4.0

Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Signed-off-by: Mary Guillemard <mary@mary.zone>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit 8447b99f61)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Dylan Baker
d9636807f7 intel/compiler/brw: Add assert that we don't have a negative value
Coverity notices that `nir_get_io_index_src_number` could return -1, and
that we use it to index an array. It cannot understand that -1 only
happens for unhandled enum values, but all of these are handled. Add an
assert to help it out.

CID: 1667234
Fixes: 37a9c5411f ("brw: serialize messages on Gfx12.x if required")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
(cherry picked from commit a5b9f428f9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Dylan Baker
b768139858 .pick_status.json: Update to 45a762727c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Olivia Lee
498a25cfb8 hk: fix data race when initializing poly_heap
hk_heap is called during command buffer recording, which may be
concurrent, so writing dev->heap without synchronization is a data race.

Signed-off-by: Olivia Lee <olivia.lee@collabora.com>
Fixes: 5bc8284816 ("hk: add Vulkan driver for Apple GPUs")
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
(cherry picked from commit bca29b1c92)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-27 09:34:33 -07:00
Connor Abbott
9728bbf7b0 tu: Also disable stencil load for attachments not in GMEM
We were accidentally still emitting loads for D32S8 resolve attachments.

Cc: mesa-stable
(cherry picked from commit a3652af380)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:30 -07:00
Connor Abbott
f142fdc273 tu: Fix 3d load path with D24S8 on a7xx
We need to always use the FMT6_Z24S8_AS_R8G8B8A8 format for GMEM even if
UBWC is disabled, as already done for the 2d store path. Because we
use the pre-baked RB_MRT_BUF_INFO register value, this means we have to
override it.

Cc: mesa-stable
(cherry picked from commit 9417ce287c)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:28 -07:00
Connor Abbott
1c52a94428 tu: Don't patch GMEM for input attachments never in GMEM
This can happen if we resolve to a resolve attachment and then use that
resolve attachment as an input attachment in a later subpass. We don't
need to put it in GMEM, but it's still considered "written" because
input attachment reads need a dependency after the resolve.

MSRTSS input attachment tests effectively created such a scenario after
lowering to transient multisample attachments and inserting resolves.

Cc: mesa-stable
(cherry picked from commit d491a79027)

Conflicts:
	src/freedreno/vulkan/tu_pass.cc

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 08:07:28 -07:00
Faith Ekstrand
2cfd3c52b2 panvk/shader: Use the right copy size for deserializing dynamic UBOs/SSBOs
Fixes: 563823c9ca ("panvk: Implement vk_shader")
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit 64ad337036)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:08 -07:00
Faith Ekstrand
606ebb042e panvk/shader: [de]serialize desc_info.max_varying_loads
Fixes: de86641d3f ("panvk: Limit AD allocation to max var loads in v9+")
Acked-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
(cherry picked from commit a546484ed9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:07 -07:00
Samuel Pitoiset
424f37b348 radv: dirty dynamic descriptors when required
The user SGPRS might be different and dynamic descriptors need to be
re-emitted again

This fixes a regression with ANGLE, and VCKTS is currently missing
coverage.

Fixes: a47952d495 ("radv: upload and emit dynamic descriptors separately from push constants")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14146
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
(cherry picked from commit 54a6c81d3a)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:06 -07:00
Faith Ekstrand
7f75931019 nvk: Capture/replay buffer addresses for EDB capture/replay
Fixes: 3f1c3f04be ("nvk: Advertise VK_EXT_descriptor_buffer")
(cherry picked from commit 998dbd43d3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:05 -07:00
Faith Ekstrand
ba107091c2 nvk: Look at the right pointer in GetDescriptorInfo for SSBOs
It doesn't actually matter but we shouldn't poke at the wrong union
field.

Fixes: 77db71db7d ("nvk: Implement GetDescriptorEXT")
(cherry picked from commit a13474939d)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:05 -07:00
Faith Ekstrand
b74000dbce nvk: Emit inactive vertex attributes
VK_KHR_maintenance9 requires that vertex attributes in shaders which map
to vertex attributes that aren't bound at the API return a consistent
value.  In order to do this, we need toemit SET_VERTEX_ATTRIBUTE_A, even
for unused attributes.  The RGBA32F format was chosen to ensure we
return (0, 0, 0, 0) from unbound attributes.

Fixes: 7692d3c0e1 ("nvk: Advertise VK_KHR_maintenance9")
(cherry picked from commit d39221cef3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:04 -07:00
Mauro Rossi
fb2273df78 util: Fix gnu-empty-initializer error
Fixes the following building error happening with clang:

../src/util/os_file.c:291:29: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
   struct epoll_event evt = {};
                            ^
1 error generated.

Fixes: 17e28652 ("util: mimic KCMP_FILE via epoll when KCMP is missing")
Cc: "25.3"
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
(cherry picked from commit 7bbbfa6670)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:03 -07:00
Connor Abbott
65eb3aed4b tu: Fix RT count with remapped color attachments
The index of each RT is the remapped color attachment index, so we have
to use the remapped indices when telling the HW the number of RTs.

This fixes KHR-GLES3.framebuffer_blit.scissor_blit on ANGLE once we
enabled VK_EXT_multisampled_render_to_single_sampled, which switched
ANGLE to using dynamic rendering with
VK_KHR_dynamic_rendering_local_read.

Fixes: d50eef5b06 ("tu: Support color attachment remapping")
(cherry picked from commit 8d276e0d70)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:02 -07:00
Lionel Landwerlin
a9653fa019 anv: destroy sets when destroying pool
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14169
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit 2689056c82)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:02 -07:00
Lionel Landwerlin
159d397437 anv/brw: fix output tcs vertices
brw_prog_tcs_data::instances can be divided by vertices per threads on
earlier generations.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a91e0e0d61 ("brw: add support for separate tessellation shader compilation")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit e450297ea9)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:01 -07:00
Xaver Hugl
6a7effe059 vulkan/wsi: remove support for VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
It's not really clear whether or not it should use gamma 2.2 or the piece-wise
transfer function, or how clients would use it for wider gamut in general.
Currently no compositors I know of support ext_srgb, so this shouldn't affect
applications in practice.

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 14fcf145e3)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:55:00 -07:00
Konstantin Seurer
2a0a2cc5b0 aco: Fixup out_launch_size_y in the RT prolog for 1D dispatch
launch_size_y is set to ACO_RT_CONVERTED_2D_LAUNCH_SIZE for 1D
dispatches. The prolog needs to set it to 1 so that the app shader
loads the correct value.

cc: mesa-stable

(cherry picked from commit 47ffe2ecd4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:59 -07:00
Faith Ekstrand
3f9f4d79d3 nvk: Disable sampleLocationsSampleCounts for 1x MSAA
Suggested-by: Mel Henning <mhenning@darkrefraction.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14108
Fixes: a34edc7500 ("nvk: Fill out sample locations on Maxwell B+")
(cherry picked from commit aa0f404f7b)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:59 -07:00
Faith Ekstrand
cd253df92a nvk: Include the chipset in the pipeline/binary cache UUID
Cc: mesa-stable
(cherry picked from commit d1793c7a59)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:58 -07:00
Lionel Landwerlin
bfd09d9891 nir/lower_io: add missing levels intrinsics to get_io_index_src_number
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c7ac46a1d8 ("nir/lower_io: add get_io_index_src_number support for image intrinsics")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
(cherry picked from commit aa929ea706)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:57 -07:00
Lionel Landwerlin
dcecd8fd1e brw: handle GLSL/GLSL tessellation parameters
Apparently various tessellation parameters come specified from
TESS_EVAL stage in GLSL while they come from the TESS_CTRL stage in
HLSL.

We switch to store the tesselation params more like shader_info with 0
values for unspecified fields. That let's us merge it with a simple OR
with values from from tcs/tes and the resulting merge can be used for
state programming.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: a91e0e0d61 ("brw: add support for separate tessellation shader compilation")
Fixes: 50fd669294 ("anv: prep work for separate tessellation shaders")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit f3df267735)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:56 -07:00
Lionel Landwerlin
1648f759c1 anv: rename structure holding 3DSTATE_WM_DEPTH_STENCIL state
Cc stable for the next commit.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
(cherry picked from commit 8d05b7b72e)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:55 -07:00
Valentine Burley
d5f7261ce5 tu: Fix maxVariableDescriptorCount with inline uniform blocks
It must not be larger than maxInlineUniformBlockSize.

Fixes VKCTS 1.4.4.0's
dEQP-VK.api.maintenance3_check.support_count_inline_uniform_block*.

Cc: mesa-stable

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

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:54 -07:00
Valentine Burley
2c1c52a8c8 tu: Fix indexing with variable descriptor count
Based on RADV.
The Vulkan spec says:
    "If bindingCount is zero or if this structure is not included in
     the pNext chain, the VkDescriptorBindingFlags for each descriptor
     set layout binding is considered to be zero. Otherwise, the
     descriptor set layout binding at
     VkDescriptorSetLayoutCreateInfo::pBindings[i] uses the flags in
     pBindingFlags[i]."

Fixes dEQP-VK.api.maintenance3_check.* in VKCTS 1.4.4.0.

Cc: mesa-stable

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
(cherry picked from commit 17e25b4983)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:52 -07:00
Dylan Baker
fe3a3b08c9 .pick_status.json: Update to fd55e874ed
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38167>
2025-10-24 07:54:46 -07:00
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
2660 changed files with 95019 additions and 148797 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

@ -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,6 +36,8 @@
# 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
@ -95,6 +97,7 @@
optional: true
- job: debian-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-vk-manual:
extends:
@ -108,6 +111,7 @@
optional: true
- job: debian-build-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl:
extends:
@ -119,6 +123,7 @@
optional: true
- job: debian-x86_64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-x86_64-test-gl-manual:
extends:
@ -132,20 +137,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 +157,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-vk:
extends:
@ -179,6 +172,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-vk:
extends:
@ -192,6 +186,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-gl:
extends:
@ -203,6 +198,7 @@
optional: true
- job: debian-arm64
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-asan-gl:
extends:
@ -217,6 +213,7 @@
optional: true
- job: debian-arm64-asan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm64-test-ubsan-gl:
extends:
@ -230,6 +227,7 @@
optional: true
- job: debian-arm64-ubsan
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test:
extends:
@ -249,6 +247,7 @@
optional: true
- job: debian-arm32
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-gl:
extends:
@ -260,6 +259,7 @@
optional: true
- job: debian-arm32
artifacts: false
- !reference [.ci-tron-test, needs]
.ci-tron-arm32-test-asan-gl:
extends:
@ -274,3 +274,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

@ -36,7 +36,6 @@
# collabora | 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,27 +292,6 @@
- !reference [.pengutronix-farm-rules, rules]
.lumag-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
.lumag-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]
# Skip container & build jobs when disabling any farm, and run them if any
# farm gets re-enabled.
# Only apply these rules in MR context, because otherwise we get a false
@ -370,10 +348,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

@ -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

@ -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

@ -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']

18902
.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.1

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,8 @@ 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 +468,8 @@ 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

View file

@ -136,6 +136,7 @@ Bug fixes
- 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
@ -233,6 +234,8 @@ Bug fixes
- nvk: test_conditional_rendering fails on vkd3d-proton
- Segfault in x11_xlib_display_is_thread_safe
- [ANV][BMG] Witcher 3 ray tracing freeze on a Arc b580
- [ANV][BMG] Witcher 3 ray tracing freeze on a Arc b580
- [ANV][BMG] Witcher 3 ray tracing freeze on a Arc b580
- anv: optimize utrace overhead from bo memset
- radv: watching vp9 encoded video with vulkan hwdecode result in artifacts
- ci: zink-venus-lavapipe errors
@ -299,6 +302,7 @@ Bug fixes
- radv: regression in KHR-GL46.gpu_shader5_gl.float_encoding
- !36097 breaks Xwayland (& others)
- GPU process crash via WebGPU shader - heap-buffer-overflow in Mesa build_interference_graph
- GPU process crash via WebGPU shader - heap-buffer-overflow in Mesa build_interference_graph
- radeonsi: Broken VAAPI video color conversion
- Gallium HUD broken since !34054

View file

@ -19,8 +19,7 @@ SHA checksums
::
SHA256: 059d0d985622f49588f01aa29152804f4da8ffe6add046e00a52923379c2d8da mesa-25.3.1.tar.xz
SHA512: 7e2f7295f1f4df129935b60d75c890f6ae585ecc511f69f55a61826df5f2434ffdb4109c632af9842a986bf9beed430a0404d377e8335b71fa36682bd10533ba mesa-25.3.1.tar.xz
TBD.
New features

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 +0,0 @@
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

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

@ -1491,6 +1491,27 @@ struct drm_amdgpu_info_hw_ip {
__u32 ip_discovery_version;
};
/* 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 {
/** Max handles as supported by firmware for UVD */
__u32 uvd_max_handles;
@ -1554,39 +1575,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

@ -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

@ -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',
@ -256,9 +250,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 +272,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 +289,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 +367,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 +675,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 +764,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 +798,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 +830,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 +846,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 +1140,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 +1228,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 +1465,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 +1612,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'
@ -1948,7 +1899,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
@ -2330,13 +2280,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,9 +347,8 @@
.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:
@ -419,6 +418,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 +490,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:
@ -501,6 +519,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 +532,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.*

View file

@ -411,3 +411,7 @@ KHR-GL46.sparse_texture2_tests.UncommittedRegionsAccess_texture_cube_map_r32i,Fa
KHR-GL46.sparse_texture2_tests.UncommittedRegionsAccess_texture_2d_multisample_r32ui,Fail
KHR-GL46.sparse_texture2_tests.StandardPageSizesTestCase_texture_1d_array_r32ui,Fail
KHR-GL46.sparse_texture2_tests.UncommittedRegionsAccess_texture_2d_array_rg16f,Fail
# New failures with GL CTS 4.6.6.0
KHR-GL46.es_31_compatibility.shader_image_load_store.basic-allFormats-store-fs,Fail
KHR-GL46.direct_state_access.vertex_arrays_vertex_buffers_errors,Fail

View file

@ -34,5 +34,3 @@ spec@arb_timer_query@timestamp-get
dEQP-GLES3.functional.occlusion_query.scissor_depth_write_stencil_write
dEQP-GLES3.functional.occlusion_query.conservative_scissor_depth_clear_stencil_clear
KHR-Single-GL46.arrays_of_arrays_gl.AtomicDeclaration

View file

@ -7,4 +7,3 @@ KHR-GL46.copy_image.functional
KHR-GL46.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_MaxPatchVertices_Position_PointSize
KHR-GL46.texture_swizzle.smoke
KHR-Single-GL46.arrays_of_arrays_gl.AtomicUsage
KHR-Single-GL46.arrays_of_arrays_gl.AtomicDeclaration

View file

@ -1,2 +0,0 @@
dEQP-VK.pipeline.shader_object_unlinked_spirv.multisample.m10_resolve.resolve_cmd.d32_sfloat_s8_uint.depth.max.regions_multilayer.no_flags,Fail
dEQP-VK.pipeline.monolithic.multisample.m10_resolve.resolve_cmd.d32_sfloat.depth.max.regions_multilayer.no_flags,Fail

View file

@ -1,2 +0,0 @@
dEQP-VK.pipeline.shader_object_unlinked_spirv.multisample.m10_resolve.resolve_cmd.d32_sfloat_s8_uint.depth.max.regions_multilayer.no_flags
dEQP-VK.pipeline.monolithic.multisample.m10_resolve.resolve_cmd.d32_sfloat.depth.max.regions_multilayer.no_flags

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