[Git][xorg-team/lib/mesa][debian-unstable] 229 commits: docs: add sha sum for 26.1.4
"Timo Aaltonen (@tjaalton)" <[email protected]>
| Newsgroups | gmane.linux.debian.devel.x |
|---|---|
| Message-ID | <[email protected]> |
Timo Aaltonen pushed to branch debian-unstable at X Strike Force / lib / mesa Commits: e462dccf by Eric Engestrom at 2026-07-01T16:33:04+02:00 docs: add sha sum for 26.1.4 - - - - - de18f613 by Eric Engestrom at 2026-07-15T17:12:16+02:00 .pick_status.json: Update to 0ab29c1d21d56f1780bd057176c998fda738402a Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 02fd3dfe by Pohsiang (John) Hsu at 2026-07-15T17:12:16+02:00 d3d12: fix build break in staging/26.1 due to DirectX header issue Fixes #15819 - mesa metapackage doesn't build from artix linux template Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ffc15bf9 by Georg Lehmann at 2026-07-15T17:12:16+02:00 spirv: add option to treat FMax/FMin/FClamp like NMax Backport-to: 26.1 Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 0de195e7be646114069aded0a689d861e4a5467f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 9912cfd5 by Georg Lehmann at 2026-07-15T17:12:16+02:00 radv: add radv_force_nan_preserve_min_max option Backport-to: 26.1 Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit a41827c4c137f23868f531d34bdf43aaf4dbf7ef) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 1db82fca by Georg Lehmann at 2026-07-15T17:12:16+02:00 radv: enable radv_force_nan_preserve_min_max for DOOM: The Dark Ages It's very likely that the game's new DLC area relies on OpFClamp(x, 0.0, 1.0) to remove NaNs, but only OpNClamp has to return 0.0 for that. Sadly I can't 100% prove it's a game bug because the issue gets baked into renderdoc captures. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15818 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15827 Backport-to: 26.1 Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit c1c734d006f3c579978312850e834142322ba5ea) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - c531b32c by Daivik Bhatia at 2026-07-15T17:12:16+02:00 nir/opt_copy_prop_vars: kill stale entries when source deref is written When a write happens, it's not enough to just invalidate copies with matching destinations. We also need to invalidate copies in other variables if their source aliases the memory we just wrote to. Otherwise, we end up propagating stale sources after the memory is modified. Fixes: 731e9fd5 ("nir/nir_opt_copy_prop_vars: avoid comparison explosion") Fixes: 579bc1e7 ("treewide: Drop some is_ssa if's") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/14465 Co-authored-by: Timothy Arceri <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 272665305264d27600dcf7838eb0257324ad9ab4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 81efe240 by Eric Engestrom at 2026-07-15T17:12:16+02:00 zink/ci: drop leftover anv-cml deqp suite Fixes: eac18963b0ecaa82b5e0 ("zink/ci: Remove zink-anv-cml-asan job") (cherry picked from commit b100edba5c0107e63181168c00179425b2772209) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 2a711ee9 by Marek Olšák at 2026-07-15T17:12:16+02:00 radv: disable AMD_device_coherent_memory on gfx12 due to out of order behavior Cc: mesa-stable Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 7fa1b48755647b9468f5c603810260edea9de996) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7040a0cc by Simon Perretta at 2026-07-15T17:12:16+02:00 pco: allow non-pure integer formats for image xchg atomics Fixes: c3325b22d85 ("pco: image atomics support") Signed-off-by: Simon Perretta <[email protected]> Acked-by: Frank Binns <[email protected]> (cherry picked from commit c05334058d5417b0986578c94b9aa6ab601f3ba8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 20ba37a0 by Samuel Pitoiset at 2026-07-15T17:12:16+02:00 vulkan,anv,radv: do not crash when querying descriptor size for unsupported type When VK_KHR_maintenance5 is enabled, the Vulkan spec says: "Physical-device-level functions can now be called with any value in the valid range for a type beyond the defined enumerants, such that applications can avoid checking individual features, extensions, or versions before querying supported properties of a particular enumerant." Let's return 0 instead of crashing. This fixes a crash with a recent test dEQP-VK.binding_model.descriptor_heap.limit.get_descriptor_size. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 8478de3755dd74e31550e85346844256c578f686) [Eric: 26.1 doesn't have 9231204026210e84ddb0, so the anv hunk was dropped] Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - a2724c69 by Timur Kristóf at 2026-07-15T17:12:16+02:00 radv: Wait for idle after every submission on GFX6-7 Due to HW and FW bugs, EVENT_WRITE_EOP on GFX6-7 can't wait for L2 writeback and signals the fence while L2 is still dirty, resulting in VM faults. GFX6-7 will hang if the VMID is invalidated while the L2 is still busy. See the code comment on radv_create_flush_postamble() for more details on what we know about these issues. Compared to what was there before, this commit further clarifies why the flush is necessary, uses the same implementation on both GFX6-7 and additionally adds a CB/DB/meta flush. Cc: mesa-stable Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 80ae3148e9972928e2456ab4aed612a39f4d6739) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 1079bf95 by Timur Kristóf at 2026-07-15T17:12:16+02:00 radeonsi: Wait for shaders and flush L2 after every submission on GFX6-7 Same rationale as the RADV patch doing the same. Cc: mesa-stable Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 998611e943658774c2780e6a892b7a3aaf4a55a7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 5c8f6782 by Timur Kristóf at 2026-07-15T17:12:16+02:00 Revert "radv: Mitigate GPU hang on Hawaii in Dota 2 and RotTR" This reverts commit 8ea08747b86bba88998333dc04d983c2a2391e48. It turned out that the Hawaii hang was actually just another power management issue, which happened because the GPU was unstable at its highest SCLK level. A fix to the power management issue was accepted upstream in the Linux kernel in commit 4724bc5b8d78 which adds an SCLK cap of 1040 Mhz (reduced from 1070 MHz) to the problematic Hawaii board. So, the Mesa workaround has been incorrect and unnecessary, and should be reverted because it regressed performance. Cc: mesa-stable Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 738de1f7a49f2bc8b6d72e6fb172dadfc3a1b8a9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 659bf7dc by Samuel Pitoiset at 2026-07-15T17:12:16+02:00 zink: fix a memleak in zink_init_format_props() If the A8_UNORM workaround is enabled. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 60ef62fba63a94290df96729bf6c6b246c5d0bc5) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - dcd8dd39 by Jeremy Huddleston at 2026-07-15T17:12:16+02:00 glx/apple: silence OpenGL deprecation warnings OpenGL.framework and all of its CGL/GL entry points are annotated OPENGL_DEPRECATED(_, 10.14) in the SDK headers. Building src/glx/apple against that produces a flood of deprecation warnings for every CGL call and every gl* symbol referenced by name. Add -DGL_SILENCE_DEPRECATION to silence them. CC: mesa-stable Signed-off-by: Jeremy Huddleston Sequoia <[email protected]> (cherry picked from commit 68bef96fa70bbc5fe66a3edd53c40385ceef5f3d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b796afbb by Samuel Pitoiset at 2026-07-15T17:12:16+02:00 glsl: fix a memleak in link_assign_subroutine_types() Detected by ASAN with eg. KHR-GL46.explicit_uniform_location.subroutine-index-negative-link-index-reused. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 1f35f5891a484e96c9437a70adfc6b682cf930b8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ca5f4b8c by Vincent Cloutier at 2026-07-15T17:12:16+02:00 etnaviv: use buffer resource accessor for indirect draws Indirect draw command storage is a Gallium PIPE_BUFFER. The etna_draw_indirect() relocation path used etna_resource(buffer)->bo, but etna_resource() is for non-buffer texture/render resources and asserts when passed a PIPE_BUFFER. Use etna_buffer_resource() for the indirect draw command buffer, matching the resource split introduced for PIPE_BUFFER resources. Fixes: d738b3ea2b78 ("etnaviv: split PIPE_BUFFER resources from other types of resources") Assisted-by: OpenAI (gpt-5.5) Reviewed-by: Christian Gmeiner <[email protected]> (cherry picked from commit 1635938004d07cb4ab2f95dffd169091200c17d8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - d6578345 by Marek Olšák at 2026-07-15T17:12:16+02:00 ac/nir: fix incorrect upper bound for view_index Cc: mesa-stable Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> (cherry picked from commit 794a96d03d14890b6d7d4569a480cb81458f2207) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 284d936b by Rhys Perry at 2026-07-15T17:12:16+02:00 radv: set RADV_CMD_DIRTY_GFX12_HIZ_WA_STATE around attachment clears Usually, this would be set already, but attachment clears can unconditionally enable HiZ and wouldn't set this before/after the clear. This was causing HiZ to be enabled even when the metadata would indicate it was invalid if CmdBeginRendering with a stencil clear is followed by CmdExecuteCommands (which only disables HiZ if this dirty bit is set). This may have also caused vkCmdClearAttachments to not enable HiZ when it should have, or an attachment clear to leave HiZ enabled if the next command is a draw with the same depth/stencil state as the meta pipeline. Fixes artifacts after opening the first outside door in Far Cry with 2x MSAA and very high settings. Signed-off-by: Rhys Perry <[email protected]> Fixes: 0d4d73a7807 ("radv: implement an alternative workaround for HiZ on GFX12") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15538 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15537 Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 166da9fe46c6038a44b5ef9d01a57fe43d69a822) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - e2aeb5a8 by Karol Herbst at 2026-07-15T17:12:16+02:00 gallium: remove PIPE_BARRIER_GLOBAL_BUFFER It's equivalent enough to PIPE_BARRIER_SHADER_BUFFER, so just rely on the later. Fixes a regression caused by a zink change not handling PIPE_BARRIER_GLOBAL_BUFFER, but removing this and switch rusticl over to PIPE_BARRIER_SHADER_BUFFER should be more robust overall. Fixes: c4cb6fdb5af ("zink: always flush specified memory access for glMemoryBarrier calls") Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 68f608cc81a7be12ffb2c1627964061433257fe5) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 71c343c4 by Valentine Burley at 2026-07-15T17:12:17+02:00 tu: Fix uninitialized gmem_offset when a GMEM layout is impossible If a GMEM allocation fails, the layout is incorrectly treated as valid, allowing attachments with uninitialized gmem_offset values to be referenced from GMEM. Stop processing the layout once allocation fails. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15760 Cc: mesa-stable Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit d8169d64a400d616df38db57d0f5673cc2b2244a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 24d165e4 by Karol Herbst at 2026-07-15T17:12:17+02:00 rusticl/device: fix long vector_width queries on devices without int64 support Backport-to: * (cherry picked from commit 33e6f77bde0b524c5613df506b896a6b27809a99) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 3beebb22 by Mel Henning at 2026-07-15T17:12:17+02:00 nvk: Fix DGC localsize computation The last parameter to nir_ubitfield_extract_imm is size, not the last bit. Fixes dEQP-VK.dgc.ext.stat_query.comp_inv_monolithic Fixes: 662a346ce3a ("nvk: Multiply by local_size for CS invocations in DGC codepath") Reviewed-by: Mary Guillemard <[email protected]> (cherry picked from commit 5875055a74ad15702ee467c2f6fa27bd6c0e9835) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ae0d4753 by Vinson Lee at 2026-07-15T17:12:17+02:00 util/tests: replace sprintf with snprintf in cache tests ../src/util/tests/cache_test.cpp:912:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:913:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:917:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:918:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:1428:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:1459:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:1463:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:1497:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] ../src/util/tests/cache_test.cpp:1501:4: warning: 'sprintf' is deprecated [-Wdeprecated-declarations] Replace all sprintf(buf, ...) calls with snprintf(buf, sizeof(buf), ...) to fix deprecated-declarations warnings on macOS. Fixes: 32fe60e8c429 ("util/tests/cache: Add unit test for combined FOZ cache") Fixes: 87a25adf087b ("util/cache: Add test for disk_cache_delete_old_cache") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Karmjit Mahil <[email protected]> (cherry picked from commit d283e09b3f28aa55b9bc6a40784e82aa3eddf90c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 025a41a2 by Samuel Pitoiset at 2026-07-15T17:12:17+02:00 loader: fix a memleak Detected by ASAN. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 272662df8a5d9eb4d82d81385f9473685af38f20) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 71b2b1a7 by JaeHoon Lee at 2026-07-15T17:12:17+02:00 v3d: fix slot and input indexing in v3d_set_global_binding The bind loop iterated i over [first, first + count) but indexed the global_buffers array with util_dynarray_element(.., first + i) and the input resources[]/handles[] arrays with [i]. That double-offsets the destination slot -- reading out of bounds once first > 0 -- and reads the wrong input entry. Iterate i over [0, count) so the slot index is first + i and the input index is i. Fixes: 3889a8e26ce3 ("v3d: implement gallium APIs for OpenCL support") Signed-off-by: JaeHoon Lee <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 64763b243c07104b73893af7cf8e2c96c9eece34) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - f78a12a8 by Samuel Pitoiset at 2026-07-15T17:12:17+02:00 kopper: fix a memleak Detected by ASAN. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit fec633a865dd9d443604483a70610ea6451e7732) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - c7f347db by Samuel Pitoiset at 2026-07-15T17:12:17+02:00 zink: fix a memleak with fences Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 8b126ded96f04ba964ac34681389e55792a00e3d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7b76660b by Samuel Pitoiset at 2026-07-15T17:12:17+02:00 zink: fix a memleak with the emulated GS NIR shader Detected by ASAN. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit bb90c787ea8e3b0b05b91af49f72af7326ffc264) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - d44676e2 by Samuel Pitoiset at 2026-07-15T17:12:17+02:00 zink: fix a memleak with sampler state Detected by ASAN. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit bf5e221666e83723d950b874cb251415226a7ba7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 0c4ce93e by Matt Turner at 2026-07-15T17:12:17+02:00 nir/tests: allow relative error in compare_inexact Patterns like ~f2f64(u2f(a)) -> u2f64(a) can produce large absolute differences when the inputs are large-magnitude, even though the relative error is tiny (limited by the intermediate float precision). Add a relative tolerance check: if diff/scale <= tol, treat the values as close enough. Fixes: 363b2655b6e ("nir: Add a unit test base class for algebraic patterns") (cherry picked from commit 252494091d9b27eda8493e47c77fbab0312e999e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 71446c36 by Matt Turner at 2026-07-15T17:12:17+02:00 nir: fix f2u/f2i constant folding to poison NaN and out-of-range inputs Two fixes to the conv_expr template used for f2u*/f2i* constant folding: - The original code did not check for NaN inputs at all; a NaN src0 would silently produce an undefined integer result. Add an isnan() check so NaN inputs set the poison flag. - The range check used `src0 > u_uintN_max(N)` / `src0 > u_intN_max(N)`. When these integer bounds are converted to float for comparison they round up to the next power of 2, making the `>` test false for inputs that are out of range but equal to that power of 2. Use `>= 2^N` / `>= 2^(N-1)` instead; powers of 2 are exactly representable in IEEE 754. Fixes: 045ae759a54 ("nir: Specify f2i/f2u as undefined if the float is out of range of the int.") (cherry picked from commit dcf3bd4046148fc838a7dcfb941e26f6ae3ecd72) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 780802c1 by Matt Turner at 2026-07-15T17:12:17+02:00 nir: use i2f32 for patterns with signed-extraction opcodes extract_i16 and extract_i8 sign-extend their results to 32 bits. The patterns converting that result through float incorrectly used u2f32, which reinterprets a negative sign-extended value as a large unsigned integer. Use i2f32 so negative values remain negative. Fixes: b30c0d82642 ("nir/algebraic: optimize exact f2u32(fmul(unpack_norm))") (cherry picked from commit ee5b74db1c045376b289094ef78fa00a40709ea0) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7d26714a by Matt Turner at 2026-07-15T17:12:17+02:00 nir: fix pack_uvec4_to_uint to mask input components to 8 bits Without `& 0xff`, high bits from one component pollute the OR result. For example, src0.x = 0xffffff81 sets bits 8-31 in the output, so the shifted contributions of src0.y/z/w are ORed into already-set bits rather than their intended bit positions. Fixes: 9b8786eba95 ("nir: Add lowering support for packing opcodes.") (cherry picked from commit 5f530fa829a6409daf17778cb57ee5dd1f727472) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - e80db509 by Matt Turner at 2026-07-15T17:12:17+02:00 nir/tests: fall back to integer comparison when float interpretation is NaN When constant values have bit patterns that are NaN when reinterpreted as float (e.g. INT64_MAX = 0x7FFFFFFFFFFFFFFF), the floating-point comparison in the inexact path is meaningless. For non-float outputs, fall back to a relative integer comparison in that case. This avoids the need to add an unconditional NaN skip to compare_inexact, which would mask bugs like fdiv(0.0, 0.0) -> 1.0 (as discussed in note https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42236#note_3528012). Fixes: 363b2655b6e ("nir: Add a unit test base class for algebraic patterns") (cherry picked from commit fa300ff513bb82ea851fbd2e98a03b31711a4005) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ed6ccee1 by Stijn Tintel at 2026-07-15T17:12:17+02:00 rocket: fix mmap leak in buffer map/unmap rkt_buffer_map() creates an mmap() mapping for every buffer map call, but rkt_buffer_unmap() never calls munmap(). Repeated inference eventually exhausts the process address space and causes mmap() to fail. Store the mapping base address in a new rkt_transfer struct and unmap it when the transfer is released. Fixes: 5b829658f74f ("rocket: Initial commit of a driver for Rockchip's NPU") Assisted-by: ChatGPT (GPT-5.5 Thinking) Assisted-by: Qwen Code (Qwen3.6-27B) Signed-off-by: Stijn Tintel <[email protected]> (cherry picked from commit 75d5cded5a582f721f1cebc7b97d1366eb3e1d85) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 27736222 by Hans-Kristian Arntzen at 2026-07-15T17:12:17+02:00 radv: Consider VkImageView usage rather than VkImage usage in feedback. Signed-off-by: Hans-Kristian Arntzen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Cc: mesa-stable (cherry picked from commit 58669507e917e35a49ec94cd59a6e58625062515) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 29155745 by Wujian Sun at 2026-07-15T17:12:17+02:00 mesa: Allow GL_SRGB_ALPHA_EXT as color-renderable when EXT_sRGB is supported Per the GL_EXT_sRGB specification, GL_SRGB_ALPHA_EXT is allowed for rendering but not enforced as a required format when the extension is advertised. The previous code unconditionally rejected both GL_SRGB_EXT and GL_SRGB_ALPHA_EXT as framebuffer texture attachments in GLES contexts. Fixed the webgl 1.0.3 test case: conformance/extensions/ext-sRGB.html Fixed ES2 cts: dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb_alpha_unsigned_byte QualityWarning (Framebuffer object could have checked as complete but did not.) Fixes: 779ea64c ("mesa: fix and advertise GL_EXT_sRGB") Reviewed-by: Erik Faye-Lund <[email protected]> Signed-off-by: Wujian Sun <[email protected]> (cherry picked from commit 8aa0199f35b324a370353dc91fc85ccb1e1bf899) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b1d9f5c9 by inspector-ambitious at 2026-07-15T17:12:17+02:00 loader: fix loader_open_render_node_platform_devices result allocation Fixes: 7e76c676322d7772849c ("kmsro: look for graphics capable screen as renderonly device") (cherry picked from commit 41aeb27cb30d646d09f03b20850e6cdff2c1e184) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 8109442e by Eric Engestrom at 2026-07-15T17:12:17+02:00 loader: move variable to correct scope This resets it in every iteration, avoiding false-positives. Fixes: 3c977f55f5afd8b34c23 ("loader: add driver list as parameter in loader_open_render_node_platform_device()") Reported-by: Philipp Zabel <[email protected]> (cherry picked from commit cc19af66ad6ed430c6a2836959ce2a16d146f2d0) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 8cb2014b by Sahitya Kandru at 2026-07-15T17:12:17+02:00 freedreno: Modify reg_size_vec4 for a608 and a612 to 32 a6xx_gen1_low advertises reg_size_vec4 as 48. But this value is not accurate for a608/a612. In some scenarios, when the allocated registers exceed the actual number of vec4 registers available, it results into a GPU hang. Fix this by using the correct register size. Cc: mesa-stable Fixes: 3d299bc7ef8 ("freedreno: Add A605, A608, A610, A612 GPUs definition") Signed-off-by: Sahitya Kandru <[email protected]> (cherry picked from commit 68f79fed521d807e3b53e2f317316d2b1cf09275) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 4f257432 by Frank Binns at 2026-07-15T17:12:17+02:00 pvr: define PVR_USE_WSI_PLATFORM for xcb and xlib Fixes: 0837ea14b8c1 ("pvr: advertise X11-related WSI instance extensions") Signed-off-by: Frank Binns <[email protected]> Reviewed-by: Icenowy Zheng <[email protected]> (cherry picked from commit 53e0d9cb89ee8ba2c1d01e63ff43354c699c4ec4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 2952f98b by Marek Olšák at 2026-07-15T17:12:18+02:00 radv: fix a rare crash with NULL PS and force_vrs_per_vertex Cc: mesa-stable Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 98dc132f305bbd0fc5a87ba1ffb6b0d7df1c6bf4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 8460e9e0 by Marek Olšák at 2026-07-15T17:12:18+02:00 radv: use radeon_opt_set_context_reg for PA_CL_VRS_CNTL to fix random behavior another place already sets PA_CL_VRS_CNTL with radeon_opt_set_context_reg Cc: mesa-stable Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit f375e68cf16cdee24050dcc620be3d5669a32259) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 6a4f015c by Mario Kleiner at 2026-07-15T17:12:18+02:00 wsi/display: Actually fix vblank-less systems for VK_EXT_present_timing. Turns out that the previous fix didn't work on an actual vblank-less Apple Silicon machine under Asahi Linux, success in simulation was just that! The drmCrtcGetSequence() function does not return the kernel error code -EOPNOTSUPP, but instead the drmIoctl() error code -1, while the actual -EOPNOTSUPP error code is returned in errno! Therefore our error check was wrong and not actually spotting lack of vblank support. Fix this. libdrm is somewhat inconsistent in its return codes. While most calls do return the kernel error code (ie. "return -errno;" on ioctl() failure), a few functions, like the drmCrtcXXX() functions just directly return the ioctl() return value -1. Additionally, we use the timed-wait based scheduling path for these systems, which was originally only meant for VRR scheduling, so we need to drop the image->minimum_ns = target_ns assignment meant to stabilize timing in VRR. In vblank-less FRR it can cause reporting of later present completion timestamps than reality, and thereby mask potential malfunctions or failure that at least biomedical/neuroscience research software is very much interested in detecting instead of getting them papered over. Now successfully tested on an actual vblank-less Apple Silicon MacBookPro M2Pro under Asahi Linux. Signed-off-by: Mario Kleiner <[email protected]> Fixes: d7b23e9f3a95 ("wsi/display: Deal with vblank-less systems for VK_EXT_present_timing.") Reviewed-by: Hans-Kristian Arntzen <[email protected]> (cherry picked from commit 341de672d3558a39e7ff61f97e96469f14474dd4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 12f6c66f by Mike Blumenkrantz at 2026-07-15T17:12:18+02:00 zink: unset unordered access on ordered transfer ops this otherwise breaks sync very badly cc: mesa-stable (cherry picked from commit 34602737de3cca9366878dff319556dbea3e0c58) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7a4e519d by Danylo Piliaiev at 2026-07-15T17:12:18+02:00 tu: Enable tu_dont_care_as_load for all Kex Engine games Older Kex Engine based games that use Vulkan like "Forsaken Remastered", "Doom 64", and "STAR WARS Dark Forces Remaster" mistakingly use DONT_CARE as LOAD_OP. Newer games like "SiN Reloaded" or "The Thing: Remastered" don't have this issue, and they never use DONT_CARE. Unfortunately, Kex Engine doesn't pass its version via pApplicationInfo, so the easiest solution is to set tu_dont_care_as_load for all Kex Engine games. Cc: mesa-stable Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit 4598124b93f96ad3d01cfcea72435e3f5c8c596f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7f548c86 by Caio Oliveira at 2026-07-15T17:12:18+02:00 anv: Initialize shader debug archive key size Before this fix, only the hash of the source was being considered, which would lead to the same filename being chosen for two different shader keys. Fixes: 6c90a9c8e38 ("anv: Create archive file when using INTEL_DEBUG=mda") Reviewed-by: Lionel Landwerlin <[email protected]> (cherry picked from commit eaa4b57774d1f8825dcdfc280ceb8adbecfd19d3) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 86f21967 by Christian Gmeiner at 2026-07-15T17:12:18+02:00 etnaviv: Fix sampler view leak on unsupported texture target A reference on the texture is taken before all checks are done. If one of the later checks fails the error path only frees the view and the reference is leaked. Fixes: eda73d71277a ("etnaviv: GC7000: Texture descriptors") Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Daniel Lang <[email protected]> (cherry picked from commit bd70ceb9a177662cf52ac5a6afb2c6119ab3f134) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 65980ddf by JaeHoon Lee at 2026-07-15T17:12:18+02:00 v3dv: report maxDrawIndirectCount of 1 without multiDrawIndirect The Vulkan spec requires maxDrawIndirectCount to be 1 when the multiDrawIndirect feature is not supported, but current v3dv reports 0x7fffffff with multiDrawIndirect left disabled. Derive it from the multiDrawIndirect feature bit instead of hardcoding the limit, so the reported value stays in sync if the feature is enabled in the future. Fixes: 0e0f18ae5e62 ("v3dv: Implement vkGetPhysicalDeviceProperties") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 865940b052674072eb56d6fe91b624b9cb838e26) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - c17ee42c by Lionel Landwerlin at 2026-07-15T17:12:18+02:00 anv/brw: limit push constant promotion in vertex shaders The uber shaders in DXVK are hitting the register limit from the amount of payload data. Ideally we want to implement BRW VS data pulling but it's not that easy, for now limit the push constant data. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: mesa-stable Reviewed-by: Ivan Briano <[email protected]> (cherry picked from commit eda938dc6f3d9a28f5453aff97902406d49284ff) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 5e1d9bef by Mario Kleiner at 2026-07-15T17:12:18+02:00 hasvk: Expose VK_KHR_calibrated_timestamps. Support for it is implemented in shared code since late 2024 (see dd0f8cc7de2a "hasvk: use common calibrated timestamp support"), but only VK_EXT_calibrated_timestamps was exposed, although both extensions are the same. Signed-off-by: Mario Kleiner <[email protected]> Fixes: dd0f8cc7de2a ("hasvk: use common calibrated timestamp support") Acked-by: Lionel Landwerlin <[email protected]> (cherry picked from commit 18e399c843cc7a6d6ca504630d03d7002c5fa3e9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 1ad3a639 by JaeHoon Lee at 2026-07-15T17:12:18+02:00 v3d: clamp transform feedback offset to buffer size When transform feedback overflows the bound buffer and the stream output state is re-emitted (e.g. across a glFlush(), or on TF pause/resume), the accumulated per-target offset can exceed the bound buffer size. The unsigned expression (buffer_size - offset) used for buffer_size_in_32_bit_words then underflows, and the TRANSFORM_FEEDBACK_BUFFER packet advertises a huge remaining size, letting the GPU record vertices far past the end of the buffer. Clamp the offset to the buffer size so the emitted remaining size is 0 in that case, and drop the XXX note in v3d_draw_vbo() that asked for exactly this clamping. Fixes: e636199c1c7d ("v3d: Set the SO offsets correctly if we have to re-emit.") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit bd496df452033d04798141eb11bf375807780f03) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - e6187853 by Samuel Pitoiset at 2026-07-15T17:12:18+02:00 pipe-loader: fix a global-buffer-overflow ASAN error when getting driconf It should only copy the "base size" without any strings. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 97ce9bdb75769544e430ec6dd513a64dcb5e6b03) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 92433f7f by Samuel Pitoiset at 2026-07-15T17:12:18+02:00 radv/meta: fix restoring descriptor heaps In a scenario like: - bind descriptor heap - dispatch - copy buffer to image - dispatch The descriptor heap wasn't re-emitted correctly in the second dispatch, because old_descriptor_heaps_dirty was 0. Switching from descriptor sets/buffers to heaps and vice-versa also invalidate the states but re-binding pipelines happen slightly before that. Fix this by ORing the dirty bits for descriptor heaps to not overwrite any valid heaps to 0. This fixes GPU hangs with DXVK and Lego Party. Cc: mesa-stable Fixes: f4f2a966e30 ("radv: advertise VK_EXT_descriptor_heap with RADV_EXPERIMENTAL=heap") Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit fb3e58f4d849545533388e7e29cf54f67a8835f7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - fe074874 by Mike Blumenkrantz at 2026-07-15T17:12:18+02:00 gallium/cso: make unbind_context an explicit call in some cases, having this be implicit to destroy can be surprising to frontends and lead to unexpected behavior when the context assumes that the unbind 'magically' happens sooner cc: mesa-stable Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit b21c453c9653d3053955c55a02241537a2905d79) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 362dd0ca by Vinson Lee at 2026-07-15T17:12:18+02:00 util/tests: fix unused variable warnings in cache List test ../src/util/tests/cache_test.cpp:1089:16: warning: unused variable 'driver_id' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1090:9: warning: unused variable 'blob' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1091:12: warning: unused variable 'blob_key' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1092:9: warning: unused variable 'foz_rw_idx_file' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1093:9: warning: unused variable 'foz_ro_idx_file' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1094:9: warning: unused variable 'foz_rw_file' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1095:9: warning: unused variable 'foz_ro_file' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1096:10: warning: unused variable 'result' [-Wunused-variable] ../src/util/tests/cache_test.cpp:1097:11: warning: unused variable 'size' [-Wunused-variable] Move variable declarations inside the #else blocks where they are actually used, so they are not declared when ENABLE_SHADER_CACHE or FOZ_DB_UTIL_DYNAMIC_LIST is not defined. Fixes: 4c03d4735ea3 ("util/tests/cache_test: Skip Cache.List if not supported") Assisted-by: Claude Code (Claude Sonnet 5) Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Juston Li <[email protected]> (cherry picked from commit fb8742a4b97bb1bef0fc2f2902523e766bb78e2d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 63c33c69 by Valentine Burley at 2026-07-15T17:12:18+02:00 tu: Fix capture/replay with sampler custom border color See a52483d9e72 ("radv: fix capture/replay with sampler border color"). The border color slot index must be captured and restored, otherwise replay breaks when samplers are recreated in a different order. Fixes dEQP-VK.binding_model.descriptor_combination.basic.descriptor_buffer_capture_replay_with_custom_border_color Cc: mesa-stable Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit 2451cb698eafa8df57f62e935f09c34feabeef97) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - f487b491 by JaeHoon Lee at 2026-07-15T17:12:18+02:00 v3dv: report the correct dynamic storage buffer UAB limit maxDescriptorSetUpdateAfterBindStorageBuffersDynamic was computed from MAX_DYNAMIC_UNIFORM_BUFFERS rather than MAX_DYNAMIC_STORAGE_BUFFERS, so the reported update-after-bind limit for dynamic storage buffers did not match the value used for the non-update-after-bind counterpart. Fixes: 03554f18b31b ("v3dv/device: set DescriptorUpdateAfterBind limits") Signed-off-by: JaeHoon Lee <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 0a5f403207c3b59eba2b50d9fd7831a8dfa42396) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 60ddc7d6 by Lionel Landwerlin at 2026-07-15T17:12:18+02:00 anv: fixup RT building barrier Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 37f26e346a ("anv: Write IR header using shader instead of CS") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15749 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15746 Reviewed-by: Sagar Ghuge <[email protected]> (cherry picked from commit 1fd5d314e108ec4c30c2e08e8ec19e5a74de676f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - e69a3180 by Mike Blumenkrantz at 2026-07-15T17:12:19+02:00 st/context: unbind gs shader before deleting hw select gs shaders this otherwise may delete the currently bound shader cc: mesa-stable Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit a31671db05b547a8d555034c5161375778d0a612) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 051fc042 by Pierre-Eric Pelloux-Prayer at 2026-07-15T17:12:19+02:00 radeonsi: fix typo in si_copy_from_staging_texture Fixes: eba932ea43a ("amd: update addrlib") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15695 Reviewed-by: Eric Engestrom <[email protected]> (cherry picked from commit d5797018fcae2263caafc927299bd277bc0cae0c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - deaccb06 by Mike Blumenkrantz at 2026-07-15T17:12:19+02:00 zink: always un-suspend queries on end this otherwise could leave stale entries in the suspend list for query types which trigger early return cc: mesa-stable (cherry picked from commit 6e4c257b4733730f47bd7a88a9b603e14d90f292) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - f2c2f4c1 by Samuel Pitoiset at 2026-07-15T17:12:19+02:00 Revert "spirv: allow mapping readonly buffers with struct members" This reverts commit f108feb48ff9101dfb826b6515f00852c60d1eff. The Vulkan Workgroup decided to roll back on this and it's not considered valid anymore. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 5ec01259be367766c2bd1aad4fcef49e79c4c574) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 690b2df9 by Sagar Ghuge at 2026-07-15T17:12:19+02:00 brw: Track if CS uses fences Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: José Roberto de Souza <[email protected]> (cherry picked from commit 27abd580193adfe3777ab3f3ddbef4a9b4f39151) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ebead2dd by Sagar Ghuge at 2026-07-15T17:12:19+02:00 intel: Fix async compute thread limit Changing STATE_COMPUTE_MODE values force us to re-emit this NP-state packet before every dispatch and toggle throttle values based on SLM or barriers enabled to prevent deadlock issues. Setting AsyncComputeThreadLimit to - No limit applied doesn't mean we are not running RCS and CCS in parallel. They both would still progress in parallel. In case if CCS hog up all EU's, RCS has to wait for free once to pick up for execution and vice-versa. With VRT, these bits are ignored. These limit talks about when 3D pipe is active or Z-pass (fixed function units) running and impose maximum number of active Compute CS threads to run in DSS. For example with Max 8, we could have max 8 threads * 8 Xe cores which gives us 64threads active for compute. But if there is a cross thread dependency and if we don't launch enough threads, we will hit deadlock. we found such a case in Witcher3 workload. Compute walker tries to dispatch 114x1x1 threads with 2 threads per thread groups in SIMD 16 mode. 1 thread group does UGM fetch and another does UGM fence. Memory update is supposed to happen from differnt thread groups of the same walker. Since we set the max of 8 threads per DSS for compute engine while running things in async mode, we were not launching other thread groups which leads to deadlock. Best way to deal with such kind of scenario is don't apply any limit and use the default setting based on if shader uses fence. Start with default value settings for STATE_COMPUTE_MODE instead of recommended programming values. Bspec needs to be updated to cover above condition which is missing currently. Also, emitting NP-state always before each walker has cost to it (probably equivalent to CS stall) so it's better not to change values. This commit left the existing infrastructure in place in case in future if we find some workload benefit from tweaked values. Fixes: 080b9a165c99 ("intel/common: Add function to compute optimal compute engine async thread limits") Signed-off-by: Sagar Ghuge <[email protected]> Reviewed-by: José Roberto de Souza <[email protected]> (cherry picked from commit 9374e4f9bfcb3f7e6bb25a029ad87cea0a3f340d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - cada4ea8 by Mary Guillemard at 2026-07-15T17:12:19+02:00 nvk: Do not enable remap in nvk_copy_indirect This was making the DMA operations written by nvk_copy_indirect use values that we never set in there. This fixes some illegal instructions crash on Blackwell where a certain sequence of unlucky CTS tests would end up corrupting a shader previous uploaded for vk-meta. Signed-off-by: Mary Guillemard <[email protected]> Fixes: cbec12627bb ("nvk: VK_KHR_copy_memory_indirect") Reviewed-by: Mel Henning <[email protected]> (cherry picked from commit 228337c01049fbe1da5e62e0c4ae2cf1eb996245) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 9db65eca by Benjamin Cheng at 2026-07-15T17:12:19+02:00 ac/surface: Remove GFX10 limitation for FORCE_SWIZZLE_MODE This was historically added by c4cdef6, but now FORCE_SWIZZLE_MODE is only used for multi-planar video images in RADV, so it's safe to remove this limit. It caused issues with decode on chips with GFX9 because the swizzle modes could be different between the luma/chroma planes. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15815 Signed-off-by: Benjamin Cheng <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 7fc5bd8947557c6bedc158b850dc7dffa0a4ac38) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 743a6239 by Yiwei Zhang at 2026-07-15T17:12:19+02:00 venus/virtgpu: amend a missing sim mutex init Cc: mesa-stable (cherry picked from commit eac4f123dacdc83a7c04b1fdf26bb2047cd776f8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 96a8b74c by Ryan Mckeever at 2026-07-15T17:12:19+02:00 pan/bi: check if preds are dominated by header in bi_find_loop_blocks For a nested loop like this one from dEQP-VK.reconvergence.maximal.compute.nesting3.4.22: B13 B11 ------------- ^ ^ | | | v B3 B7 --> B9 --> B10 --> B12 ^ ^ | | | | B0 --> B1 --> B2 --> B4 --> B5 <--- | ^ | | | | v | | | B6 | | | | | | | v | | | B8 ---- | | | --------------------------------------------- Blocks B1 - B12 can be included in the outer loop (header B1), but the inner loop (header B5) should only include B5, B6, B7, and B8. Note that bi_find_loop_blocks() does not include loop exits B3 (outer loop) or B7 (inner loop) in the resulting bitset. find_all_predecessors() was tracing a chain of B5's predecessors from B4 to B1 and then continuing on to count B1's predecessors as well, thus ending up with a loop and its inner nested loops getting the same result. Doing __bitset_and() with the dominators after the fact in bi_find_loop_blocks() isn't enough to exclude all the blocks that shouldn't be included in the inner block in this case because B9, B10, B11, and B12 are dominated by B5 but should be excluded from its loop. If we only add blocks to the bitset that are predecessors of the loop header and dominated by it, we don't trace the chain of predecessors back to other loop headers. Fixes: 6535a3b6b3 ("pan: Fix bi_find_loop_blocks") Reviewed-by: Christoph Pillmayer <[email protected]> Reviewed-by: Lorenzo Rossi <[email protected]> (cherry picked from commit 19c35439436da7582d4df95c0c3087bf6c203778) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b36965ab by Rob Clark at 2026-07-15T17:12:19+02:00 freedreno/a6xx: Don't forget UBO driver params We hit this when (for ex) there are no VS driver params, but we need UBO driver params for a pass-thru TCS. Fixes KHR-GL46.tessellation_shader.tessellation_shader_tessellation.TES KHR-GL46.shader_image_size.advanced-nonMS-tes* Fixes: 3a0b022136ce ("freedreno/a6xx: Add support to load driver-params via UBO") Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit 85089aaf2c1cb7eee6977ef8655efe7a4bb55d5b) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 9b5d47a5 by Karmjit Mahil at 2026-07-15T17:12:19+02:00 freedreno/decode,ir3: Mark decoded dwords as const Signed-off-by: Karmjit Mahil <[email protected]> (cherry picked from commit ce6ed3da8bc606abcd28e9bf6aba392ac29adcd7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - dd41fe76 by Rob Clark at 2026-07-15T17:12:19+02:00 freedreno/decode: Fix shader stats in summary mode We need to do an extra silent parse of updated shader stages, otherwise we'll get the stats info from the previous draw (because register dump/ decode happens after the bindless descriptors are dumped). Fixes: 3249e4625e86 ("freedreno/decode: call show_descriptor() for UBO and SAMPLERs as well") Signed-off-by: Rob Clark <[email protected]> (cherry picked from commit c771beb89939cb3c54d2d0c49605b4e95a14ae79) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - cb73a524 by Lionel Landwerlin at 2026-07-15T17:12:19+02:00 anv: fill min_array_element with indirect descriptors Added a field in a previous commit and forgot to set it. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: be89a173d5 ("anv/brw: fixup 64bit array image accesses") Reviewed-by: Ivan Briano <[email protected]> (cherry picked from commit 058b45eede94f3912a1ab3ee2e3c556ede040730) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - c1139505 by Michel Dänzer at 2026-07-15T17:12:19+02:00 dri3: Increment draw->send_sbc after waiting for last presentation Doing it before, dri3_handle_present_event could set draw->recv_sbc to the incremented value of draw->send_sbc due to an event triggered by a previous loader_dri3_drawable instance, in which case the loop in loader_dri3_swap_buffers_msc never terminated. Fixes: a6bf07e7c245 ("dri: avoid sending too many present reuqests when app start or pause") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15765 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15802 (cherry picked from commit 0a0ee06c527f29a6f7cc39f55ad169a0037d2c11) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ac439585 by Boris Brezillon at 2026-07-15T17:12:19+02:00 pan/kmod: Add a pan_kmod_timestamp_cycles_to_ns() helper Add pan_kmod_timestamp_cycles_to_ns() that's safe against u64 overflows, and use it where it makes sense. This fixes a bunch of potential overflows in places where uint64_t was assumed to be big enough to store timestamp_ns * NSEC_PER_SEC. Fixes: 8ffda8093ecb ("panfrost: Implement timer queries") Fixes: d340ed6726ecc ("panvk: add u_trace_context to panvk_device") Fixes: 576a87a59047 ("panvk: add u_trace perfetto support") Reviewed-by: Lars-Ivar Hesselberg Simonsen <[email protected]> Reviewed-by: Christoph Pillmayer <[email protected]> (cherry picked from commit db4b0a7ec4c33336849826a107307ed2944bb554) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - d91f4c4c by Faith Ekstrand at 2026-07-15T17:12:19+02:00 vulkan/meta: Use z_off/scale for 2D array images as well The array offset thing was fragile and didn't allow for flipping an array, which can still happen for 2D -> 3D copies if the 3D Z range is inverted. It also wasn't saving us anything since we immediately convert the integer to a float anyway as needed by texelFetch(). Instead, always use `z_off/scale` and then we can set `z_scale = -1.0` to handle the flipping case. This also fixes bugs with offsets because our calculation of arr_delta was actually wrong. In the 2D -> 2D case, the image view takes care of the array offset so there's no point in using the delta at all. Fixes: cda46942 ("vulkan/meta: Implement vkCmdBlitImage()") Reviewed-by: Dave Airlie <[email protected]> (cherry picked from commit 4cb246aef063cddce1e1a8c565b9cb4ab6175667) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 4ec91d2b by Faith Ekstrand at 2026-07-15T17:12:19+02:00 vulkan/meta: Allow resolving a 2D MSAA image to a 3D image This fixes dEQP-VK.*.m10_resolve.* for NVK and KismicKrisp. Fixes: a9e0adc67903 ("nvk: Advertise VK_KHR_maintenance10") Fixes: 840952cc35c5 ("kk: Enable maintenance extensions through VK_KHR_maintenance10") Reviewed-by: Dave Airlie <[email protected]> (cherry picked from commit ef024af866ce81369ce35c1e962f14248e540636) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 6335686a by Mike Blumenkrantz at 2026-07-15T17:12:19+02:00 zink: fix the fix for ZINK_RENDERDOC=all toggling the capture-all flag here breaks capture-all Fixes: e0641fdac7a ("zink: fix ZINK_RENDERDOC=all") (cherry picked from commit 551c8bbd3b16fd7bab40791e42fe0826352b2e3c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 75842a1f by Lionel Landwerlin at 2026-07-15T17:12:20+02:00 anv: fixup max push data delivered to shaders We use to have a 64 * 32 limit and eda938dc6f ("anv/brw: limit push constant promotion in vertex shaders") increased it to 64 * 64 on Xe2+ and that triggering issues with DXVK's ubershader. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: eda938dc6f ("anv/brw: limit push constant promotion in vertex shaders") Acked-by: Ivan Briano <[email protected]> (cherry picked from commit 13960df17d43d3ceb95a0fc89eb593701c40a526) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 2902a08a by Vinson Lee at 2026-07-15T17:12:20+02:00 vulkan/screenshot-layer: replace itoa/sprintf with snprintf Replace the itoa() wrapper around deprecated sprintf with a direct snprintf call at its only call site, using ARRAY_SIZE() for the length argument. screenshot.cpp:672:4: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] Fixes: eda55c7c2f69 ("vulkan/screenshot-layer: Add Vulkan screenshot layer") Suggested-by: Lionel Landwerlin <[email protected]> Assisted-by: Claude Code (Claude Sonnet 5) Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Casey Bowman <[email protected]> (cherry picked from commit a1b50dbcd751bbb24ac717927c627a30e5969657) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 916aa9c6 by Vinson Lee at 2026-07-15T17:12:20+02:00 vulkan/screenshot-layer: fix globalLock mutex leak loader_platform_thread_delete_mutex() was defined but never called, triggering an unused-function warning: screenshot.cpp:77:13: warning: unused function 'loader_platform_thread_delete_mutex' [-Wunused-function] The function is unused because the mutex it destroys, globalLock, is never destroyed: screenshot_CreateInstance() creates it but screenshot_DestroyInstance() never calls delete on it, leaking the mutex. Since multiple VkInstances can be live in parallel and all share the single globalLock, track live instances with a count instead of a one-shot flag, and only delete the mutex once the last instance is destroyed. Use == 0 rather than <= 0 to guard the delete, since <= 0 would keep re-deleting an already-destroyed mutex on every call after any erroneous extra decrement. The increment/decrement is not yet atomic, so concurrent vkCreateInstance/vkDestroyInstance calls from different threads can still race; that needs to be addressed as a follow-up. Fixes: eda55c7c2f69 ("vulkan/screenshot-layer: Add Vulkan screenshot layer") Suggested-by: Eric Engestrom <[email protected]> Assisted-by: Claude Code (Claude Sonnet 5) Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Casey Bowman <[email protected]> (cherry picked from commit 855ec34747e3edc76978530aaa1a8d4e2697b79b) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - bf981590 by Mario Kleiner at 2026-07-15T17:12:20+02:00 wsi/display: Don't update connector last_frame/nsec in vkGetSwapchainCounterEXT. This is a partial revert of f7fb4dd5ff52 ("wsi/display: Improve connector->last_nsec timestamping."), because I've changed my mind about the upsides vs. downsides. The intention was that apps which use vkGetSwapchainCounterEXT() frequently would contribute to slightly more recent values for connector->last_nsec and connector->last_frame values used as baseline for vblank-based present scheduling in vkQueuePresent() when the present timing extensions are used. However: Very few apps use this function, so most apps won't benefit. And testing has shown that timing is pretty stable even without doing this. And if we want this baseline optimization it could be done much better inside _wsi_display_queue_next() before scheduling present, as the Linux DRM ioctl and vblank machinery for drmCrtcGetSequence() is optimized for minimal overhead when using it immediately before a pageflip/atomic commit. The downsides for apps using vkGetSwapchainCounterEXT() are more severe, causing potential races between vkGetSwapchainCounterEXT() and the other connector->last_xxx updaters and users. It would require locking and additional bookkeeping logic to avoid those, and to prevent misscheduling of presents or wrong present completion timestamps, which I think is not worth the tiny upsides. Additionally adding the mtx_lock() on the wait_mutex could stall the calling thread for a long (dozens of msecs to seconds) time if we are operating in VRR mode or on a vblank-less system like Asahi + Apple Silicon, where the alternative wait-based scheduling can hold the lock for a long time. Iow. The tiny upside is imho not worth the bigger downside. Signed-off-by: Mario Kleiner <[email protected]> Fixes: f7fb4dd5ff52 ("wsi/display: Improve connector->last_nsec timestamping.") Reviewed-by: Hans-Kristian Arntzen <[email protected]> (cherry picked from commit 41228384d77b1c35a693b325938cc1a2f472a789) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - d3cefeca by Konstantin Seurer at 2026-07-15T17:12:20+02:00 vulkan: Fix ROOT_FLAGS_OFFSET_ID offset cc: mesa-stable Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 9ff49d42b838f487d4306268880a76408d24b47e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 34b5af2a by Konstantin Seurer at 2026-07-15T17:12:20+02:00 radv: Store root_flags for BVH8 cc: mesa-stable Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 69ab79b33cc62c88f2359cbc9f74bec3780b328e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - aa010834 by Samuel Pitoiset at 2026-07-15T17:12:20+02:00 radv: force late-Z with fragment shaders that use fbfetch It's required by the Vulkan spec to use late-Z for subpass input attachments sampling. This fixes issues in a new VKCTS coverage dEQP-VK.pipeline.*.multisample.misc.*. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 6d51a0420a80fe26e3b486e809d93cae93965d0a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 6f3d6494 by Mel Henning at 2026-07-15T17:12:20+02:00 nvk: Handle large indirect stride pre-Turing Otherwise, we hit an infinite loop for strides over (1 << 15) Fixes: a3716f1b9e3 ("nvk: Implement Draw*Indirect on pre-Turing") Reviewed-by: Mary Guillemard <[email protected]> Tested-by: Mary Guillemard <[email protected]> (cherry picked from commit 9a029ea383900f0ab6e3fbfb2653909c75f2010d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 5fdab8a4 by Karol Herbst at 2026-07-15T17:12:20+02:00 nak/sm20: fix immediate encoding for F2I and F2F The SM20Unit::Move made immediates being interpreted as i20 immediates, but this is the wrong behavior for those instructions. Backport-to: * Reviewed-by: Mary Guillemard <[email protected]> Reviewed-by: Mel Henning <[email protected]> (cherry picked from commit 5e93b7bb9e9cf436c43fa22c5f8ab21e398a3993) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 8fddfa2b by Yannis Juglaret at 2026-07-15T17:12:20+02:00 nouveau: fix data race in nouveau_fence_ref nouveau_fence_ref dereferences *ref to find the fence list lock, but this read happens before the lock is acquired. When two threads call nouveau_fence_ref on the same *ref concurrently, the unprotected read of *ref races with the write in _nouveau_fence_ref. Fix this by passing the screen pointer as an explicit argument so the lock can be derived without touching *ref first. Fixes: f2af3a9cae2 ("nouveau: make fencing race free") Assisted-by: Claude Code (Claude Opus 4.6) Reviewed-by: Karol Herbst <[email protected]> (cherry picked from commit 0e79791fa5f68e587e864a774b002ba5b4f29127) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 411e4b7d by Karol Herbst at 2026-07-15T17:12:20+02:00 nir: add nir_shader_fully_linked helper Backport-to: * Reviewed-by: Georg Lehmann <[email protected]> Reviewed-by: Simon Perretta <[email protected]> (cherry picked from commit a21811f34b9e9e44972d296dc9dbc87c550bd214) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - c0aa7ba5 by Karol Herbst at 2026-07-15T17:12:20+02:00 rusticl/kernel: handle nir shader compilation failures gracefully (cherry picked from commit b618cbb5e9c2733eebb88f32e85a275d0bccfc1f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b7412eb5 by Karol Herbst at 2026-07-15T17:12:20+02:00 rusticl: return Result instead of Option from convert_spirv_to_nir Backport-to: * (cherry picked from commit 1fe2442367288fbf3e95ece8e8e1ca33ea6abcbb) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - beabf478 by Karol Herbst at 2026-07-15T17:12:20+02:00 rusticl: abort compilation if the nir shader is not fully linked This should like never happen, but due to a libclc bug a function ended up with only a declaration and no definition leading to use-after-free accesses on the nir_call_instr after nir_cleanup_functions was called. Backport-to: * (cherry picked from commit 02e187d684c80819f45482bcc6bb6d218fd845ab) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 5244d284 by JaeHoon Lee at 2026-07-15T17:12:20+02:00 v3dv: fix blake3 key truncated to 20 bytes in pipeline cache blake3_compare_func() and the two disk_cache_compute_key() call sites in v3dv_pipeline_cache.c compare and hash only the first 20 of the 32 bytes (BLAKE3_KEY_LEN) that make up the blake3 cache key. 20 is the length of a SHA-1 digest. This appears to be a leftover from the sha1_* → blake3_* transition, where the type names were updated but these comparison lengths remained unchanged. The cache key itself is consistently treated as a full 32-byte BLAKE3 digest throughout this driver—it is declared, produced, and copied at the full length. Only these comparison and hashing call sites still use the previous length. In practice, the collision risk remains very low, since 160 bits still provide a strong level of collision resistance. However, this means that only the first 20 bytes participate in equality checks and on-disk cache hashing, rather than the full 32-byte digest. Fixes: d4831aaf5fc ("Rename sha1_* and sha_* names to blake3_*") Reviewed-by: Alejandro Piñeiro <[email protected]> (cherry picked from commit a73b5efed80428ff103571c4527aab59fad1f720) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 0e7c8702 by JaeHoon Lee at 2026-07-15T17:12:20+02:00 v3d: fix blake3 key truncated to 20 bytes in shader cache cache_compare() and v3d_shader_state_delete() in v3d_program.c compare just the first 20 of the 32 bytes (BLAKE3_KEY_LEN) in the blake3 key — the same story as the sibling v3dv fix: a leftover 20 (SHA-1 digest length) from the sha1_* -> blake3_* rename. This driver's own cache_hash() already uses BLAKE3_KEY_LEN correctly for hashing the same key; the two comparisons seem to be what got left behind. Fixes: 102d41799b9 ("Rename more sha and sha1 names to blake3") Reviewed-by: Alejandro Piñeiro <[email protected]> (cherry picked from commit cb3943934dccf4dd6cf4e1bb6ea064825dcb1eae) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 55c51569 by Valentine Burley at 2026-07-15T17:12:20+02:00 tu: Disable VK_EXT_extended_dynamic_state2 patch control points on A702 A702 has no tessellation support, so patch control points are not meaningful. Fixes VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874 VVL error seen with zink-on-tu. Fixes: 639d7946c71 ("freedreno: Add initial A702 support") Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit e15d9565902d1ba7525daf1a4fcc304f2721cfdf) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ebd18c26 by Valentine Burley at 2026-07-15T17:12:20+02:00 zink: Gate tess/geom barrier stages on feature support Fixes tests crashing with VUID-vkCmdPipelineBarrier-dstStageMask-04091 VVL errors on devices without tessellation or geometry shader support. Cc: mesa-stable Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit 8210ad6512f6a84b8de5330ad460b6b14b50b64e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - da4965bf by Iván Briano at 2026-07-15T17:12:20+02:00 brw/rt: fix max_t selection on intersection report The documentation for reportIntersectionEXT() says: If the intersection occurred within the current ray interval, the any-hit shader corresponding to the current intersection shader is invoked. If the intersection is not ignored in the any-hit shader, <hitT> is committed as the new gl_RayTmaxEXT value of the current ray, <hitKind> is committed as the new value for gl_HitKindEXT, and true is returned. If either of those checks fails, then false is returned. If the value of <hitT> falls outside the current ray interval, the hit is rejected and false is returned. We are currently using the original ray's Tmax as the maximum value of the range, instead of taking the current T from the pending hit. This results in the any-hit shader running more than needed (if there). Things seemingly worked fine because once accepted, we updated the pending hit T to the minimum of itself and whatever was now reported. Fix it by always using the pending hit's T value for the maximum range, as when the trace begins that's set to the ray's maximum range as well. With this, we no longer need to get the min between the two when updating the value. Cc: mesa-stable Signed-off-by: Iván Briano <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]> (cherry picked from commit bb41f1bed5ea83078b286afcf968659830adf001) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 22fb90ad by Iván Briano at 2026-07-15T17:12:20+02:00 brw/rt: split HitAttribute area in pending/committed An intersection shader may be called multiple times, and it can write into a HitAttribute block before reporting the intersection. If that intersection turns out to be rejected, any previous data written by the currently closest hit would be overwritten. Cc: mesa-stable Signed-off-by: Iván Briano <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]> (cherry picked from commit a2acc507b4c82345a7a1e1a65c3e281b0c69df6d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 948ba97a by Iván Briano at 2026-07-15T17:12:21+02:00 brw/rt, anv: reduce maxRayHitAttributeSize The minimum required by the spec is 32, and that's also what RADV exposes, so presumably we'd be fine doing the same. I suspect we had 64 here because we need to align things to 64 anyway, so might as well make that space available. With the doubling of the hitAttribute stack area needed by the driver that the previous commit needs, reducing the size we expose allows us to not require more total memory. Cc: mesa-stable Signed-off-by: Iván Briano <[email protected]> Reviewed-by: Sagar Ghuge <[email protected]> (cherry picked from commit d6123201462e1bb1ccc881ed43c4a568b37394ec) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - ee79b6d8 by Mike Blumenkrantz at 2026-07-15T17:12:21+02:00 util/blitter: fix blitting multiple array layers failing to init dst::last_layer for single-layer blitting would use the passed layer values from dst, which could be the full array size (i.e., last_layer - first_layer != 0) and then overflow the resource bounds when iterating Fixes: b92b67c9417 ("util/blitter: delete more pipe_context::create_surface usage") Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 8ffecb66eca28ad1707c782731b2a6f2c9c3f2ba) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 6e3899ef by Eric Engestrom at 2026-07-15T17:12:21+02:00 radeonsi: fix truncated cache key This change was missed in the sha1 -> blake3 move, likely because these `20` had been hardcoded instead of using the corresponding `#define`. The effect was a higher risk of key collisions (using 20 bytes instead of 32), but no actual collision has been observed. Prompted by seeing a73b5efed80428ff1035 ("v3dv: fix blake3 key truncated to 20 bytes in pipeline cache") go by; read that commit's message for more information. Fixes: d4831aaf5fc983d29d06 ("Rename sha1_* and sha_* names to blake3_*") (cherry picked from commit c541170035abb73b2e2ad00047a48739c192e521) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 138fc455 by Gert Wollny at 2026-07-15T17:12:21+02:00 r600/sfn: Drop assertions when emitting IF asm instruction The tests don't make sense anymore, because we don't emit the predicate instruction here, we only emit the jump. Everyting related to address emission has been handled in the scheduler already. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15832 CC: mesa-stable Signed-off-by: Gert Wollny <[email protected]> (cherry picked from commit 3f48f7d9750930a6b0fe6f0c87c8eaad82188bda) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 1c63e899 by Christian Gmeiner at 2026-07-15T17:12:21+02:00 panvk: Restore push descriptor dirty bit after meta operations meta_compute_end(..) / meta_gfx_end(..) restore push set 0, but not its dirty bit. The meta dispatch's cmd_prepare_push_descs(..) clears that bit. If the user pushed descriptors but did not dispatch yet (descs.dev=0), the next user dispatch sees both descs.dev=0 and a clear dirty bit, skips the upload, and builds the resource table with address 0 and the GPU page-faults reading from VA 0. Save the dirty bit alongside descs.dev / desc_count in save_ctx and restore it in meta_*_end. Fixes: f74dd596d54 ("panvk: Add helpers to save/restore the compute/graphics state for meta operations") Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lars-Ivar Hesselberg Simonsen <[email protected]> (cherry picked from commit cd4f7be1fd44fcd4edf3f323851d9b6c7e4fe364) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b9667c68 by Yiwei Zhang at 2026-07-15T17:12:21+02:00 venus: fix imported sync fence payload reset upon export Per spec: If the fence was using a temporarily imported payload, the fence’s prior permanent payload will be restored. Cc: mesa-stable (cherry picked from commit 9853a7a80c45374ec2c906ade26489ee28f8e28c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 15ef34a3 by Yiwei Zhang at 2026-07-15T17:12:21+02:00 venus: avoid renderer semaphore wait upon temp payload export Per spec: If the semaphore was using a temporarily imported payload, the semaphore’s prior permanent payload will be restored. We need that previously because we have falsely performed a semaphore wait even for imported sync. Now we can relax SYNC_FD import requirement for SYNC_FD external semaphore support. Cc: mesa-stable (cherry picked from commit 764ef10d08419474b17773d86f4c2ee3d85449d3) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - e6a8d00b by Pavel Ondračka at 2026-07-15T17:12:21+02:00 r300: fix swtcl per-vertex point size There were two broken pieces. EMIT_1F_PSIZE emits the fixed rasterizer point size instead of the vertex shader output. In TCL bypass mode, point size must also be routed to semantic location 15 instead of location 1, which is used by HWTCL. The location is not documented explicitly, classic driver and early r300g both used location 15 but the mapping was lost in 6f05eba0204. Fixes: 6f05eba0204 ("r300g: VS->FS attribute routing rework") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/341 Signed-off-by: Pavel Ondračka <[email protected]> (cherry picked from commit dea624494db61509646ef2406393a3298c9c6d62) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 80dfe288 by David Rosca at 2026-07-15T17:12:21+02:00 r600/uvd: Set correct h264 chroma format Should fix monochrome decode. Cc: mesa-stable Acked-by: Benjamin Cheng <[email protected]> (cherry picked from commit 47b563e37a1c448d2cefa719753fc4eaf67a7bf6) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 7c09b7c3 by Simon Perretta at 2026-07-15T17:12:21+02:00 pco: lower sysvals early for fragment shaders Ensure that SYSTEM_VALUE_HELPER_INVOCATION is lowered to an intrinsic before the following NIR helper passes are run. Fixes: 61a9c4f63dd ("pvr, pco: add primitive support for terminate,demote_to_helper}_invocation") Signed-off-by: Simon Perretta <[email protected]> Acked-by: Frank Binns <[email protected]> (cherry picked from commit b023b72a16d09b5565476bd8438cc83348319d2c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - bf3293bb by Simon Perretta at 2026-07-15T17:12:21+02:00 pco: allow fence ops to be legalized if they come last in a block Fixes: 75dc7ef8fd5 ("pco: Add pseudo instruction fencing for DITR and DITRP") Signed-off-by: Simon Perretta <[email protected]> Acked-by: Frank Binns <[email protected]> (cherry picked from commit c459e13d7e522c8fdad30e18a16b5e4c7698a4ed) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - b7b94d34 by JaeHoon Lee at 2026-07-15T17:12:21+02:00 broadcom/compiler: really enable GFXH-1625 TMUWT validation The check could never fire: thrend_found is only set at the program-end THRSW, and from that point on state->ip only grows past state->last_thrsw_ip, so last_thrsw_ip - ip is always <= 0 and can never equal 2. The subtraction was reversed. Flip it to ip - last_thrsw_ip == 2, which is the last instruction of the thread-end sequence, matching the slot == 2 rejection the scheduler applies in qpu_inst_valid_in_thrend_slot(). Also gate the check to V3D 4.2 like the scheduler does, since TMUWT in the last slot is allowed on V3D 7.x, and fix the same reversed subtraction in the enclosing guard (trivially true after thrend, so no behavior change from that one). As the scheduler already enforces this restriction, no shader should hit the revived check. Fixes: 089c32eefd2f ("broadcom/vc5: Add validation that we don't violate GFXH-1625 requirements.") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit c3e8ebca0609aa85b2f5baa64e13a0c8d76f8636) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 6834b3da by Filip Gawin at 2026-07-15T17:12:21+02:00 nv30: fix truncated values in line_stipple_pattern ../src/gallium/drivers/nouveau/nv30/nv30_state.c:178:4: runtime error: left shift of 65535 by 16 places cannot be represented in type 'int' Reviewed-by: Karol Herbst <[email protected]> Backport-to: * (cherry picked from commit 423f8b97e2c6f5a07cd311e113e023bed920c65b) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 82c35096 by Marek Olšák at 2026-07-15T17:12:21+02:00 ac: fix a GPU hang with LLVM due to incorrect VGPRS decoding of LLVM output Fixes: 749c619c458 - ac/gpu_info: correct some SGPR and VGPR allocation values in ac_cu_info Reviewed-by: Timur Kristóf <[email protected]> (cherry picked from commit 301b5e2a932596200f631b2f5b6fc90ddb6fe11e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 19f13f9c by Jose Maria Casanova Crespo at 2026-07-15T17:12:21+02:00 v3dv: close the primary node fd on physical device destruction physical_device_finish() closed the render and display fds but not primary_fd, leaking one card node fd per instance create/destroy cycle. A full VK CTS run accumulates over 1000 leaked fds, hits EMFILE, and hangs once submissions start failing. Also close it in the enumerate_devices() error path when no render node is found. Fixes: 451a0bd4900 ("v3dv: use v3d primary node for VK_EXT_physical_device_drm") Assisted-by: Claude Opus 4.8 Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 26df68241aadf5461b0dae2f249ccc3ed37b18bf) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 494f47f8 by JaeHoon Lee at 2026-07-15T17:12:21+02:00 vc4: fix incorrect resource unref in vc4_flush_resource vc4_flush_resource() unreferences the address of the local pointer new_rsc cast to pipe_resource *, decrementing the reference count at the pointer's stack location rather than the temporary resource itself. The shadow resource created to re-tile a resource for sharing is thus never freed, leaking it and its BO on every such flush. Pass the pointer, cast to pipe_resource **, to pipe_resource_reference(), matching the v3d sibling. Fixes: 4226be0c750e ("vc4: ensure sharing tiled resources are of proper format") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 8c29fc3b12ee5d7d0d888e951fddee4d597fe90b) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - 49868315 by David Rosca at 2026-07-15T17:16:01+02:00 [26.1 only] va: Fix build with free codecs only and libva < 2.16 When only AV1 encode is enabled, HAS_ENCODE was only defined inside VA_CHECK_VERSION(1, 16, 0) block. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15874 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42986> - - - - - f7dfdf5a by Eric Engestrom at 2026-07-15T22:03:19+02:00 docs: add release notes for 26.1.5 - - - - - 6a02618c by Eric Engestrom at 2026-07-15T22:03:19+02:00 VERSION: bump for 26.1.5 - - - - - bcf312ff by Eric Engestrom at 2026-07-15T22:50:41+02:00 docs: add sha sum for 26.1.5 - - - - - 09fc3424 by Timo Aaltonen at 2026-07-16T11:59:04+03:00 changelog - - - - - c02c8b9f by Timo Aaltonen at 2026-07-16T11:59:07+03:00 Merge branch 'upstream-unstable' into debian-unstable - - - - - 7e962556 by Timo Aaltonen at 2026-07-16T12:00:00+03:00 version bump - - - - - 82efeb60 by Timo Aaltonen at 2026-07-16T12:17:30+03:00 releasing package mesa version 26.1.5-1 - - - - - ec543dab by Erico Nunes at 2026-07-27T16:52:44+02:00 ci: lima farm maintenance Signed-off-by: Erico Nunes <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42480> (cherry picked from commit 45319b32cb0c3175407708474ebbd587b3b82bc0) - - - - - 5ac246ed by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Update to 112793b456b492bf2a6e925210c16229f3643a8a Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b0638f6a by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Mark cb52837735756ddcac12b3c6b9b32ed6cfb6347e as denominated Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - d3b853b7 by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Mark 7999060992e9cee91d1962faf65dc4e5c6fe4f69 as denominated Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 4e7c920c by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Mark 2515024a5919ed14fe05471e3f1f89c54a454610 as denominated Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 4012769c by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Mark 4fd93a0039a07ec2027f2a6d1d252c73ed033e0a as denominated Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 35811a6f by Eric Engestrom at 2026-07-29T15:18:16+02:00 .pick_status.json: Mark adca1f255fd5cb9702db1e0a2bc25d13a521ae5f as denominated Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - dd2e5d9d by Olivia Lee at 2026-07-29T15:18:16+02:00 panvk/csf: flush primitives generated query writes from CSF The missing flush causes failures on some of the vertex stream pgq tests. Technically we are able to flush at CmdEndQuery and before dispatching shaders that update pgq, but it's simpler to do it in one place and take the minor performance cost. Signed-off-by: Olivia Lee <[email protected]> Fixes: 1bdd640d83ed (panvk/csf: implement VK_EXT_primitives_generated_query except primitive restart) Reviewed-by: Lars-Ivar Hesselberg Simonsen <[email protected]> (cherry picked from commit 0f9086520f0ed1ba8fdd81548e6b4e1a6dc2ad65) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 5ff287d9 by Vinson Lee at 2026-07-29T15:18:16+02:00 util/tests: silence unused iterator warning in sparse_bitset_test gcc reports: src/util/tests/sparse_bitset_test.cpp:20:49: warning: variable '_' set but not used [-Wunused-but-set-variable] The count_nodes loop only needs to count tree nodes, so it ignores the rb_tree_foreach iterator variable. Cast it to void to acknowledge it is intentionally unused. Fixes: a8b75dd0f426 ("util: Add sparse bitset data structure") Assisted-by: Claude Code (Claude Opus 4.8) Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 2ef937e51a9b05dc135a271eea1d92f5f527ddf9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 49edf5d1 by Natalie Vock at 2026-07-29T15:18:16+02:00 nir/opt_loop: Don't peel header blocks that jump This pass is run before nir_opt_dead_cf, so if-statements following unconditional jumps aren't cleaned up yet. This can cause "break"/"continue"-statements to be placed outside the loop they're intended for. Peeling makes no sense here, since nir_opt_dead_cf will clean up the loop anyway. Cc: mesa-stable (cherry picked from commit 3d823a82d1d4097f2e290baecc26aac823d7f8d1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - af67bfaf by Rhys Perry at 2026-07-29T15:18:16+02:00 vulkan/bvh: fix to_emulated_float(-0.0) This would have returned -2147483648. from_emulated_float(-2147483648) is 0, but it wouldn't have worked correctly with atomic min/max. Signed-off-by: Rhys Perry <[email protected]> Backport-to: * Reviewed-by: Konstantin Seurer <[email protected]> Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 8c6c664b234fb90fc66cfe5443b7df1ce4b99864) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - af71a84b by Rhys Perry at 2026-07-29T15:18:16+02:00 vulkan/bvh: don't update min/max_bounds with inactive nodes This added garbage to the bounds. This commit fixes random Doom Eternal hangs, but I don't believe it fixes the root cause. Signed-off-by: Rhys Perry <[email protected]> Backport-to: * Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15127 Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15807 Reviewed-by: Konstantin Seurer <[email protected]> Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 8f72a362cb952b894ac9b2a727b3c28557de70b9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - ab7b028e by Rhys Perry at 2026-07-29T15:18:16+02:00 vulkan/bvh: enable SignedZeroInfNanPreserve in leaf.h This was relying on the triangle vertex transform propagating NaNs. This commit doesn't fix any known real issues. Signed-off-by: Rhys Perry <[email protected]> Fixes: 20322687e08 ("vulkan: Avoid NAN in the IR BVH") Reviewed-by: Konstantin Seurer <[email protected]> Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit d9761e5753d8de524b19d7ae568a05f85af9ad10) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 47108460 by Rhys Perry at 2026-07-29T15:18:16+02:00 vulkan/bvh: limit valid 32-bit node keys to 0xfffffe00 Signed-off-by: Rhys Perry <[email protected]> Backport-to: * Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15127 Reviewed-by: Konstantin Seurer <[email protected]> Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 5cfce7e3d9cb4c26c48d11562856a0dd822df246) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 0cf71742 by Jiyu Yang at 2026-07-29T15:18:16+02:00 panfrost: cleanup precomp_cache on screen destroy While running the GLES1 CTS mustpass suite under AddressSanitizer, a memory leak was reported in the precompiled shader cache. Free the precompiled shader cache when the screen is destroyed to avoid leaking memory. The cleanup is only performed when the cache has been allocated. Fixes: 8adede1d44e8 ("panfrost: Implement precomp dispatch on Gallium") Reviewed-by: Erik Faye-Lund <[email protected]> Signed-off-by: Jiyu Yang <[email protected]> (cherry picked from commit 3d4ab1fddd7bf9d7dae2156a7cd6269cebb21dce) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 8ab625f9 by Jose Maria Casanova Crespo at 2026-07-29T15:18:16+02:00 broadcom/compiler: don't leak the compile on assembly allocation failure v3d_return_qpu_insts() returned NULL without freeing the v3d_compile when the allocation of the final assembly copy failed, leaking the whole compile context on the out-of-memory path. Fixes: ade416d0236 ("broadcom: Add VC5 NIR compiler.") Assisted-by: Claude Opus 4.8 Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 7d9ee7960c3ba51828e0f0e6eb068156203e6833) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 383e7a76 by JaeHoon Lee at 2026-07-29T15:18:16+02:00 v3dv: make room in the descriptor map for the no-sampler entries pipeline_lower_nir() reserves two "no sampler" entries before applying the pipeline layout, so real samplers start at index 2. The map is only V3D_MAX_TEXTURE_SAMPLERS long and we advertise exactly that many, so the last two samplers we allow write past the end of it, silently in release builds. Fixes: fc17231b2b4e ("v3dv/pipeline: reduce descriptor_map size") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 9d534e38a2e20d1076e2dbd4b82d8c9e6b65e932) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 834669d1 by JaeHoon Lee at 2026-07-29T15:18:16+02:00 v3dv: use the binning VS variant for the binning VPM config compute_vpm_config() reads the render VS into vs_bin_variant, so the binning VPM config comes from the wrong program data. The binning VS writes less, so this only ever under-sizes the binning VPM allocation. Fixes: 9e7d9a6efb67 ("v3dv: add support for geometry shaders to pipelines") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 771dfe55fcb62b62212b418d7f702ab8d42ea07e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - f306ab5f by JaeHoon Lee at 2026-07-29T15:18:16+02:00 v3dv: record the multiview geometry shader with its Vulkan stage bit active_stages is a VkShaderStageFlags, but MESA_SHADER_GEOMETRY is an ordinal, so this sets VERTEX|TESSELLATION_CONTROL instead of GEOMETRY, and vkGetPipelineExecutable*KHR skips the shader. Use mesa_to_vk_shader_stage(), as the rest of the file does. Fixes: 5872c7ca7ba7 ("v3dv: inject a custom passthrough geometry shader for multiview pipelines") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 1d9201e377eb6f595c83d68757b054818bd4176a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 0e124fad by JaeHoon Lee at 2026-07-29T15:18:16+02:00 v3dv: record the no-op fragment shader with its Vulkan stage bit Same as the previous commit: MESA_SHADER_FRAGMENT sets TESSELLATION_EVALUATION instead of FRAGMENT. Fixes: 02de1d9ab16f ("v3dv: add a no-op fragment shader if we don't have one") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit fb7300c6da2b740b0605b1562fe569391f33be94) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - c8004b95 by Pavel Ondračka at 2026-07-29T15:18:16+02:00 nv50_ir_ra: align B96 spill slots to vec4 This fixes nouveau NVE4 shader-db godot crash exposed by vectorizing commutative ALU sources. Fixes: d12e16fc3b5 ("nouveau: Handle unaligned tlsBase during spills") Suggested-by: Karol Herbst <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Mel Henning <[email protected]> Signed-off-by: Pavel Ondračka <[email protected]> (cherry picked from commit 05f9f41fc294f6adb6d9b8ffed9a801bb232f40e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 5df55d2c by Timothy Arceri at 2026-07-29T15:18:17+02:00 zink: fix swap interval changes being dropped db9dbcbec00 unconditionally restores the previous present mode before attempting to update the swapchain, which turns runtime swap interval changes into a no-op: * the immediate path (no currently acquired image) recreates the swapchain with the old present mode still set, so nothing changes * the deferred path added to zink_kopper_present_queue() can never trigger since cdt->present_mode always matches the current swapchain's mode The only remaining effect is pointless swapchain recreation whenever an app changes the swap interval while no image is acquired. Keep the new present mode instead, and only restore the old one if the immediate swapchain update fails. Fixes: db9dbcbec00 ("zink: defer swapchain updates for interval changes if acquired image is active") Generated-by: Claude Code (Fable 5) Reviewed-by: Mike Blumenkrantz <[email protected]> (cherry picked from commit 09180f0eed603872b75f44b398048db06f236f54) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - bf8b724e by Benjamin Cheng at 2026-07-29T15:18:17+02:00 ac/vcn_enc: Disable var slice for preencode with VCN4 An internal FW change was never upstreamed, so the version numbers that were previously put here became inaccurate. Disable it until the FW fix is available. Signed-off-by: Benjamin Cheng <[email protected]> Cc: mesa-stable Reviewed-by: David Rosca <[email protected]> (cherry picked from commit c2ecb433fda48ee5d0ef295b3aa79f23143ceeca) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 1b3d771d by Loïc Molinari at 2026-07-29T15:18:17+02:00 u_blitter: Fix out-dated draw_rectangle handler doc Remove mention of UTIL_BLITTER_ATTRIB_COLOR and UTIL_BLITTER_ATTRIB_TEXCOORD and add a few words about UTIL_BLITTER_ATTRIB_XY and UTIL_BLITTER_ATTRIB_XYZW. Fixes: 22ed1ba01a4 ("gallium/u_blitter: use draw_rectangle for all blits except cubemaps") Fixes: ca09c173f6e ("gallium/u_blitter: remove UTIL_BLITTER_ATTRIB_COLOR, use a constant buffer") Signed-off-by: Loïc Molinari <[email protected]> Reviewed-by: Ashley Smith <[email protected]> (cherry picked from commit 47efd739121d51e2f9049cec715a70c13767a67c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 3b3fc049 by Georg Lehmann at 2026-07-29T15:18:17+02:00 nir/opt_dead_write_vars: handle atomics as reads As long as there is no cross invocation access, write, followed by atomic, followed by write is valid. We can not remove the first write in this case: shared_array[invocation_index] = 0; res = atomicAdd(shared_array[invocation_index], 2); shared_array[invocation_index] = 0; Cc: mesa-stable Reviewed-by: Rhys Perry <[email protected]> (cherry picked from commit 1bc7b09d583b4f623fe18983f048014c508a2364) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 3a277ab8 by Lionel Landwerlin at 2026-07-29T15:18:17+02:00 anv: flush accumulated barriers for top of TOP_OF_PIPE If there is a barrier preceding the write timestamp, we need to flush it to make sure the timestamp is collected after the barrier is executed. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: mesa-stable Reviewed-by: Tapani Pälli <[email protected]> (cherry picked from commit c6f6c9b02da991c9c878d8992b4074bbba70aa73) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 8a49c4fc by Ian Romanick at 2026-07-29T15:18:17+02:00 brw: Handle empty top block in brw_nir_move_interpolation_to_top If the block is empty, nir_block_first_instr returns NULL. nir_before_instr(NULL) creates an invalid cursor that eventually results in a segfault. This was discovered while testing !42933 on Ratchet and Clank - Rift Apart. I also considered using nir_before_block(top). That would require moving the instructions in reverse order because nir_before_block always added at the top. That really demands a comment explaining the reasoning. Instead, I decided to do the obvious thing that is slightly more code. Fixes: 3037603b703 ("intel/fs: Linked list micro optimizations in brw_nir_move_interpolation_to_top") Reviewed-by: Michael Cheng <[email protected]> (cherry picked from commit a7cdad725932c60e8b760b61115574d8fb935a3c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 4892210c by Lionel Landwerlin at 2026-07-29T15:18:17+02:00 anv: fix Wa_18040903259 The description above says we need CS_STALL on both PIPE_CONTROL, it was missing for the first one. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 243c01c703 ("anv/iris: implement Wa_18040903259") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15844 Reviewed-by: Michael Cheng <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> (cherry picked from commit be696377a17b63228fc4ff78284ac1379506d0ae) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 15e7e896 by Iván Briano at 2026-07-29T15:18:17+02:00 anv: fix 2d-array to 3d blits It was accounting for the depth center offset if src_image is 3D, assuming dst_image would be too, but with maintenance8 that may not be the case, so we need to check both. Fixes new tests: dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.2d_array_to_3d.reverse_blit_* Cc: mesa-stable Signed-off-by: Iván Briano <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> (cherry picked from commit 1c6e7e82912fa43acd538cb2e30a4d132c296dac) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 321b35e3 by Adam Stylinski at 2026-07-29T15:18:17+02:00 nv30: fix an issue when this push buffer is NULL Fixing an issue when an empty context is destroyed. When a context is destroyed prior to this buffer being initialized, a NULL pointer dereference occurs. The nv50 & nvc0 implementations do this same thing. Reviewed-by: Karol Herbst <[email protected]> Tested-by: Filip Gawin <[email protected]> Backport-to: * (cherry picked from commit 4ce4feff89bad1ffd2ac7933ab25b44b6cca38d9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9d2f0ae0 by Filip Gawin at 2026-07-29T15:18:17+02:00 nv30: fix 1 << 31 issues Reviewed-by: Karol Herbst <[email protected]> Backport-to: * (cherry picked from commit 51a7e9723538833e74ea9aebc251db22743eaf7f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 298f6500 by Filip Gawin at 2026-07-29T15:18:17+02:00 nv30: fix another left shift cannot be represented in type 'int' Reviewed-by: Karol Herbst <[email protected]> Backport-to: * (cherry picked from commit 81dca3bf64c086bbae6c542824f5a82f34a0ed3f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - ac7b5d46 by Lionel Landwerlin at 2026-07-29T15:18:17+02:00 vulkan/runtime: fixup vk_shader leak on RT group recompile If you compile the same RT groups in multiple processes, there is a chance one process writes the disk cache with one of the shader in the group. Another process will pickup on the disk cache entry but not have all the entries for the group and therefore trigger a recompile. In that unlikely cases that is probably only reachable while running the CTS in multiple processes, there will be a shader leak that will materialize later at cache destroy : deqp-vk: ../src/vulkan/runtime/vk_pipeline_cache.c:687: vk_pipeline_cache_destroy: Assertion `cache->object_cache->entries == 0' failed. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: mesa-stable Reviewed-by: Ivan Briano <[email protected]> (cherry picked from commit 879365ec9f06adef47f116d11b88632264c1f271) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - eaedc7e6 by Timothy Arceri at 2026-07-29T15:18:17+02:00 util: add Blockland workaround for crash The game only initialises the glFramebufferTextureLayerEXT entry point as part of the EXT_geometry_shader4 / NV_geometry_program4 function groups, so without one of those extensions advertised the game calls a NULL pointer when "Shader Quality" is set to high and crashes. The function is provided by EXT_texture_array which Mesa does support, so advertise one of the extensions to avoid the crash. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/13311 (cherry picked from commit df73bd930ae57bc1928beb1fdfb30bc3ab41b684) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 1c94f63c by Valentine Burley at 2026-07-29T15:18:17+02:00 ir3: Fix ballot_components for subgroups smaller than 32 ballot_components becomes 0 when max_subgroup_size is smaller than 32. Clamp it to a minimum of 1. Fixes: 639d7946c71 ("freedreno: Add initial A702 support") Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit ff5352b4900737d62d8e3fa5878ebc6c381aace0) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - ce78fc5d by Valentine Burley at 2026-07-29T15:18:17+02:00 ir3: Derive max_variable_workgroup_size from device limits max_variable_workgroup_size was hardcoded to 1024, which is incorrect for devices with a smaller threadsize_base such as A702. Use nir_options.max_workgroup_invocations to override the hardcoded value. Fixes: 639d7946c71 ("freedreno: Add initial A702 support") Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit be71f85a78c5d106b7adae912a7f22811ad8954e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b55d0517 by Valentine Burley at 2026-07-29T15:18:17+02:00 ir3: Compute subgroup_size from threadsize_base ir3_info::subgroup_size was hardcoded to 64 (or 128 with double threadsize), which is incorrect for devices with a smaller threadsize_base such as A702 (16/32). Fixes: 639d7946c71 ("freedreno: Add initial A702 support") Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit 5e66bfd939a34093cc9db22c64a7698955f98df9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - e6e71c90 by Jan Meisel at 2026-07-29T15:18:17+02:00 nir/range_analysis: handle msad_4x8 in unsigned upper bound get_alu_uub() already had logic for nir_op_msad_4x8, but the opcode was missing from the early ALU opcode allowlist. This made the existing case unreachable and forced the analysis to return the default UINT32_MAX bound. Add nir_op_msad_4x8 to that supported-opcode switch. Fixes: 0477421f7db ("nir: add msad_4x8") Reviewed-by: Georg Lehmann <[email protected]> Assisted-by: Codex Signed-off-by: Jan Meisel <[email protected]> (cherry picked from commit dec6f98c7bea75d9fade316e57ea272d2dd218a8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 37149aa6 by Connor Abbott at 2026-07-29T15:18:17+02:00 tu: Fix resetting command streams with writeable BOs We were forgetting to reset the start pointer that is used when switching back to writeable, which meant that when using the CS again and again making the CS writeable, we would keep going where we left off in the BO instead of actually reusing it. We still threw away the other BOs, but this meant that we would eventually run out of space and grow the BO unnecessarily, and if every BO hit the maximum size of 4MB then we could easily run out of memory eventually in games with hundreds of command buffers. Fixes: ebb8e104a56 ("tu/cs: Add support for CS patching") (cherry picked from commit c140fdd2d163bc3cefc29dd3f457c3a131fd1bc0) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9d53d131 by Jan Meisel at 2026-07-29T15:18:17+02:00 radeonsi/vcn: fail feedback for truncated encodes VCN stops writing encoded output at allowed_max_bitstream_size, but can still report the full coded frame size in feedback. If that size is larger than the bitstream buffer VA clients can read past the mapped buffer when copying VACodedBufferSegment::buf. Record the bitstream size left after packed headers, clamp feedback to that limit, and flag the encode as failed if the reported size exceeds it. The VA frontend then reports the frame as bad instead of exposing a truncated bitstream as valid output. Analysis and patch by Maksim Nikolaev. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15774 Cc: mesa-stable Reviewed-by: David Rosca <[email protected]> Assisted-by: Codex (cherry picked from commit 15e06548daba70c7adb222fdffbdf2f0d7f1e0d1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - c41161a1 by David Rosca at 2026-07-29T15:18:18+02:00 vulkan/video: Fix coding AV1 decoder/encoder_buffer_delay Cc: mesa-stable Reviewed-by: Benjamin Cheng <[email protected]> (cherry picked from commit 71f8d76c7d6eb355edb77344ceed23889fe673a1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - efe2933c by David Rosca at 2026-07-29T15:18:18+02:00 vulkan/video: Don't code AV1 decoder model info when not present We always coded decoder model info, with all values being zero if we got NULL pStdDecoderModelInfo from app. Cc: mesa-stable Reviewed-by: Benjamin Cheng <[email protected]> (cherry picked from commit ff12737333ae32b11e784739cdcb569fe61c6db2) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 7c4082da by David Rosca at 2026-07-29T15:18:18+02:00 vulkan/video: Fix coding AV1 operating points We always coded the default operating point, because the app input wasn't copied. Cc: mesa-stable Reviewed-by: Benjamin Cheng <[email protected]> (cherry picked from commit 5e1cf2cb5da1f51782ea69b2083c5e61deb635d6) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - e4614ee6 by David Rosca at 2026-07-29T15:18:18+02:00 d3d12/video: Don't reset batches in fence_wait va frontend unlocks driver mutex while waiting on fences, so there is a race accessing codec when trying to reset batches. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15886 (cherry picked from commit 42f636bee95409f8ac89a453ab0edcbe58530180) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - a8138e01 by David Rosca at 2026-07-29T15:18:18+02:00 vulkan/video: Fix coding H265 ref pic list modification lists This should code num_ref_idx_l*_active entries, not minus 1. Change it to use the minus1 value to match spec. Cc: mesa-stable Reviewed-by: Benjamin Cheng <[email protected]> Reviewed-by: Hyunjun Ko <[email protected]> (cherry picked from commit 90e7282527a5f3907264ed4b146c6004092fa183) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 075a4562 by David Rosca at 2026-07-29T15:18:18+02:00 vulkan/video: Fix coding H265 SPS pcm block sizes, inter ref pic set and lt refs Cc: mesa-stable Reviewed-by: Benjamin Cheng <[email protected]> (cherry picked from commit 35a89677c45d79a7d08682d8afc4454009ca27d4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 38829de7 by Tacodiva at 2026-07-29T15:18:18+02:00 vulkan/runtime: Fix bad assumption in GetPipelineBinaryDataKHR pPipelineBinaryDataSize is not guaranteed to be 0-initialized when calling `vkGetPipelineBinaryDataKHR` without an output buffer. This commit changes the check to see if the buffer is null instead of the possibly uninitialized length being 0. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15901 Fixes: 5c47ac640b ("vulkan/runtime: implement VK_KHR_pipeline_binary") Reviewed-by: Lionel Landwerlin <[email protected]> (cherry picked from commit 53a453b3ef7f3eb6a0e7ae37bd93985916497885) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 4d832cd0 by Juan A. Suarez Romero at 2026-07-29T15:18:18+02:00 v3d: save fragment constants on sand8/sand30 blit These blit functions were setting a fragment constant buffer for their own operation, but relied on current constant buffer to be saved before, which actually didn't happen as the BLIT operation didn't include it. So they when restoring the constant buffer, nothing was saved to restore, which leads to crashes. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15857 Fixes: a69aaadec1b ("v3d: add more blitter ops for saving resources") Signed-off-by: Juan A. Suarez Romero <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 8b79064907bb8b0677fdae942483e20b54cf4a3d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - ef7dddeb by Timothy Arceri at 2026-07-29T15:18:18+02:00 nir/opt_dead_write_vars: handle memcpy_deref as reads memcpy_deref reads its source and writes its destination, but the pass did not account for it. A store feeding an OpCopyMemorySized copy could be wrongly eliminated by a later store to the same deref, since nothing marked the intervening access as a use. memcpy is a sized copy that walks the derefs in a loop, so it can touch memory beyond the src/dst deref itself. A deref comparison is therefore not sufficient - conservatively clear all unused writes in the accessed modes. Reviewed-by: Georg Lehmann <[email protected]> Assisted-by: Claude Code (Claude Opus 4.8) Cc: mesa-stable (cherry picked from commit 0a12d316e7ecaad7474ee782636675b72fcf9ffb) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 36e379d3 by Valentine Burley at 2026-07-29T15:18:18+02:00 tu: Use computed subgroup size Some turnip paths still hardcoded a subgroup size of 64 (or 128 with double_threadsize), which is incorrect for devices with a smaller threadsize_base such as A702. Fixes: 639d7946c71 ("freedreno: Add initial A702 support") Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit 69416494db271747d015b6ab010f3e348d7f76da) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - faffab91 by Yiwei Zhang at 2026-07-29T15:18:18+02:00 venus: properly check sync2 enablement We might be able to upgrade instance api version or simply enable sync2 behind the app, but let's still forward for now. Fixes: 07cee75c39c ("venus: layer vkQueueSubmit2 over vkQueueSubmit w/o sync2") (cherry picked from commit 64cbdd73a878f44952ed640e4d3f7d6aff442b36) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 739cf62d by Yiwei Zhang at 2026-07-29T15:18:18+02:00 venus: host image copy to scrub present_src layout if needed Fixes: c13da1c744a ("venus: implement host image copy commands") (cherry picked from commit f3ea8314c1b2f5a1edc2a323dcf8735221238e88) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 41601f10 by Timothy Arceri at 2026-07-29T15:18:18+02:00 util/mesa: add workaround to zero invalidated buffers Little Inferno streams its vertex data through glMapBufferRange(GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT), but only partially writes each 32-byte vertex, relying on the bytes it doesn't write reading back as zero. llvmpipe happens to satisfy this: it maps buffer storage directly and its allocations start out as kernel-zeroed pages, so the never-written bytes remain zero. radeonsi and iris recycle buffer memory (BO cache and staging upload buffers) without clearing it, so those bytes contain stale data and the game renders corrupt geometry. The game is relying on undefined behaviour; per the spec: "MAP_INVALIDATE_RANGE_BIT indicates that the previous contents of the specified range may be discarded. Data within this range are undefined with the exception of subsequently written data." Here we work around this with a new driconf option (zero_invalidated_buffers) that zeroes the memory returned by write-only invalidating maps, and enable it for Little Inferno. Cc: mesa-stable Generated-by: Claude (Fable 5) Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/7903 Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> (cherry picked from commit 8a6f0fca20cd2e9ce47f3f562a44fa6a0c8f25e1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 928ab2e4 by Sushma Venkatesh Reddy at 2026-07-29T15:18:18+02:00 intel/dev: Clamp PTL+ CS workgroup threads to 32 PTL introduces compute workgroup limits that depend on SIMD width and GRF usage. As a simple workaround suitable for stable releases, clamp max_cs_workgroup_threads to 32 on PTL+. This causes brw_simd_should_compile() to reject SIMD16 for large compute workgroups requiring more than 32 hardware threads and select SIMD32 instead, avoiding unsupported configurations while preserving the advertised 1024-invocation workgroup limit. This is a conservative workaround until PTL workgroup limits are modeled more accurately. Cc: mesa-stable Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> (cherry picked from commit ea77d4e261806c642f168beb5aac671b626bb2c5) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9bfed776 by Danylo Piliaiev at 2026-07-29T15:18:18+02:00 tu: Custom resolve should always use AVOID_CCU layout E.g. dynamic subpass with custom resolve always has resolve_count = 0, but still needs TU_GMEM_LAYOUT_AVOID_CCU. Fixes: ad84ae27190 ("tu: Implement VK_QCOM_subpass_shader_resolve") Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit 02035be13a3492c0a5a639a21a956693848c5c1f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - e09ffdfc by Timothy Arceri at 2026-07-29T15:18:18+02:00 util: add workaround for Riddick using round() in glsl 1.20 Round is only advertised in 1.30 but the game uses 1.20 so force 1.30 Also fix up stray tab on the disable_uniform_array_resize line while we are updating this games workarounds. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/11083 Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> (cherry picked from commit efd508cf90d597bb11c874674366c8ee8641745d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - f8e0ed5c by Timothy Arceri at 2026-07-29T15:18:18+02:00 llvmpipe: emit FS input vertex attributes in driver location order compute_vertex_info() emitted the vertex attributes by walking the FS input variables in declaration order, while the FS reads the input with driver location i from attrib i + 1. Since dbbb46aa38c the two orders can disagree: the FS inputs PRIMITIVE_ID, VIEWPORT and LAYER are assigned driver locations after all other inputs while the variable list is sorted by location, so the FS read its inputs from the wrong attribs when gl_PrimitiveID was used together with user varyings without a geometry shader. Emit the attributes indexed by driver location instead. This also removes the slot_emitted dedup, which could skip an attrib and shift all following attribs away from their FS input mapping; variables that share a slot (packed components) collapse onto the same driver location naturally. Fixes: dbbb46aa38c ("nir: compute io base for fragment shader inputs which maybe per primitive") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/15660 Reviewed-by: Dave Airlie <[email protected]> Generated-by: Claude Code (Claude Fable 5) (cherry picked from commit 90c66c69767add9a374445ebf1052fa683edab39) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 6d23e8e6 by Konstantin Seurer at 2026-07-29T15:18:18+02:00 radv/bvh: Fix updating acceleration structures containing AABBs If the node type is not set, child_index will not be calculated correctly. Fixes: 405c93c ("radv: Optimize BVH4 acceleration structure updates") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15848 Reviewed-by: Natalie Vock <[email protected]> (cherry picked from commit 67eae5e5fd8c918e16d671a2255426a4af4e66c0) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 8d5ac88b by Connor Abbott at 2026-07-29T15:18:18+02:00 tu: Fix condition for skipping emitting aprons We were trying to detect the case where both tiles are not subsampled and they touch each other, i.e. for tiles in the high-density region in the center, and we therefore must not setup an apron. However we only checked if their edges have the same x or y coordinate, and that is not enough to say their edges touch, because we have to check the other coordinate as well. For example, when processing horizontally-adjecent tiles, we may have a situation like this in subsampled space: +--------------+--------------+ | | | | | <- other_tile in | |------+ subsampled space | | | | other_tile | +--------------+ size=(2, 2) | | | pos=(0, 1) | | tile | area=(4, 4) | | size=(1, 1) | | | pos=(1, 0) | | | area=(1, 1) | | | | | +--------------+--------------+--------------+ Because their vertical edges are at the same y coordinate, we'd assume they're touching in subsampled space when actually they're not. Fixes: 4b87df29b3a ("tu: Implement subsampled images") (cherry picked from commit 9e40eb6c80cdd88c12326b3bd6ffda8bd6305d3d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b158f2d4 by JaeHoon Lee at 2026-07-29T15:18:19+02:00 nvk: free copy_memory_indirect_temps on command buffer destroy nvk_create_cmd_buffer() initializes two util_dynarrays, cmd->pushes and cmd->copy_memory_indirect_temps. nvk_destroy_cmd_buffer() finalizes the former but not the latter. Both are zero-initialized (mem_ctx == NULL), so their backing storage comes from realloc() and is released by util_dynarray_fini(); nvk_reset_cmd_buffer() clears them without freeing, keeping the allocation for reuse. copy_memory_indirect_temps grows a heap buffer the first time vkCmdCopyMemoryIndirectKHR is recorded (util_dynarray_ensure_cap() in nvk_cmd_indirect.c), and that buffer is not freed: destroying the command buffer frees the struct but not the storage the dynarray points at. The nvk_cmd_mem entries it held are tracked separately in cmd->owned_mem and are freed there, so the leak is the pointer array itself. Finalize it alongside cmd->pushes. Fixes: cbec12627bb ("nvk: VK_KHR_copy_memory_indirect") Reviewed-by: Mel Henning <[email protected]> (cherry picked from commit 84c7fef4581a4bd6673923240dab1a0fb6795e7a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 6d979fb7 by JaeHoon Lee at 2026-07-29T15:18:19+02:00 v3dv: avoid restoring stale descriptor state after a meta op v3dv_cmd_buffer_meta_state_push() skips the descriptor_state memcpy when the current gfx descriptor_state is not valid. The skip path doesn't propagate that invalid state into state->meta, so state->meta's copy keeps whatever a previous meta op's memcpy left there. has_descriptor_state is still unconditionally set to true, so pop cannot tell push saw an invalid state this time: it reads the stale valid flag as current and, if nonzero, restores a descriptor set pointer left over from an earlier operation instead of the app's actual state. Clear meta's descriptor_state.valid in the skip branch so pop can observe the invalid state instead of reading what was left behind. Also fix a "subpass" typo in the neighboring attachment-state comment in the same function, found while reading through this code. Fixes: e59e7069283 ("v3dv: don't reset descriptor state after a meta operation") Reviewed-by: Iago Toral Quiroga <[email protected]> (cherry picked from commit 0ff8b37a44ed8d8e76beb7c5df48e5a0867c7053) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b2d4d018 by JaeHoon Lee at 2026-07-29T15:18:19+02:00 nvk: report fills from memory correctly The pipeline executable statistic for fills from memory reports the spill count. Change it to report fills from memory instead. Fixes: 2a0302967feb ("nak: Add spill/fill statistics") Reviewed-by: Mel Henning <[email protected]> (cherry picked from commit eadcadf067ede525b5f511d22215272bb31eaa41) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 97712e0c by Dmitry Baryshkov at 2026-07-29T15:18:19+02:00 tu: limit VALVE_fragment_density_map_layered to Vulkan 1.1 devices VK_VALVE_fragment_density_map_layered requires Vulkan 1.4, VK_KHR_extended_flags or VK_KHR_maintenance5 (which in turn requires at least Vulkan 1.1). Limit the VALVE_fragment_density_map_layered extension to Vulkan 1.1 until the driver implements KHR_extended_flags extension. Fixes: a3a53b7cee4a ("tu: Implement VK_VALVE_fragment_density_map_layered") Signed-off-by: Dmitry Baryshkov <[email protected]> (cherry picked from commit 8116745e085bcf2d66575f9e6d25857352abee89) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 7969fa0f by Frank Bouwer at 2026-07-29T15:18:19+02:00 pvr: Fix for depth stencil 2d array writes. The base array layer was not taken into account. This fixes a reverted commit. original commit: d058d2adb315e67bb62f4ff2b292bfd751f8be7f revert commit: 7f01ea0094dda7614287912c9922ad7d3e761507 Fix dEQP-GLES: dEQP-GLES31.functional.texture.multisample.samples_*.use_texture_depth_2d_array Fix regressions introduced by original commit DEQP-VK: dEQP-VK.api.image_clearing.core.clear_depth_stencil_attachment.multiple_layers.* dEQP-VK.api.image_clearing.core.partial_clear_depth_stencil_attachment.multiple_layers.* dEQP-VK.api.image_clearing.dedicated_allocation.clear_depth_stencil_attachment.multiple_layers.* dEQP-VK.api.image_clearing.dedicated_allocation.partial_clear_depth_stencil_attachment.multiple_layers.* Backport-to: 26.1 Signed-off-by: Frank Bouwer <[email protected]> Reviewed-by: Frank Binns <[email protected]> (cherry picked from commit 1d899a489de21796a28075b8a4aed8a5954b0057) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 215fc2e2 by Danylo Piliaiev at 2026-07-29T15:18:19+02:00 tu: Fix subsampled metadata and blit emission for separate stencil Fixes: 4b87df29b3a ("tu: Implement subsampled images") Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit bf70ab68a2105b24e211e3862337e95c7c2c97fd) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 43070f68 by Toshinari Morikawa at 2026-07-29T15:18:19+02:00 egl: avoid calling loader_get_driver_for_fd with fd = -1 platform_android.c, platform_surfaceless.c does not initialize fd_display_gpu before calling dri2_create_screen so that "libEGL warning: failed to get driver name for fd -1" was always printed on log. Cc: mesa-stable Tested-by: Dieter Nützel [email protected] Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/13850 Signed-off-by: Toshinari Morikawa <[email protected]> (cherry picked from commit 0bc2efab05ce6cf1dc90aeeff7e064482c127b2d) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 1f78ef90 by Peng_Lx at 2026-07-29T15:18:19+02:00 turnip/kgsl: close the dma-buf fd of our own allocations The three internal allocation paths -- dma-heap, ION and legacy ION -- obtain a dma-buf fd from the allocator and hand it straight to tu_bo_init_dmabuf() as the function's return value. tu_bo_init_dmabuf() only borrows that fd: kgsl_bo_init_dmabuf() keeps a dup of its own in bo->shared_fd, and that dup is what kgsl_bo_finish() closes. Borrowing is the right contract for an imported dma-buf, where the fd belongs to the caller, but these three allocators created the fd themselves, so the reference they hold is never dropped. The result is that every internally allocated shareable BO leaks one dma-buf fd. kgsl_bo_finish() frees the KGSL handle and closes its dup, but the dma-buf refcount never reaches zero, so the memory stays allocated for the lifetime of the process. It is only reachable for exportable BOs, which makes it easy to miss: ordinary offscreen textures are unaffected. It shows up on a Wayland compositor, whose EGL window back buffers are exportable and are reallocated whenever Mesa trims the ones that went idle. Toggling the niri overview on an Adreno 830 (KGSL, 3840x2560 panel) leaked one 37.5 MB buffer per toggle, growing without bound -- 80 toggles took dma-buf usage from 202 MB to 3956 MB. With this patch the same run stays flat at 202-239 MB, and the allocate/close ledger balances exactly. Fixes: 17c12a9924a0 ("turnip/kgsl: Support external memory via ION/DMABUF buffers") Cc: mesa-stable Signed-off-by: Peng_Lx <[email protected]> (cherry picked from commit 9f955af118d0cdabae776d08e36f99f7aa92317b) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b7deb8c2 by Caio Oliveira at 2026-07-29T15:18:19+02:00 nir: Account for cmat memory accesses in copy_prop_vars Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15932 Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit b277a4925a161592801d711a8258433e2e2cda42) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b0f0fe99 by Marek Olšák at 2026-07-29T15:18:19+02:00 radv: fix determining the raster prim for guardband No change in correctness, but this is more accurate and faster because we now have a tighter guardband around the viewport more often. The following commits that are fixes depend on this. Cc: mesa-stable Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit c61fdeb64c4765927708a1426426055266ba8776) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - eafee8fa by Marek Olšák at 2026-07-29T15:18:19+02:00 radv: fix determining the raster prim for line mode Cc: mesa-stable Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit 6b534309ead43c157b11f467bbdc059dd1816dcc) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 86e036ca by Marek Olšák at 2026-07-29T15:18:19+02:00 radv: fix determining the dynamic raster prim for FS barycentrics Cc: mesa-stable Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit 9a77ee629d75f35a048649462c44fdc3f1e1d676) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 969d5a14 by Marek Olšák at 2026-07-29T15:18:19+02:00 radv: fix determining the static raster prim for FS barycentrics and front_face This also happens to fix the replacement of front_face with a constant when face culling is enabled, improving performance. No front_face replacement was done before this commit according to gpu-ratemeter. That may have been because the unknown_rast_prim condition was incorrect and its result was unnecessarily true most of the time. Cc: mesa-stable Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit edeb6dd258b216bc45c9b2e7d260b01cce81e3af) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 291edf60 by Karol Herbst at 2026-07-29T15:18:19+02:00 rusticl/memory: return 0 for CL_IMAGE_SLICE_PITCH also for 2d images Backport-to: * Tested-by: Rob Clark <[email protected]> Reviewed-by: Rob Clark <[email protected]> (cherry picked from commit 1b0f0e0a83c4b20a0a24df41bafc6d0ca88d5fcb) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 936a3cf1 by Ryan Mckeever at 2026-07-29T15:18:19+02:00 docs: advertise VK_KHR_multiview support for Bifrost Fixes: a1376449c80 ("panvk: Expose support for multiview on v7") Reviewed-by: Lorenzo Rossi <[email protected]> Reviewed-by: Erik Faye-Lund <[email protected]> (cherry picked from commit f11071ce865144ca3ff759c9d1a6c46ede06a16e) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 88bf25d7 by Caio Oliveira at 2026-07-29T15:18:19+02:00 anv: Include build and device identity in shader binary UUID In anv_physical_device.c we document that shaderBinaryUUID includes the driver build identity, but anv_shader_init_uuid() only hashed compiler knobs and workaround settings. Add the build id and device info to the UUID so driver or device-specific shader binary ABI changes invalidate VK_EXT_shader_object binaries. Fixes: 4314c891f4c ("anv: expose VK_EXT_shader_object") Assisted-by: Pi coding agent (GPT-5.5) Reviewed-by: Lionel Landwerlin <[email protected]> (cherry picked from commit c4039495967db0bff1ffaf2c955bc8586ce9c269) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9e3287db by Georg Lehmann at 2026-07-29T15:18:19+02:00 nir: fix divergence for deref_cast The old check was broken because deref->var is a union member, and not valid for deref_cast. Either it's a trivial bit size changing cast, or it's a pointer to deref cast. In the first case we can rely on the parent divergence, in the second we have to check if the deref could be of a mode where even a uniform pointer would mean a different address per invocation. Fixes: df86c5ffb35 ("nir: add divergence analysis pass.") Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 2c3c8b7fc267a226ad5d38035b9e86526d6063d2) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 283c3c15 by Eric Engestrom at 2026-07-29T15:18:19+02:00 pick-ui: turn commit.date into a (cached) property This is a property of the commit, not an action performed on the commit, but it's expensive to compute so let's cache it. (cherry picked from commit b6386e96e5a81e074a90dff724ef3c35b1a9d1e7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 561e1dc4 by Eric Engestrom at 2026-07-29T15:18:20+02:00 pick-ui: show MR number for additional context Shows which commits belong together, and shows context for problematic commits (doesn't backport, doesn't build, fails the unit tests, breaks a CI test). (cherry picked from commit 2086df71501a2e2934d36a33d5ea9087057423e9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 1a79d88e by Karol Herbst at 2026-07-29T15:18:20+02:00 rusticl/kernel: add libclc source hash to kernel shader keys Backport-to: * (cherry picked from commit 780727e68adc62f446dc1df7bcaf86f20b6c03d1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b3c72370 by Marek Olšák at 2026-07-29T15:18:20+02:00 radv: don't expose memory types from AMD_device_coherent_memory without the ext Fixes: 7fa1b487556 - radv: disable AMD_device_coherent_memory on gfx12 due to out of order behavior Reviewed-by: Georg Lehmann <[email protected]> (cherry picked from commit 5f4595a5c07a2e428a9c4416ed4c94659598bf69) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9f6e69e2 by Rhys Perry at 2026-07-29T15:18:20+02:00 ac/nir/ngg: don't shrink device-scope memory barriers Signed-off-by: Rhys Perry <[email protected]> Backport-to: * Reviewed-by: Marek Olšák <[email protected]> (cherry picked from commit 027a2b45fcb69ed5e421e6a3f829ea1fd7c65787) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9b3c5935 by Yiwei Zhang at 2026-07-29T15:18:20+02:00 venus: ensure cached vn_ring_submit batches are bounded The prior fix can still end up with unbounded leak since the actual shmem count in the storage isn't tracked. This change reverts the prior fix while avoiding caching over-sized batch. Practically, there's no need to cache more since the malloc overhead is trivial as compared to indirect uploads. Fixes: 2cf1f6cb508 ("venus: fix unbound malloc leak in vn_ring_get_submits") (cherry picked from commit 09fb7ca8d824616712e8d3b2639240087800e3d5) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 79a77e77 by Danylo Piliaiev at 2026-07-29T15:18:20+02:00 tu: Fix gfx_write_access checking for TRANSFORM_FEEDBACK_COUNTER_READ_BIT It should check for WRITE_BIT. Fixes: 59259a01671 ("tu: Convert to sync2 entrypoints") Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit 221d58dc47746e344d10b3149322131b4e0f2b27) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 724d0317 by Lionel Landwerlin at 2026-07-29T15:18:20+02:00 anv: add workaround for atomics on R11G11B10 images Support got dropped from the HW on Xe2+, some apps rely on this working even though it's not supposed to be supported. This workaround is enabled by default on Xe2+ and can be disabled for performance reasons. Signed-off-by: Lionel Landwerlin <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14920 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15823 Cc: mesa-stable Reviewed-by: Ivan Briano <[email protected]> (cherry picked from commit 70afad3b30648ae2e8a18d292e09622518b393c9) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - ccc324fa by Danylo Piliaiev at 2026-07-29T15:18:20+02:00 tu: Fix blit_cache_cleaned never being set to true tu6_emit_flushes clears cache's flush_bits, resulting in the follow up `flush_bits & TU_CMD_FLAG_BLIT_CACHE_CLEAN` never being true, leading to excessive flushing when dynamic input attachments were used. Fixes: a99600322c1 ("tu: Track possible feedback loops for dynamic renderpasses") Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit ba8de990e36474c9b46a103ca274c52fc15c87b8) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - e07ae880 by Jaakko Jokinen at 2026-07-29T15:18:20+02:00 nir: Add cases to nir_get_io_offset_src_number() Added cases nir_intrinsic_store_shared_unlock_nv and nir_intrinsic_load_shared_lock_nv. This fixes segmentation faults caused by the unexpected default return value -1. Fixes: 47f6c74b71c ("nir,nak: Add KeplerB shared atomics intrinsics and lowering") Reviewed-by: Mary Guillemard <[email protected]> (cherry picked from commit 61f6c264bcf917468854a82b2a0c9a0912bc6c1a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - b42945ad by utzcoz at 2026-07-29T15:18:20+02:00 virtio: magma-gpu-rs: accept a null device in virtgpu_kumquat_finish virtgpu_kumquat_init leaves the caller's pointer untouched when it fails, and VirtGpuKumquatDevice releases the device unconditionally from its destructor, so virtgpu_kumquat_finish is reached with a null pointer on every failed initialization. Box::from_raw on a null pointer raises a non-unwinding panic, which aborts the process and takes with it the error that explained why initialization failed. The surrounding catch_unwind cannot intercept that. Make the release side tolerate null instead of fixing the one caller. This is a C init/finish pair, and C's canonical release function treats null as a no-op, so C callers reasonably expect that; it also covers callers we do not control. Fixes: f2b07903abaf ("mesa: import virtgpu_kumquat_ffi") (cherry picked from commit 0989349030b36e6ce587cf70f2a5c7615465f04f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 8a07e8cb by Karol Herbst at 2026-07-29T15:18:20+02:00 vtn/opencl: fix libclc needing fp16 lowering to fp32 fp16 builtins inside libclc might be implemented on top of other fp16 builtins. However some of those might not have a fp16 version in which case we have to fall back to the fp32 one. This might be a libclc build system configuration issue, but we can easily workaround this by looking up in the current shaders whether we find a fp32 version of a builtin. Backport-to: * Reviewed-by: Zoltán Böszörményi <[email protected]> (cherry picked from commit 60654ceb9139ab8f289c6252bc12659fcf655e1c) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - d0504bbd by Frank Binns at 2026-07-29T15:18:20+02:00 pvr: rearrange some functions in pvr_arch_border.c This is in preparation for a follow on commit. Backport-to: 26.1 Signed-off-by: Frank Binns <[email protected]> Reviewed-by: Luigi Santivetti <[email protected]> (cherry picked from commit 311207091a7d9eecc5a0be6f9828e942709fa351) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 11cd8515 by Frank Binns at 2026-07-29T15:18:20+02:00 pvr: setup all format fields for custom border color entries This fixes an issue seen with depth/stencil formats where Zink creates a sampler with either a depth only or stencil only custom border color, but then uses this with an image with a combined depth/stencil format, taking either the depth or stencil aspect. This results in a mismatch between the format field that gets written in the border color entry and the one that gets read from the border color entry. For example, if a custom border color is setup for VK_FORMAT_S8_UINT and used in combination with a VK_FORMAT_D32_SFLOAT_S8_UINT image, taking the stencil aspect, then the format in the image state words will be X24G8X32. This results in the value in the X24G8X32 format field being looked up in the border color entry rather than the S8 field. One way to resolve this would be to add additional handling for depth/stencil formats to write values to all relevant format fields in a border color entry. However, a simpler approach is to setup all format fields for custom border color entries, as is already done for built-in border colors. This allows the code to be simplified, since the same function can be used for both cases. Fixes tests in dEQP-GLES31.functional.texture.border_clamp.*. Fixes: bf9c84991fc ("pvr: Add support for custom border colors") Signed-off-by: Frank Binns <[email protected]> Reviewed-by: Luigi Santivetti <[email protected]> (cherry picked from commit ea6e5b6b38322599bd36890ee1a4dec08771faf1) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 9f0b4eb3 by Lionel Landwerlin at 2026-07-29T15:18:20+02:00 brw: fix wa_18019110168 lowering If the linked mesh shader to the fragment shader doesn't have the workaround active, there is nothing to do. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: fcf4401824 ("brw: handle wa_18019110168 with independent shader compilation") Reviewed-by: Ivan Briano <[email protected]> (cherry picked from commit f8801d555b58d1965edab147018250830a3483a3) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - d737034f by Natalie Vock at 2026-07-29T15:18:20+02:00 radv/nir: Clean up descriptor index lowering This switches to a forward iteration over descriptor-related intrinsics. The biggest advantage of this is that we can now change the result types of vulkan_resource_(re)index, which also allows us to nuke all the special-casing for raytracing descriptors. Aside from just looking better, this will also allow us to implement mutable acceleration structure descriptors. Since this is needed to fix Unreal Engine 5.8, it should be backported even though it's a cleanup. Cc: mesa-stable (cherry picked from commit 0be03076dcdc2131f8084a67f5db4c07579a76fb) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 3be366d0 by Natalie Vock at 2026-07-29T15:18:20+02:00 radv: Expose mutable acceleration structure descriptors These Just Work(tm) now. Unreal Engine 5.8 needs it. Cc: mesa-stable (cherry picked from commit dcb6045ac5b45a0d086d37904588a4fc05262233) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 6b6c0f40 by Danylo Piliaiev at 2026-07-29T15:18:20+02:00 nir: Include scalarized component offsets in UBO ranges When scalarizing UBO loads, we should take into account per-component offset when calculating base and range. This is important for dynamically index row major matrices, where without this fix each row's base/range is calculated as if it starts from offset 0. ``` layout(std140, row_major, offset = 512) mat4 mat_arr[2]; ... = mat_arr[gl_ViewIndex] ``` Without the fix it was scalarized, then vectorized back into: ``` 32x4 %1266 = @load_ubo (%2638, %1297) (access=none, align_mul=64, align_offset=0, range_base=512, range=92) 32 %2725 = load_const (0x00000210 = 528) 32 %2726 = iadd %2725 (0x210), %1295 32x4 %1273 = @load_ubo (%2638, %2726) (access=none, align_mul=64, align_offset=16, range_base=512, range=92) 32 %2727 = load_const (0x00000220 = 544) 32 %2728 = iadd %2727 (0x220), %1295 32x4 %1280 = @load_ubo (%2638, %2728) (access=none, align_mul=64, align_offset=32, range_base=512, range=92) 32 %2729 = load_const (0x00000230 = 560) 32 %2730 = iadd %2729 (0x230), %1295 32x4 %1287 = @load_ubo (%2638, %2730) (access=none, align_mul=64, align_offset=48, range_base=512, range=92) ``` Notice the same base, which caused ir3 to not preload the whole 128b. After the fix we get: ``` 32x4 %1266 = @load_ubo (%2638, %1297) (access=none, align_mul=64, align_offset=0, range_base=512, range=80) 32 %2725 = load_const (0x00000210 = 528) 32 %2726 = iadd %2725 (0x210), %1295 32x4 %1273 = @load_ubo (%2638, %2726) (access=none, align_mul=64, align_offset=16, range_base=528, range=80) 32 %2727 = load_const (0x00000220 = 544) 32 %2728 = iadd %2727 (0x220), %1295 32x4 %1280 = @load_ubo (%2638, %2728) (access=none, align_mul=64, align_offset=32, range_base=544, range=80) 32 %2729 = load_const (0x00000230 = 560) 32 %2730 = iadd %2729 (0x230), %1295 32x4 %1287 = @load_ubo (%2638, %2730) (access=none, align_mul=64, align_offset=48, range_base=560, range=80) ``` Which results in load of the correct UBO range. Cc: mesa-stable Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit d9d106a5295dd4a220eb7918e1d0f16524ebb3d4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - c364c37d by Emma Anholt at 2026-07-29T15:18:20+02:00 freedreno: Don't force image component A=1 substitution on R/RG textures. This is a no-op for normal texture sampling, but with QCOM_image_processing the image component substitution happens before filtering (successfully, due to the underlying format), so re-substitution during the texture component swizzle stage causes incorrect A=1 when you should be getting the filtered value. This also means we need to refuse weight image sampling for BC1 RGB, where we have no choice but to do the A=1 substitution in the swizzle. Cc: mesa-stable (cherry picked from commit 3bdfd556b1ca602bef7936dc548f624708d1a5d7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 5473bf27 by Pohsiang (John) Hsu at 2026-07-29T15:18:20+02:00 d3d12: fix msvc build warning C4819 Fixes: 42f636bee95 ("d3d12/video: Don't reset batches in fence_wait") Reviewed-by: Sil Vilerino <[email protected]> (cherry picked from commit a25e41df17602b3c3962805be6fe748ad226abbc) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - d2158419 by Lionel Landwerlin at 2026-07-29T15:18:20+02:00 anv: fix leak in RT binding point Signed-off-by: Lionel Landwerlin <[email protected]> Cc: mesa-stable Reviewed-by: Michael Cheng <[email protected]> (cherry picked from commit b287c8fd44bfae03b9e7ef2585bf28c30d5bc67f) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 8727fbba by Georg Lehmann at 2026-07-29T15:18:21+02:00 aco/live_var_analysis: make sure shared vgprs are within the encodable vgprs If we are fine with a low number of waves, vgprs will be greater than 256 before we clamp to the vgpr limit. Cc: mesa-stable Reviewed-by: Daniel Schürmann <[email protected]> (cherry picked from commit da3e65d22d7a678160bfa68c4eee106282e1eea4) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - d2e0d1aa by Danylo Piliaiev at 2026-07-29T15:18:21+02:00 tu: Dirty LRZ after changing attachment locations disable LRZ writes We called tu_lrz_disable_write_for_rp, but didn't trigger LRZ state reemission. Fixes: 7ee9835475c ("tu/lrz: Disable LRZ when CmdSetRenderingAttachmentLocations is used") Signed-off-by: Danylo Piliaiev <[email protected]> (cherry picked from commit 3c0803f5a17f13bad5c2f2da7cdeaee4f792eeb2) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - 5f7827c0 by Valentine Burley at 2026-07-29T15:18:21+02:00 tu: Report correct maxFragmentInputComponents limits maxFragmentInputComponents doesn't need to reserve space for builtin variables. Remove the conservative adjustment and report the actual hardware limits. Cc: mesa-stable Signed-off-by: Valentine Burley <[email protected]> (cherry picked from commit 42694cb11015d3efea30abb3358b8a0b3875f71a) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43301> - - - - - cbe2e226 by Eric Engestrom at 2026-07-29T19:31:27+02:00 docs: add release notes for 26.1.6 - - - - - ffa422e5 by Eric Engestrom at 2026-07-29T19:31:27+02:00 VERSION: bump for 26.1.6 - - - - - 5ec50be9 by Timo Aaltonen at 2026-08-06T10:10:18+03:00 Merge branch 'upstream-unstable' into debian-unstable - - - - - 78164eac by Timo Aaltonen at 2026-08-06T10:10:54+03:00 version bump - - - - - b0ed9275 by Timo Aaltonen at 2026-08-06T10:19:27+03:00 releasing package mesa version 26.1.6-1 - - - - - 273 changed files: - .ci-farms/lima → .ci-farms-disabled/lima - .pick_status.json - VERSION - bin/pick/core.py - bin/pick/ui.py - debian/changelog - docs/features.txt - docs/relnotes.rst - docs/relnotes/26.1.4.rst - + docs/relnotes/26.1.5.rst - + docs/relnotes/26.1.6.rst - src/amd/common/ac_binary.c - src/amd/common/ac_gpu_info.c - src/amd/common/ac_gpu_info.h - src/amd/common/ac_surface.c - src/amd/common/ac_vcn_enc.c - src/amd/common/nir/ac_nir.h - src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c - src/amd/common/nir/ac_nir_lower_ngg_mesh.c - src/amd/compiler/aco_live_var_analysis.cpp - src/amd/vulkan/bvh/encode_gfx12.comp - src/amd/vulkan/bvh/update.comp - src/amd/vulkan/meta/radv_meta.c - src/amd/vulkan/meta/radv_meta.h - src/amd/vulkan/meta/radv_meta_clear.c - src/amd/vulkan/nir/radv_nir.h - src/amd/vulkan/nir/radv_nir_lower_abi.c - src/amd/vulkan/nir/radv_nir_lower_descriptors.c - src/amd/vulkan/nir/radv_nir_lower_fs_barycentric.c - src/amd/vulkan/nir/radv_nir_opt_fs_builtins.c - src/amd/vulkan/radv_cmd_buffer.c - src/amd/vulkan/radv_cmd_buffer.h - src/amd/vulkan/radv_constants.h - src/amd/vulkan/radv_descriptors.c - src/amd/vulkan/radv_instance.c - src/amd/vulkan/radv_instance.h - src/amd/vulkan/radv_physical_device.c - src/amd/vulkan/radv_physical_device.h - src/amd/vulkan/radv_pipeline_graphics.c - src/amd/vulkan/radv_pipeline_graphics.h - src/amd/vulkan/radv_queue.c - src/amd/vulkan/radv_shader.c - src/amd/vulkan/radv_shader.h - src/amd/vulkan/radv_shader_args.c - src/amd/vulkan/radv_shader_info.c - src/amd/vulkan/radv_shader_info.h - src/amd/vulkan/radv_shader_object.c - src/broadcom/compiler/qpu_validate.c - src/broadcom/compiler/vir.c - src/broadcom/vulkan/v3dv_cmd_buffer.c - src/broadcom/vulkan/v3dv_descriptor_set.h - src/broadcom/vulkan/v3dv_device.c - src/broadcom/vulkan/v3dv_pipeline.c - src/broadcom/vulkan/v3dv_pipeline_cache.c - src/compiler/glsl/gl_nir_linker.c - src/compiler/nir/nir.h - src/compiler/nir/nir_divergence_analysis.c - src/compiler/nir/nir_functions.c - src/compiler/nir/nir_lower_explicit_io.c - src/compiler/nir/nir_lower_io.c - src/compiler/nir/nir_opcodes.py - src/compiler/nir/nir_opt_algebraic.py - src/compiler/nir/nir_opt_copy_prop_vars.c - src/compiler/nir/nir_opt_dead_write_vars.c - src/compiler/nir/nir_opt_loop.c - src/compiler/nir/nir_range_analysis.c - src/compiler/nir/tests/nir_algebraic_pattern_test.cpp - src/compiler/spirv/nir_spirv.h - src/compiler/spirv/vtn_glsl450.c - src/compiler/spirv/vtn_opencl.c - src/compiler/spirv/vtn_variables.c - src/egl/drivers/dri2/egl_dri2.c - src/freedreno/common/disasm.h - src/freedreno/common/freedreno_devices.py - src/freedreno/decode/buffers.c - src/freedreno/decode/buffers.h - src/freedreno/decode/cffdec.c - src/freedreno/decode/cffdec.h - src/freedreno/decode/crashdec-prefetch.c - src/freedreno/decode/crashdec.c - src/freedreno/decode/crashdec.h - src/freedreno/decode/pgmdump.c - src/freedreno/decode/rddecompiler.c - src/freedreno/decode/script.c - src/freedreno/decode/script.h - src/freedreno/decode/snapshot.h - src/freedreno/fdl/fd6_view.cc - src/freedreno/ir2/disasm-a2xx.c - src/freedreno/ir3/disasm-a3xx.c - src/freedreno/ir3/ir3.c - src/freedreno/ir3/ir3_compiler.c - src/freedreno/ir3/ir3_nir.c - src/freedreno/vulkan/tu_acceleration_structure.cc - src/freedreno/vulkan/tu_clear_blit.cc - src/freedreno/vulkan/tu_clear_blit.h - src/freedreno/vulkan/tu_cmd_buffer.cc - src/freedreno/vulkan/tu_cs.cc - src/freedreno/vulkan/tu_device.cc - src/freedreno/vulkan/tu_formats.cc - src/freedreno/vulkan/tu_knl_kgsl.cc - src/freedreno/vulkan/tu_pass.cc - src/freedreno/vulkan/tu_sampler.cc - src/freedreno/vulkan/tu_sampler.h - src/freedreno/vulkan/tu_shader.cc - src/freedreno/vulkan/tu_subsampled_image.cc - src/gallium/auxiliary/cso_cache/cso_context.c - src/gallium/auxiliary/pipe-loader/driinfo_gallium.h - src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c - src/gallium/auxiliary/util/u_blitter.c - src/gallium/auxiliary/util/u_blitter.h - src/gallium/auxiliary/util/u_driconf.c - src/gallium/auxiliary/util/u_tests.c - src/gallium/drivers/d3d12/d3d12_common.h - src/gallium/drivers/d3d12/d3d12_video_dec.cpp - src/gallium/drivers/d3d12/d3d12_video_enc.cpp - src/gallium/drivers/etnaviv/etnaviv_emit.h - src/gallium/drivers/etnaviv/etnaviv_texture_desc.c - src/gallium/drivers/freedreno/a6xx/fd6_draw.cc - src/gallium/drivers/freedreno/a6xx/fd6_program.cc - src/gallium/drivers/freedreno/a6xx/fd6_program.h - src/gallium/drivers/iris/iris_context.h - src/gallium/drivers/iris/iris_program.c - src/gallium/drivers/iris/iris_state.c - src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt - src/gallium/drivers/llvmpipe/lp_state_derived.c - src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp - src/gallium/drivers/nouveau/nouveau_buffer.c - src/gallium/drivers/nouveau/nouveau_fence.c - src/gallium/drivers/nouveau/nouveau_fence.h - src/gallium/drivers/nouveau/nouveau_mm.c - src/gallium/drivers/nouveau/nouveau_screen.c - src/gallium/drivers/nouveau/nv30/nv30_context.c - src/gallium/drivers/nouveau/nv30/nv30_state.c - src/gallium/drivers/nouveau/nv30/nv30_state_validate.c - src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c - src/gallium/drivers/nouveau/nv30/nvfx_shader.h - src/gallium/drivers/nouveau/nv50/nv50_context.c - src/gallium/drivers/nouveau/nv50/nv50_context.h - src/gallium/drivers/nouveau/nv50/nv50_miptree.c - src/gallium/drivers/nouveau/nv50/nv50_query_hw.c - src/gallium/drivers/nouveau/nv50/nv50_query_hw_sm.c - src/gallium/drivers/nouveau/nvc0/nvc0_context.c - src/gallium/drivers/nouveau/nvc0/nvc0_context.h - src/gallium/drivers/nouveau/nvc0/nvc0_query_hw.c - src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_sm.c - src/gallium/drivers/panfrost/pan_cmdstream.c - src/gallium/drivers/panfrost/pan_device.h - src/gallium/drivers/r300/ci/r300-rs740-fails.txt - src/gallium/drivers/r300/ci/r300-rs740-flakes.txt - src/gallium/drivers/r300/r300_state_derived.c - src/gallium/drivers/r600/r600_state_common.c - src/gallium/drivers/r600/radeon_uvd.c - src/gallium/drivers/r600/sfn/sfn_assembler.cpp - src/gallium/drivers/radeonsi/radeon_vcn_enc.c - src/gallium/drivers/radeonsi/radeon_vcn_enc.h - src/gallium/drivers/radeonsi/si_barrier.c - src/gallium/drivers/radeonsi/si_gfx_cs.c - src/gallium/drivers/radeonsi/si_state_shaders.cpp - src/gallium/drivers/radeonsi/si_texture.c - src/gallium/drivers/rocket/rkt_device.c - src/gallium/drivers/v3d/v3d_blit.c - src/gallium/drivers/v3d/v3d_context.c - src/gallium/drivers/v3d/v3d_program.c - src/gallium/drivers/v3d/v3dx_draw.c - src/gallium/drivers/v3d/v3dx_emit.c - src/gallium/drivers/vc4/vc4_resource.c - − src/gallium/drivers/zink/ci/deqp-zink-anv-cml.toml - src/gallium/drivers/zink/ci/zink-nvk-ad106-fails.txt - src/gallium/drivers/zink/ci/zink-nvk-ga106-fails.txt - src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt - src/gallium/drivers/zink/zink_batch.c - src/gallium/drivers/zink/zink_context.c - src/gallium/drivers/zink/zink_kopper.c - src/gallium/drivers/zink/zink_program.c - src/gallium/drivers/zink/zink_query.c - src/gallium/drivers/zink/zink_screen.c - src/gallium/frontends/d3d10umd/Device.cpp - src/gallium/frontends/dri/kopper.c - src/gallium/frontends/dri/loader_dri3_helper.c - src/gallium/frontends/lavapipe/lvp_device.c - src/gallium/frontends/rusticl/api/device.rs - src/gallium/frontends/rusticl/api/memory.rs - src/gallium/frontends/rusticl/core/kernel.rs - src/gallium/frontends/rusticl/core/program.rs - src/gallium/frontends/rusticl/mesa/compiler/nir.rs - src/gallium/frontends/va/va_private.h - src/gallium/include/frontend/api.h - src/gallium/include/pipe/p_defines.h - src/glx/apple/meson.build - src/imagination/pco/pco_internal.h - src/imagination/pco/pco_legalize.c - src/imagination/pco/pco_nir.c - src/imagination/pco/pco_nir_tex.c - src/imagination/vulkan/pvr_arch_border.c - src/imagination/vulkan/pvr_arch_cmd_buffer.c - src/imagination/vulkan/pvr_arch_queue.c - src/imagination/vulkan/pvr_job_render.h - src/imagination/vulkan/pvr_physical_device.h - src/intel/blorp/blorp_genX_exec_brw.h - src/intel/common/intel_common.c - src/intel/common/intel_common.h - src/intel/compiler/brw/brw_compile_fs.cpp - src/intel/compiler/brw/brw_compiler.c - src/intel/compiler/brw/brw_compiler.h - src/intel/compiler/brw/brw_from_nir.cpp - src/intel/compiler/brw/brw_nir.c - src/intel/compiler/brw/brw_nir.h - src/intel/compiler/brw/brw_nir_lower_intersection_shader.c - src/intel/compiler/brw/brw_nir_rt.c - src/intel/compiler/brw/brw_nir_rt_builder.h - src/intel/compiler/brw/brw_rt.h - src/intel/dev/intel_device_info.c - src/intel/vulkan/anv_blorp.c - src/intel/vulkan/anv_cmd_buffer.c - src/intel/vulkan/anv_descriptor_set.c - src/intel/vulkan/anv_instance.c - src/intel/vulkan/anv_nir.h - src/intel/vulkan/anv_nir_compute_push_layout.c - + src/intel/vulkan/anv_nir_xe2_r11g11b10_atomic_wa.c - src/intel/vulkan/anv_private.h - src/intel/vulkan/anv_shader_compile.c - src/intel/vulkan/genX_cmd_buffer.c - src/intel/vulkan/genX_cmd_compute.c - src/intel/vulkan/genX_init_state.c - src/intel/vulkan/genX_query.c - src/intel/vulkan/genX_simple_shader.c - src/intel/vulkan/meson.build - src/intel/vulkan_hasvk/anv_device.c - src/loader/loader.c - src/loader/loader_dri_helper.c - src/mesa/main/bufferobj.c - src/mesa/main/fbobject.c - src/mesa/state_tracker/st_context.c - src/nouveau/compiler/nak/sm20.rs - src/nouveau/vulkan/cl/nvk_copy_indirect.cl - src/nouveau/vulkan/nvk_cmd_buffer.c - src/nouveau/vulkan/nvk_cmd_draw.c - src/nouveau/vulkan/nvk_cmd_indirect.c - src/nouveau/vulkan/nvk_shader.c - src/panfrost/compiler/bifrost/bifrost_compile.c - src/panfrost/lib/kmod/pan_kmod.h - src/panfrost/lib/kmod/panfrost_kmod.c - src/panfrost/lib/kmod/panthor_kmod.c - src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c - src/panfrost/vulkan/panvk_cmd_meta.h - src/panfrost/vulkan/panvk_physical_device.c - src/panfrost/vulkan/panvk_utrace.c - src/panfrost/vulkan/panvk_utrace_perfetto.cc - src/panfrost/vulkan/panvk_vX_cmd_meta.c - src/util/00-mesa-defaults.conf - src/util/00-radv-defaults.conf - src/util/driconf.h - src/util/tests/cache_test.cpp - src/util/tests/sparse_bitset_test.cpp - src/virtio/virtgpu_kumquat_ffi/lib.rs - src/virtio/vulkan/vn_device.c - src/virtio/vulkan/vn_device.h - src/virtio/vulkan/vn_host_copy.c - src/virtio/vulkan/vn_physical_device.c - src/virtio/vulkan/vn_queue.c - src/virtio/vulkan/vn_renderer_virtgpu.c - src/virtio/vulkan/vn_ring.c - src/vulkan/runtime/bvh/leaf.h - src/vulkan/runtime/bvh/morton.comp - src/vulkan/runtime/bvh/vk_build_helpers.h - src/vulkan/runtime/vk_acceleration_structure.c - src/vulkan/runtime/vk_meta_blit_resolve.c - src/vulkan/runtime/vk_physical_device.c - src/vulkan/runtime/vk_pipeline.c - src/vulkan/runtime/vk_video.c - src/vulkan/runtime/vk_video.h - src/vulkan/screenshot-layer/screenshot.cpp - src/vulkan/wsi/wsi_common_display.c The diff was not included because it is too large. View it on GitLab: https://salsa.debian.org/xorg-team/lib/mesa/-/compare/9ea5fa9d6153b7cbe3897f055909a245a01a45e8...b0ed9275614ede84680a109e990ec4e508b58d58 -- View it on GitLab: https://salsa.debian.org/xorg-team/lib/mesa/-/compare/9ea5fa9d6153b7cbe3897f055909a245a01a45e8...b0ed9275614ede84680a109e990ec4e508b58d58 You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help