Samuel Pitoiset
bcde1a6650
radv: initialize image properties earlier
...
This is less error prone and it removes redundant code.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37974 >
2025-10-23 07:56:37 +00:00
Samuel Pitoiset
3678437ca0
radv: bump maxImageDimension3D to 8192 on GFX10+
...
This was missing and it aligns to VkImageFormatProperties.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37974 >
2025-10-23 07:56:36 +00:00
Samuel Pitoiset
5c71ffbc3d
radv: bump maxImageArrayLayers to 8192 on GFX10+
...
This was missing and it aligns to VkImageFormatProperties.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37974 >
2025-10-23 07:56:36 +00:00
Konstantin Seurer
47ffe2ecd4
aco: Fixup out_launch_size_y in the RT prolog for 1D dispatch
...
launch_size_y is set to ACO_RT_CONVERTED_2D_LAUNCH_SIZE for 1D
dispatches. The prolog needs to set it to 1 so that the app shader
loads the correct value.
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37974 >
2025-10-23 07:56:35 +00:00
Samuel Pitoiset
067b05d5b9
radv: remove radv_pipeline_layout::push_constant_size
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769 >
2025-10-23 07:25:41 +00:00
Samuel Pitoiset
d15b411262
radv: remove radv_shader_layout::push_constant_size
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769 >
2025-10-23 07:25:41 +00:00
Samuel Pitoiset
2985322ed1
radv: gather push constant size from shaders for pipelines
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769 >
2025-10-23 07:25:41 +00:00
Samuel Pitoiset
97dbf7b895
radv/rt: radv: gather push constant size from shaders for RT
...
And store the total push constant size to the RT prolog.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769 >
2025-10-23 07:25:41 +00:00
Samuel Pitoiset
aa44a5a4ae
radv: gather push constant size from shaders for ESO
...
Instead of using the shader layout which won't exist anymore with heap.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37769 >
2025-10-23 07:25:41 +00:00
Mel Henning
fafb81cd02
treewide: Use vk_collect_dependency_info_src_stages
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37961 >
2025-10-22 19:22:17 +00:00
Benjamin Cheng
b6d6c1af73
radv/video_enc: Cleanup slice count assert
...
This was left over when first enabling multiple slice encoding.
Fixes: 63e952ff2c ("radv/video: Support encoding multiple slices")
Reviewed-by: David Rosca <david.rosca@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37999 >
2025-10-22 14:31:45 +00:00
Eric Engestrom
4ab65cdaa4
docs: update/fix vk spec urls
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37993 >
2025-10-22 09:23:34 +02:00
Rhys Perry
b18421ae3d
amd/lower_mem_access_bit_sizes: fix shared access when bytes<bit_size/8
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This can happen with (for example) 32x2 loads with
align_mul=4,align_offset=2.
This patch does bit_size=min(bit_size,bytes) to prevent num_components
from being 0.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: 52cd5f7e69 ("ac/nir_lower_mem_access_bit_sizes: Split unsupported shared memory instructions")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37953 >
2025-10-21 22:10:34 +00:00
Rhys Perry
e89b22280f
amd/lower_mem_access_bit_sizes: be more careful with 8/16-bit scratch load
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 25.3
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37953 >
2025-10-21 22:10:34 +00:00
Rhys Perry
8829fc3bd6
amd/lower_mem_access_bit_sizes: improve subdword/unaligned SMEM lowering
...
Summary of changes:
- handle unaligned 16-bit scalar loads when supported_dword=true
- increases the size of 8/16/32/64-bit buffer loads which are not dword
aligned, which can create less SMEM loads.
- handles when "bytes" is less than "bit_size / 8"
fossil-db (gfx1201):
Totals from 26 (0.03% of 79839) affected shaders:
Instrs: 12676 -> 12710 (+0.27%); split: -0.30%, +0.57%
CodeSize: 67272 -> 67384 (+0.17%); split: -0.24%, +0.40%
Latency: 44399 -> 44375 (-0.05%); split: -0.09%, +0.04%
SClause: 352 -> 344 (-2.27%)
SALU: 3972 -> 3992 (+0.50%)
SMEM: 554 -> 528 (-4.69%)
fossil-db (navi21):
Totals from 6 (0.01% of 79825) affected shaders:
Instrs: 2192 -> 2186 (-0.27%)
CodeSize: 12188 -> 12140 (-0.39%)
Latency: 10037 -> 10033 (-0.04%); split: -0.12%, +0.08%
SMEM: 124 -> 118 (-4.84%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37953 >
2025-10-21 22:10:34 +00:00
Rhys Perry
79b2fa785d
amd/lower_mem_access_bit_sizes: don't create subdword UBO loads with LLVM
...
These are unsupported.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14127
Fixes: fbf0399517 ("amd/lower_mem_access_bit_sizes: lower all SMEM instructions to supported sizes")
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37953 >
2025-10-21 22:10:33 +00:00
Konstantin Seurer
d423554e9e
radv/bvh: Pair compress triangles in more cases
...
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36965 >
2025-10-21 19:32:55 +00:00
Konstantin Seurer
c18a7d0e2b
radv: Emit compressed primitive nodes on GFX12
...
The normal encode pass writes batches to a section in build scratch
memory. Those batches contain information about the internal node and
the primitive nodes. The encoder is split to avoid the register
pressure of the compressor and maximize occupancy.
The compressor works in two passes because one pass can not guarantee
that every primitive node (except) has at least two triangles. This
guarantee is used to advertise a smaller acceleration structure size to
the application.
During compression, every invocation processes at most two triangles.
Groups of 8 invocations are used to support the maximum triangle count
of 16 that the hardware supports.
The first step of compression is loading the triangle(s). Shared
vertices are deduplicated early to avoid doing it in the compression
loop. The compression loop tries to add triangles to a list of triangles
until the computed node size needed for storing the triangles reaches
the hardware node size. For this, each invocation first deduplicates
vertices with the triangles that have already been picked. It then
computes the node size of the picked triangles plus the candidate
triangles of the current invocation. The invocation that computed the
smallest size is added to the list.
Because it may not be possible to fit every triangle into the same node,
there can be multiple hardware nodes which are written in parallel for
optimal performance. If there are no nodes with only one triangle, all
nodes are written. If there is, compression of the batch is aborted and
the index of the batch is written to build scratch memory. The second
compression pass will repeat the steps above but only for those aborted
batches. The nodes with only one triangle can and are now merged.
It can not be determined during box node encode which triangles will be
compressed together so the encoder also has to fix up the parent box
node's child infos.
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36965 >
2025-10-21 19:32:55 +00:00
Konstantin Seurer
c5f9fe5e3b
radv/rra/gfx12: Properly validate geometry indices
...
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36965 >
2025-10-21 19:32:54 +00:00
Konstantin Seurer
2ee8bfefe6
radv/bvh: Add radv_first_active_invocation
...
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36965 >
2025-10-21 19:32:53 +00:00
Samuel Pitoiset
7cd12e5c6a
amd: move CP emit helpers to ac_cmdbuf_cp.c/h
...
Seems more organized this way.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
e0ffc41d9a
amd,radv: move SDMA utility helpers to common code
...
Only simple ones for now. Other functions need more rework.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
4989b6e6b9
amd,radv,radeonsi: add ac_emit_cp_write_data_{head}()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
1c3754a271
radv: use ac_emit_cp_copy_data() more
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
ed7f9df864
amd: add a predicate parameter to ac_emit_cp_copy_data()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
29c2d02d64
amd,radv,radeonsi: add ac_emit_cp_load_context_reg_index()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:20 +02:00
Samuel Pitoiset
c7c237dd27
amd,radv,radeonsi: add ac_emit_cp_nop()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:31:13 +02:00
Samuel Pitoiset
5801986f53
amd: add missing _cp_ to some emit helpers
...
Just for consistency with other helpers.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:30:34 +02:00
Samuel Pitoiset
a0117b5e74
amd,radv: add ac_emit_cp_atomic_mem()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:30:34 +02:00
Samuel Pitoiset
93f3b36b55
radv: use ac_emit_cp_copy_data() more for perfcounters
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37881 >
2025-10-21 13:30:34 +02:00
Georg Lehmann
654bd74c60
treewide: use nir_store_global alias of nir_build_store_global
...
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37959 >
2025-10-21 12:37:58 +02:00
Georg Lehmann
2306cba65b
nir: remove manual nir_store_global
...
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37959 >
2025-10-21 12:37:58 +02:00
Georg Lehmann
9e41a7c139
treewide: use nir_load_global alias of nir_build_load_global
...
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37959 >
2025-10-21 12:37:58 +02:00
Georg Lehmann
77540cac8c
nir: remove manual nir_load_global
...
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37959 >
2025-10-21 12:37:58 +02:00
Samuel Pitoiset
9ebda88e34
radv: remove an obsolete comment about SMEM stores
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
ACO doesn't use SMEM store instructions.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37871 >
2025-10-21 07:03:11 +00:00
Samuel Pitoiset
63099554ac
radv: simplify L2 cache flushes on < GFX12
...
To be closer to RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37871 >
2025-10-21 07:03:11 +00:00
Samuel Pitoiset
52e036fa9f
radv: remove useless parameter to gfx10_cs_emit_cache_flush()
...
gfx9_eop_bug_va is always 0 on GFX10+.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37871 >
2025-10-21 07:03:10 +00:00
Samuel Pitoiset
c8de5a7479
radv: pass int_sel to radv_cs_emit_write_event_eop()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37871 >
2025-10-21 07:03:09 +00:00
Samuel Pitoiset
eb65d17e00
radv: simplify error handling when creating descriptor pools
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37917 >
2025-10-21 06:43:29 +00:00
Samuel Pitoiset
11daa11c4e
radv: use vk_zalloc2() for allocating the descriptor pool
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37917 >
2025-10-21 06:43:29 +00:00
Samuel Pitoiset
6106d9e818
radv: simplify allocating pool entries for descriptor sets
...
A complete new strategy allocation will be implemented on top of this.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37917 >
2025-10-21 06:43:29 +00:00
Samuel Pitoiset
d4cb7d160d
radv: add a small helper to destroy descriptor pool entries
...
No need to duplicate code.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37917 >
2025-10-21 06:43:29 +00:00
Samuel Pitoiset
d29959f50d
radv: remove an useless check when destroying descriptor sets
...
There is already an assertion.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37917 >
2025-10-21 06:43:28 +00:00
Timur Kristóf
d20049b430
ac/nir/ngg_mesh: Lower num_subgroups to constant
...
Mesh shader workgroups always have the same amount of subgroups.
When the API workgroup size is the same as the real workgroup
size, this is a small optimization (using a constant instead of
a shader arg).
When the API workgroup size is smaller than the real workgroup
size (eg. when the number of output vertices or primitves is
greater than the API workgroup size on RDNA 2), this fixes a
potential bug because num_subgroups would return the "real"
workgroup size instead of the API one.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37947 >
2025-10-20 14:05:40 +00:00
Martin Roukala (né Peres)
da0f495428
radv/ci: update the expectations of pre-merge jobs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:51 +00:00
Samuel Pitoiset
8e2bb3da5c
radv/ci: set RADV_DEBUG=novideo for NAVI31 too
...
There are random VCN hangs with a repro rate around 20%.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:50 +00:00
Samuel Pitoiset
9b774963fe
radv/ci: set RADV_DEBUG=novideo for NAVI21
...
Otherwise, the jobs just hang.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:50 +00:00
Samuel Pitoiset
82cd2df7b0
radv/ci: bump number of deqp-runner jobs to 32 for GFX1201
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:50 +00:00
Samuel Pitoiset
6fd1b9b397
radv/ci: drop RADV_PERFTEST=video_decode,video_encode for NAVI31
...
With up-to-date video firmwares, these flags are no longer needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:50 +00:00
Samuel Pitoiset
49d780db93
radv/ci: use the custom 6.17.3 kernel for POLARIS10
...
Looks like the SDMA regression is no longer reproducible.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37934 >
2025-10-20 10:30:49 +00:00