Samuel Pitoiset
f4f2a966e3
radv: advertise VK_EXT_descriptor_heap with RADV_EXPERIMENTAL=heap
...
It's not yet enabled by default because it's quite a big extension
and I expect bugs because test coverage isn't very good. It will be
enabled by default in one or two Mesa releases when it's more stable.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:29 +00:00
Samuel Pitoiset
67ae52cdc2
radv: add support for DGC with descriptor heap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
17ed105a9b
radv: flush caches with descriptor heap access flags
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
ef03ca8dab
radv: add support for inherited descriptor heap for secondaries
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
5df943629d
radv: add support for capture&replay with descriptor heap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
7ebf99362d
radv: implement vkGetPhysicalDeviceDescriptorSizeEXT()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
d557f21bb6
radv: implement vkCmdPushDataEXT()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:28 +00:00
Samuel Pitoiset
5704ad905d
radv: add support for emitting descriptor heaps
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:27 +00:00
Samuel Pitoiset
86e8d171fc
radv: implement vkCmdBind{Resource,Sampler}HeapEXT()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:26 +00:00
Samuel Pitoiset
7e63a2050b
radv: implement vkWrite{Resource,Sampler}DescriptorsEXT()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:26 +00:00
Samuel Pitoiset
7da95418a5
radv: copy mapping info for graphics pipeline libraries
...
In case only SPIR-V only is imported.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:26 +00:00
Samuel Pitoiset
aeda29c8f7
radv: allow to create pipelines with a NULL pipeline layout
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:26 +00:00
Samuel Pitoiset
65415b1c89
radv: set descriptor heap sizes/alignments for VTN
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:25 +00:00
Samuel Pitoiset
652af97f8b
radv/nir: lower descriptor heap in radv_nir_lower_descriptors
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:25 +00:00
Samuel Pitoiset
8588ddf0df
radv/nir: rename radv_nir_apply_pipeline_layout
...
to radv_nir_lower_descriptors. This is more generic and descriptor
heap support will be added to the same pass.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:25 +00:00
Samuel Pitoiset
0f2f9a9045
radv/nir: adjust lowering of immediate samplers for descriptor heap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:25 +00:00
Samuel Pitoiset
a44303ff11
radv/nir: adjust lowering of ycbcr tex instructions for descriptor heap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:25 +00:00
Samuel Pitoiset
54e2a1d2e4
radv: call vk_nir_lower_descriptor_heaps()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:24 +00:00
Samuel Pitoiset
eac2c1f141
radv: keep track of descriptor heap mapping in the shader layout
...
This will be used by the common lowering.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:24 +00:00
Samuel Pitoiset
cebac5a427
radv/rt: declare shader arguments for resource/sampler heaps
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:24 +00:00
Samuel Pitoiset
cdfb9a24ba
radv: declare shader arguments for resource/sampler heaps
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:23 +00:00
Samuel Pitoiset
b29743f91c
radv: add shader info about whether descriptor heap is used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:23 +00:00
Samuel Pitoiset
62629d3e3c
radv: use 32-bit memory types for descriptor heap buffers
...
Descriptors must be allocated in the 32-bit addr space.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:23 +00:00
Samuel Pitoiset
e81c375b4a
radv: make radv_make_sampler_descriptor() non-static
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:23 +00:00
Samuel Pitoiset
1f15a71afe
radv: add support for custom border colors with descriptor heap
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:23 +00:00
Samuel Pitoiset
8da71ae5a2
radv: add a new helper to make a sampler descriptor
...
For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:22 +00:00
Samuel Pitoiset
afd736bfd7
radv: zero-allocate graphics shader stages
...
This can prevent issues with unitialized memory. RT and compute
stages are already zero-initialized.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39483 >
2026-04-14 10:10:22 +00:00
Mike Blumenkrantz
9ff879441f
radv: handle null pCounterBuffers with xfb binds
...
this is legal
cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40892 >
2026-04-13 14:59:55 +00:00
Georg Lehmann
8d52c3840b
radv: do not remove point size variable
...
This is now done later on lowered io.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40907 >
2026-04-13 10:58:01 +00:00
Georg Lehmann
e1e476e618
radv: remove point size in lowered io
...
We only need to deal with the fixed function last vertex stage case,
for prior stages nir_opt_varyings is enough.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40907 >
2026-04-13 10:58:01 +00:00
Georg Lehmann
21bdc7105d
radv: clarify that copy prop is required for correctness after D16 opt
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/14854
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40871 >
2026-04-12 17:54:48 +00:00
Konstantin Seurer
db38d1a98c
radv/bvh: Prefer selecting quads as the first pair of a HW node
...
Is a single triangle is selected, it can be the case that the next iteration
can't merge any pair with the triangle. In that case, the HW node with a
single triangle will not have the highest hw_node_index, triggering an
assert.
Fixes: c18a7d0 ("radv: Emit compressed primitive nodes on GFX12")
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39655 >
2026-04-12 17:53:05 +02:00
Konstantin Seurer
01156c0697
vulkan: Init all update scratch at once
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39752 >
2026-04-11 13:04:39 +00:00
Konstantin Seurer
50b1becdde
vulkan: move internal_node_count to vk_acceleration_structure_build_state
...
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39752 >
2026-04-11 13:04:38 +00:00
Mauro Rossi
434e9ba847
radv: Fix gnu-empty-initializer error in prolog_stage
...
Fixes the following building error happening with clang:
FAILED: src/amd/vulkan/libvulkan_radeon.so.p/radv_pipeline_rt.c.o
...
../src/amd/vulkan/radv_pipeline_rt.c:1050:44: error: use of GNU empty initializer extension [-Werror,-Wgnu-empty-initializer]
struct radv_shader_stage prolog_stage = {};
^
1 error generated.
Fixes: afe51940 ("radv: Rewrite the RT prolog in NIR")
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40893 >
2026-04-10 20:59:24 +00:00
David Rosca
33ab9087c8
radv/video: Remove unused function radv_vcn_sq_start
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Not used since 19a8b7121e ("radv/video: Remove old VCN and UVD decode implementation")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40888 >
2026-04-10 17:24:56 +00:00
Julia Zhang
373498bf7e
radv/amdgpu: handle DISCARDABLE flag in get_flags_from_fd
...
Map the kernel alloc_flag AMDGPU_GEM_CREATE_DISCARDABLE to
RADEON_FLAG_DISCARDABLE in function radv_amdgpu_bo_get_flags_from_fd.
Signed-off-by: Julia Zhang <Julia.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40879 >
2026-04-10 08:24:56 +00:00
Marek Olšák
a7c63ae6fa
amd: switch to new packet definitions for all packets
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The new definitions have their numbers offset by 1 (e.g. S_580 -> S_581).
The remaining old definitions are adjusted to match that.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40588 >
2026-04-10 03:42:45 +00:00
Marek Olšák
e281b7b653
amd/packets: remove the underscore between opcode number and word index, use %x
...
we are more used to this format
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40588 >
2026-04-10 03:42:45 +00:00
Samuel Pitoiset
63d55d84a3
radv: replace remaining occurrences of VK_ACCESS_xxx
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40845 >
2026-04-09 15:58:06 +00:00
Samuel Pitoiset
f33757416b
radv/meta: remove an outdated comment in vkCmdClearAttachments()
...
This is no longer true since
"ae84d41d483 - radv/meta: Rework saving/restoring state".
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40845 >
2026-04-09 15:58:06 +00:00
Samuel Pitoiset
5f1c22037b
radv: advertise VK_EXT_primitive_restart_index
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40775 >
2026-04-08 17:19:48 +00:00
Samuel Pitoiset
c9b2bd385b
radv: implement VK_EXT_primitive_restart_index
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40775 >
2026-04-08 17:19:48 +00:00
Samuel Pitoiset
8f33896822
radv: pre-compute the primitive restart index
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40775 >
2026-04-08 17:19:48 +00:00
Rhys Perry
463e3643f2
nir: add and use block predecessor helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40242 >
2026-04-08 15:06:32 +00:00
Samuel Pitoiset
4e00e1c3d0
radv/meta: fix computing extent for image->image with both compressed formats
...
If both src and dst are compressed formats, adjusting the extent isn't
necessary because it's required that texel block extent matches. The
previous division was also wrong because it was truncating partial
blocks causing issues in some tests.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40678 >
2026-04-08 13:11:55 +00:00
David Rosca
363447b7d0
radv/video: Use quality level for encode preset instead of tuning mode
...
qualityLevel as a speed/quality tradeoff is better match for encode presets
than the tuning mode. In addition we can support more quality levels than
what is available from tuning modes, this adds support for High Quality
preset on VCN4+.
This also makes it possible to use Low Latency tuning with balance and
quality presets.
Reviewed-by: Benjamin Cheng <benjamin.cheng@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40765 >
2026-04-08 10:19:29 +00:00
Marek Olšák
cec1024b22
ac,radv: remove AC_TRACKED_DB_VRS_OVERRIDE_CNTL as well
...
AC_TRACKED_DB_PA_SC_VRS_OVERRIDE_CNTL can be used instead because
the DB and PA registers are mutually exclusive.
2 definitions are moved because consecutive enums aren't allowed
to cross a multiple of 32 because of static assertions in the bitset.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586 >
2026-04-07 22:07:48 +00:00
Marek Olšák
623d2a9f3c
radv,radeonsi: don't set PA_SC_HIS_INFO
...
the preamble sets it
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586 >
2026-04-07 22:07:48 +00:00
Marek Olšák
9c26b8b924
ac,radv: use AC_TRACKED_DB_PA_SC_VRS_OVERRIDE_CNTL for PA_SC_VRS_OVERRIDE_CNTL
...
The enum is meant to be used for both.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40586 >
2026-04-07 22:07:48 +00:00