Rhys Perry
24ab54fe3f
ac/llvm: fix isub image atomic
...
Fixes red_dead_redemption_2_VK/340c6c75f15678ff
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41261 >
2026-05-01 08:45:26 +00:00
Marek Olšák
1b409ff681
aco/tests: update ACO tests for ac_nir_lower_tex_coords refactoring
...
For: ac/nir/lower_tex_coords: move input loads instead of cloning them
Suggested by: Georg Lehmann
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173 >
2026-05-01 02:37:16 +00:00
Marek Olšák
ac33f82d54
ac/nir/lower_tex_coords: move input loads instead of cloning them
...
This stops leaving dead input loads behind.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173 >
2026-05-01 02:37:16 +00:00
Marek Olšák
ad4eaaae68
ac/nir: factor out ac_nir_lower_tex_coords from ac_nir_lower_image_tex
...
This just separates tex coord lowering into a new pass.
The gfx_level parameter is now unused in ac_nir_lower_image_tex, but I'm
keeping it because it will be used in the future.
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41173 >
2026-05-01 02:37:16 +00:00
Samuel Pitoiset
608bc0e593
radv/meta: fix expanding HTILE on compute with multisampling
...
The expand was considering only the first sample, very old bug.
This fixes test_{copy,compute}_queue_depth_stencil_msaa from
vkd3d-proton on GFX11-GFX11.7 GPUs. Older GPUs don't support image
stores with depth/stencil MSAA images.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41267 >
2026-04-30 22:17:43 +00:00
Samuel Pitoiset
e092e945a7
radv: fix printing image format with RADV_DEBUG=img
...
It should print the Vulkan format, not the pipe format.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41265 >
2026-04-30 17:09:00 +00:00
Samuel Pitoiset
f2ce2868c5
ci: uprev vkd3d
...
This contains new tests for DGC+multiview which are valid in DX12
but invalid in Vulkan, unless RADV allows support for it. Important
to have coverage for us because it's used for Crimson Desert.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41193 >
2026-04-30 15:00:02 +00:00
Samuel Pitoiset
b4591f4b30
radv/ci: update list of skipped tests
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
They are fixed now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
a0d39a29da
radv: set RADEON_FLAG_EMULATE_SPARSE_RESIDENCY for sparse SSBO/UBO buffers
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
41fa965386
radv/amdgpu: emulate sparse residency for the SMEM loads with NULL PRT workaround
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
0be39ce4ad
radv: use the "LOW" address space for UBOs
...
Read-only and no sparse feedback support.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
3237666fc4
radv: run the pass to fixup SMEM loads with NULL PRT pages
...
Right after global access are lowered.
fossils-db (NAVI21):
Totals from 37734 (33.68% of 112041) affected shaders:
MaxWaves: 898021 -> 897961 (-0.01%); split: +0.00%, -0.01%
Instrs: 34145252 -> 34267942 (+0.36%); split: -0.00%, +0.36%
CodeSize: 182360344 -> 182943952 (+0.32%); split: -0.00%, +0.32%
VGPRs: 1796672 -> 1796816 (+0.01%); split: -0.00%, +0.01%
SpillSGPRs: 13708 -> 13964 (+1.87%); split: -0.28%, +2.15%
Latency: 442451029 -> 442827188 (+0.09%); split: -0.02%, +0.10%
InvThroughput: 105259490 -> 105287803 (+0.03%); split: -0.01%, +0.03%
VClause: 672269 -> 672252 (-0.00%); split: -0.12%, +0.12%
SClause: 847133 -> 847677 (+0.06%); split: -0.35%, +0.41%
Copies: 2974422 -> 2979443 (+0.17%); split: -0.35%, +0.52%
Branches: 860896 -> 861639 (+0.09%); split: -0.00%, +0.09%
PreSGPRs: 1677701 -> 1682387 (+0.28%); split: -0.01%, +0.29%
VALU: 22386780 -> 22386984 (+0.00%); split: -0.01%, +0.01%
SALU: 5282218 -> 5406460 (+2.35%); split: -0.01%, +2.36%
fossils-db (POLARIS10):
Totals from 15054 (21.74% of 69255) affected shaders:
MaxWaves: 87688 -> 87689 (+0.00%); split: +0.01%, -0.00%
Instrs: 12542117 -> 12596734 (+0.44%); split: -0.00%, +0.44%
CodeSize: 65209280 -> 65458732 (+0.38%); split: -0.00%, +0.39%
SGPRs: 1149639 -> 1149975 (+0.03%); split: -0.24%, +0.27%
VGPRs: 749928 -> 749956 (+0.00%); split: -0.02%, +0.02%
SpillSGPRs: 11139 -> 11413 (+2.46%); split: -0.29%, +2.75%
Latency: 169204114 -> 169533989 (+0.19%); split: -0.01%, +0.21%
InvThroughput: 88091947 -> 88185872 (+0.11%); split: -0.01%, +0.11%
VClause: 280519 -> 280318 (-0.07%); split: -0.18%, +0.10%
SClause: 343474 -> 344686 (+0.35%); split: -0.32%, +0.67%
Copies: 1529440 -> 1530545 (+0.07%); split: -0.30%, +0.38%
Branches: 286849 -> 286856 (+0.00%); split: -0.01%, +0.01%
PreSGPRs: 661815 -> 663239 (+0.22%); split: -0.02%, +0.23%
VALU: 8758472 -> 8759214 (+0.01%); split: -0.01%, +0.01%
SALU: 1775129 -> 1829513 (+3.06%); split: -0.02%, +3.08%
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
a4668733e5
ac/nir: add a pass to fixup SMEM loads with NULL PRT pages
...
Only global/SSBO SMEM loads are considered because for UBOs the "LOW"
VA will be set in descriptors.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
60b406e233
ac/gpu_info: query the PRT workaround control bit from libdrm
...
libdrm splits the HIGH address space in two equal parts for GPUs that
are affected by the SMEM loads with NULL PRT page.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
978605fd06
ac/gpu_info: add has_smem_with_null_prt_bug
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
Samuel Pitoiset
ecfda339ca
ac/gpu_info: store more addr space info
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38698 >
2026-04-30 09:29:43 +00:00
xueyuli2
da7ed1c576
amd/virtio: fix bo use-after-free race condition in amdvgpu_bo_free
...
In amdvgpu_bo_free(), when the reference count drops to 0, vdrm_flush()
is called before removing the bo from the handle_to_vbo hash table.
Since vdrm_flush() is a time-consuming operation and is executed outside
of the handle_to_vbo_mutex lock, another thread calling amdvgpu_bo_import()
can concurrently find this bo in the hash table, increment its refcount,
and attempt to use it. Once vdrm_flush() finishes, amdvgpu_bo_free()
proceeds to remove the bo and call free(), leaving the importing thread
with a dangling pointer, which leads to a use-after-free or double free
crash.
To fix this race condition, we must remove the bo from the hash table
under the lock first. After the bo is safely unlinked and the lock is
released, we can then perform the time-consuming vdrm_flush() and the
actual memory release.
Signed-off-by: zhaqian <zhaqian@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41146 >
2026-04-30 08:41:50 +00:00
Samuel Pitoiset
69680f3d66
radv/ci: bump timeouts for radv-{navi21,gfx1201}-vkcts-full
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
They usually don't finish otherwise.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41282 >
2026-04-30 07:56:04 +00:00
Samuel Pitoiset
52669c3b5b
radv: re-organize radv_cmd_state slightly
...
Trying to regroup states.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:29 +00:00
Samuel Pitoiset
730a5b725e
radv: move vertex buffer state to radv_cmd_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:29 +00:00
Samuel Pitoiset
9feb722b31
radv: move conditional rendering state to radv_cond_render_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:29 +00:00
Samuel Pitoiset
57ecb1c1ec
radv: cleanup suspending/resuming cond rendering with DGC
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:28 +00:00
Samuel Pitoiset
43abb73273
radv: move index buffer state to radv_index_buffer_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:28 +00:00
Samuel Pitoiset
93468750ef
radv: remove unnecessary radv_cmd_state::mesh_shading
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:27 +00:00
Samuel Pitoiset
5246eee299
radv: move streamout bindings to radv_streamout_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:26 +00:00
Samuel Pitoiset
02ec87672b
radv: move suspend_streamout to radv_streamout_state
...
And rename it to suspended.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152 >
2026-04-30 06:18:25 +00:00
Mike Blumenkrantz
d4d7055aee
radv: add RADV_QUEUE_DISABLE env var for selectively disabling queues
...
it is sometimes useful to test radv without certain queues disabled in order
to exercise alternative codepaths. this exposes that capability
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41086 >
2026-04-29 15:08:28 +00:00
Benjamin Cheng
656b3814c2
radv/wsi: Re-use transfer queue if it exists
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This avoids writing past the end of pdev->vk_queue_to_radv if all the
queue families are available.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/14834
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41155 >
2026-04-29 12:38:02 +00:00
Rhys Perry
aac8787fda
radv: remove radv_device_cache_key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:12 +00:00
Rhys Perry
44b09b8396
radv: remove radv_physical_device_cache_key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:12 +00:00
Rhys Perry
27815719aa
radv: remove most fields from radv_physical_device_cache_key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:12 +00:00
Rhys Perry
9ad0cd7e38
radv: hash radv_compiler_info::key into the cache key
...
This will replace both the pdev and device cache keys.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:12 +00:00
Rhys Perry
1ac306c11e
radv: remove radv_compiler_info::cache_key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:11 +00:00
Rhys Perry
c6c4f523af
radv: add fields to radv_compiler_info from radv_physical_device_cache_key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:11 +00:00
Rhys Perry
3aa6903883
radv: move fields to radv_compiler_info::key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:10 +00:00
Rhys Perry
7c93a6e91c
radv: move use_llvm to radv_compiler_info::key
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:10 +00:00
Rhys Perry
5f3b73b2f0
radv: move load_grid_size_from_user_sgpr to radv_physical_device
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:10 +00:00
Rhys Perry
48645f21b5
radv: initialize nir_shader_compiler_options directly in compiler info
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:09 +00:00
Rhys Perry
0249fcfbb6
radv: assert there is no padding in cache keys
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:08 +00:00
Rhys Perry
5ee0935861
ac: move has_cs_regalloc_hang_bug to ac_compiler_info
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:08 +00:00
Rhys Perry
e40457b136
ac: move lds_size_per_workgroup to ac_compiler_info
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41022 >
2026-04-29 08:10:08 +00:00
Peyton Lee
ab878cc1ea
amd/gmlib: add tm_generate_formatted_3DLut
...
Adds a utility to format a 3D LUT into the required memory layout and write it into a given buffer.
Signed-off-by: Peyton Lee <peytolee@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41190 >
2026-04-29 07:46:28 +00:00
Samuel Pitoiset
669d3915c6
radv: slightly rework initializing the default graphics state
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
All these parameters are only used for graphics.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
461154fd5c
radv: remove useless tracking about non-coherent RBs with secondaries
...
Either the rendering begins in the primary and the information is
already known, or if it begins in the secondary, non-coherent RBs
should already be flushed in EndCommandBuffer().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
bcd74a7af0
radv: add RADV_CMD_DIRTY_RAY_TRACING_PIPELINE
...
This seems cleaner than storing the last emitted ray tracing pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
20f7fba442
radv: add RADV_CMD_DIRTY_COMPUTE_PIPELINE
...
This seems cleaner than storing the last emitted compute pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
c7c2ce13ae
radv: stop tracking the last emitted graphics pipeline
...
This shouldn't have any effects because there is a dirty bit and
binding the same graphics pipeline doesn't trigger it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
6af89db05c
radv: rename RADV_CMD_DIRTY_PIPELINE to RADV_CMD_DIRTY_GRAPHICS_PIPELINE
...
This is really only used for graphics pipelines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
75e5ba9a03
radv: simplify resetting pipeline state for ESO
...
Checking if there is a bound graphics pipeline should be enough to
reset the appropriate states. Also clear the dirty pipeline bit only
for graphics pipelines because it's not used for compute pipelines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136 >
2026-04-28 17:06:42 +00:00
Samuel Pitoiset
d1a428606e
radv: add missing VkMemoryRangeBarriersInfoKHR from DAC
...
This is used to declare barrier dependencies for an addr range
(because no VkBuffer with DAC).
This fixes new dEQP-VK.api.device_address.misc.memory_range_barrier.
Fixes: a97c889a7b ("radv: implement VK_KHR_device_address_commands")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41198 >
2026-04-28 16:39:26 +00:00