mesa/src/amd/vulkan
Rhys Perry f5f2f9110c radv/rt: lower non-return load_param to variable loads
nir_intrinsic_load_param can't be CSE'd, which can prevent phi cleanup
and potentially unneeded scratch access.

fossil-db (navi31):
Totals from 4 (0.01% of 79825) affected shaders:
Instrs: 2504 -> 2384 (-4.79%)
CodeSize: 13584 -> 12784 (-5.89%)
Latency: 96124 -> 96056 (-0.07%)
InvThroughput: 12016 -> 12008 (-0.07%)
Copies: 664 -> 504 (-24.10%)
Branches: 92 -> 88 (-4.35%)
VALU: 1232 -> 1112 (-9.74%)
VOPD: 308 -> 228 (-25.97%)

fossil-db (navi31, monolithic pipelines disabled):
Totals from 52 (0.06% of 80095) affected shaders:
Instrs: 126296 -> 124734 (-1.24%)
CodeSize: 718272 -> 707864 (-1.45%)
Latency: 2866019 -> 2865125 (-0.03%)
InvThroughput: 502663 -> 502537 (-0.03%)
Copies: 19616 -> 17536 (-10.60%)
Branches: 4344 -> 4292 (-1.20%)
VALU: 65432 -> 63872 (-2.38%)
VOPD: 14543 -> 13503 (-7.15%)

fossil-db (navi31, monolithic pipelines disabled, any-hit function calls):
Totals from 52 (0.06% of 80304) affected shaders:
Instrs: 38232 -> 34956 (-8.57%)
CodeSize: 184616 -> 171400 (-7.16%)
Latency: 944112 -> 941483 (-0.28%)
InvThroughput: 122152 -> 121817 (-0.27%)
Copies: 13065 -> 10302 (-21.15%)
Branches: 1471 -> 1419 (-3.54%)
PreSGPRs: 2673 -> 2598 (-2.81%)
VALU: 22576 -> 19368 (-14.21%)
SALU: 6549 -> 6474 (-1.15%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39344>
2026-01-19 08:55:39 +00:00
..
bvh radv/bvh: Use box16 nodes when bvh8 is not used 2026-01-10 11:36:28 +01:00
layers radv/sqtt: emit userdata in the gang CS when needed 2026-01-15 09:43:00 +01:00
meta radv/meta: fix layered depth stencil resolves with compute 2026-01-19 07:22:26 +00:00
nir radv/rt: lower non-return load_param to variable loads 2026-01-19 08:55:39 +00:00
tests treewide: Use regexp to replace usage of setenv with os_set_option. 2025-11-27 18:22:34 +00:00
winsys/amdgpu radv/amdgpu: Only wait on queue syncobj when needed 2026-01-12 10:59:03 +00:00
.clang-format
.editorconfig
meson.build radv/rt: Use function call structure in NIR lowering 2026-01-14 14:19:06 +00:00
radv_acceleration_structure.c radv: Use HPLOC for TLAS builds 2026-01-18 19:21:08 +01:00
radv_aco_shader_info.h aco: add ac_cu_info to aco_compiler_options 2025-12-22 07:34:46 +00:00
radv_android.c radv: use AHARDWAREBUFFER_USAGE_CAMERA_MASK 2025-07-09 03:47:06 +00:00
radv_android.h
radv_buffer.c radv: Mitigate GFX6-7 SMEM bug for robust OOB access 2026-01-02 23:42:16 +00:00
radv_buffer.h radv: switch to device address from vk_buffer 2025-03-06 09:46:01 +00:00
radv_buffer_view.c radv: Remove offset parameter from radv_make_texel_buffer_descriptor. 2025-05-02 09:13:14 +00:00
radv_buffer_view.h radv: Remove offset parameter from radv_make_texel_buffer_descriptor. 2025-05-02 09:13:14 +00:00
radv_check_va.py radv: Add sparse mappings to radv_check_va.py. 2024-11-29 12:57:42 +00:00
radv_cmd_buffer.c radv: fix missing SQTT markers for task+mesh draws 2026-01-15 09:43:00 +01:00
radv_cmd_buffer.h radv: Declare some gang submit functions in radv private header. 2025-12-23 12:14:59 +00:00
radv_constants.h radv: re-format using clang-format 2025-09-09 05:48:56 +00:00
radv_cp_dma.c radv: remove unreachable code for prefetch in radv_cs_emit_cp_dma() 2025-11-19 08:03:38 +00:00
radv_cp_dma.h radv: switch to radv_cmd_stream everywhere 2025-08-08 11:49:23 +00:00
radv_cp_reg_shadowing.c radv: use radv_buffer_get_va() more 2025-10-27 07:56:44 +00:00
radv_cp_reg_shadowing.h radv: switch to radv_cmd_stream everywhere 2025-08-08 11:49:23 +00:00
radv_cs.c ac,radv: add ac_cmdbuf::context_roll and use it 2025-12-17 15:09:26 +00:00
radv_cs.h ac,radv,radeonsi: add tracked register macros to common code 2025-12-17 15:09:26 +00:00
radv_debug.c ALL: use SHA1_DIGEST_LENGTH etc. instead of hardcoding the numbers 2026-01-07 08:32:33 +00:00
radv_debug.h radv: Use wave32 for RT on gfx11+ 2026-01-14 23:39:24 +00:00
radv_debug_nir.c treewide: use UTIL_DYNARRAY_INIT 2025-11-04 13:39:48 +00:00
radv_debug_nir.h radv: Add RADV_DEBUG=validatevas for address validation in nir 2025-08-15 10:32:35 +00:00
radv_descriptor_pool.c radv: fix resetting descriptor pool since the new descriptor sets allocator 2025-11-26 09:09:13 +00:00
radv_descriptor_pool.h radv: implement a new descriptor sets allocator 2025-10-24 06:25:17 +00:00
radv_descriptor_set.c radv: implement a new descriptor sets allocator 2025-10-24 06:25:17 +00:00
radv_descriptor_set.h radv: implement a new descriptor sets allocator 2025-10-24 06:25:17 +00:00
radv_descriptor_update_template.c radv: reduce the combined image/sampler desc size on GFX11+ 2025-08-14 06:47:30 +00:00
radv_descriptor_update_template.h radv: move descriptor update implementation to radv_descriptor_update_template.c/h 2025-06-27 07:55:37 +00:00
radv_descriptors.c radv: reduce the combined image/sampler desc size on GFX11+ 2025-08-14 06:47:30 +00:00
radv_descriptors.h radv: reduce the combined image/sampler desc size on GFX11+ 2025-08-14 06:47:30 +00:00
radv_device.c radv: enable SPM for GFX11.5 2026-01-13 22:16:40 +00:00
radv_device.h radv/spm: use a staging buffer for faster reads on dGPUS 2026-01-12 09:35:37 +00:00
radv_device_memory.c radv: rename RADEON_FLAG_VA_UNCACHED to RADEON_FLAG_GL2_BYPASS 2025-12-16 07:17:08 +00:00
radv_device_memory.h radv: add import and export handle_type in radv_alloc_memory 2025-03-03 08:26:51 +00:00
radv_dgc.c radv/dgc: adjust task+mesh SQTT markers 2026-01-15 09:43:00 +01:00
radv_dgc.h radv: Remove unneeded forward declaration of qf from dgc header 2025-10-14 12:33:19 +00:00
radv_event.c radv: rename RADEON_FLAG_VA_UNCACHED to RADEON_FLAG_GL2_BYPASS 2025-12-16 07:17:08 +00:00
radv_event.h
radv_formats.c radv: Enable DCC modifiers for multi plane formats on GFX12 2026-01-12 09:57:56 +00:00
radv_formats.h build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
radv_host_image_copy.c radv: implement vkTransitionImageLayout() 2025-07-15 09:12:16 +00:00
radv_image.c radv: Enable DCC modifiers for multi plane formats on GFX12 2026-01-12 09:57:56 +00:00
radv_image.h radv,ac: Split has_tc_compat_zrange_bug into Z and ZS, document it 2025-10-02 08:29:49 +00:00
radv_image_view.c radv: create descriptors for color/depth-stencil surfaces earlier 2025-12-17 11:11:18 +00:00
radv_image_view.h radv: create descriptors for color/depth-stencil surfaces earlier 2025-12-17 11:11:18 +00:00
radv_instance.c radv: Use wave32 for RT on gfx11+ 2026-01-14 23:39:24 +00:00
radv_instance.h radv: add new drirc radv_prefer_2d_swizzle_for_3d_storage 2026-01-02 09:54:29 +00:00
radv_llvm_helper.cpp amd,radeonsi: reduce legacy::PassManager use to only run backend passes 2024-10-05 09:10:06 +00:00
radv_llvm_helper.h
radv_nir_to_llvm.c radv: use CU mode when LDS is used 2025-10-15 13:37:48 +01:00
radv_nir_to_llvm.h
radv_perfcounter.c ac,radv,radeonsi: rename num_spm_counters to num_spm_modules 2026-01-12 08:10:32 +00:00
radv_perfcounter.h ac,radv,radeonsi: add more SPM helpers to common code 2025-11-24 08:05:08 +00:00
radv_physical_device.c radv: Use wave32 for RT on gfx11+ 2026-01-14 23:39:24 +00:00
radv_physical_device.h radv: Refactor RT lowering decisions and add RADV_PERFTEST CPS override 2026-01-14 14:19:06 +00:00
radv_pipeline.c radv: Mitigate GFX6-7 SMEM bug for robust OOB access 2026-01-02 23:42:16 +00:00
radv_pipeline.h radv: rename indirect_descriptor_sets to indirect_descriptors 2025-10-10 13:22:03 +00:00
radv_pipeline_binary.c treewide: use UTIL_DYNARRAY_INIT 2025-11-04 13:39:48 +00:00
radv_pipeline_binary.h radv: add initial support for pipeline binaries 2024-09-10 08:19:52 +00:00
radv_pipeline_cache.c radv: Add traversal stack size to cache 2026-01-14 14:19:05 +00:00
radv_pipeline_cache.h radv: remove unused forwarded declarations of pipeline layout 2025-08-18 07:25:34 +00:00
radv_pipeline_compute.c radv: gather push constant size from shaders for pipelines 2025-10-23 07:25:41 +00:00
radv_pipeline_compute.h radv: rename indirect_descriptor_sets to indirect_descriptors 2025-10-10 13:22:03 +00:00
radv_pipeline_graphics.c radv: Remove radv_remove_varyings. 2026-01-01 21:26:26 -06:00
radv_pipeline_graphics.h radv: pre-compute vgt_outprim_type 2025-09-15 19:10:39 +00:00
radv_pipeline_layout.c radv: remove radv_pipeline_layout::push_constant_size 2025-10-23 07:25:41 +00:00
radv_pipeline_layout.h radv: remove radv_pipeline_layout::push_constant_size 2025-10-23 07:25:41 +00:00
radv_pipeline_rt.c radv/rt: cleanup phis after lowering parameter variables to SSA 2026-01-19 08:55:39 +00:00
radv_pipeline_rt.h radv/rt: Use function call structure in NIR lowering 2026-01-14 14:19:06 +00:00
radv_query.c radv/video: Only use write_memory for encode feedback with full support 2025-11-03 08:39:59 +00:00
radv_query.h radv: re-run clang-format 2025-07-16 09:10:33 +02:00
radv_queue.c radv: Mitigate GFX6-7 SMEM bug for NULL and mutable descriptors 2026-01-02 23:42:16 +00:00
radv_queue.h radv: replace radeon_cmdbuf by ac_cmdbuf completely 2025-10-08 18:00:15 +00:00
radv_radeon_winsys.h radv/amdgpu: Add ability to pad BOs with a read-only VM page 2026-01-02 23:42:16 +00:00
radv_rmv.c amd: restrict radeon_info::marketing_name to 64 characters and copy it 2025-11-24 12:34:08 +00:00
radv_rmv.h
radv_rra.c radv/rra: Count box16 nodes properly 2026-01-10 11:34:18 +01:00
radv_rra.h radv/rra: Count box16 nodes properly 2026-01-10 11:34:18 +01:00
radv_rra_gfx10_3.c radv/bvh: Add radv_aabb16 and use it for box16 nodes 2026-01-10 11:36:19 +01:00
radv_rra_gfx12.c radv/rra: Count box16 nodes properly 2026-01-10 11:34:18 +01:00
radv_sampler.c radv: remove extra instructions after UNREACHABLE 2026-01-12 07:41:08 +00:00
radv_sampler.h radv: fix capture/replay with sampler border color 2025-09-12 06:51:51 +00:00
radv_sdma.c radv: Use compute copy for emulated formats 2026-01-02 04:32:06 +00:00
radv_sdma.h radv: Add function to determine if SDMA supports an image. 2025-12-23 12:14:58 +00:00
radv_shader.c radv,radeonsi: don't set LINE_STIPPLE_TEX_ENA on gfx12 2026-01-15 09:12:13 +00:00
radv_shader.h radv,aco: Use function call structure for RT programs 2026-01-14 14:19:07 +00:00
radv_shader_args.c radv/rt: Use function call structure in NIR lowering 2026-01-14 14:19:06 +00:00
radv_shader_args.h radv: declare a new user SGPR for dynamic descriptors 2025-10-14 15:34:43 +00:00
radv_shader_info.c radv: gather color0_written with scalar io correctly 2025-12-12 17:00:51 +00:00
radv_shader_info.h radv: remove precomputed registers from radv_shader_binary 2025-12-17 08:16:06 +00:00
radv_shader_object.c treewide: Replace calling to function ALIGN with align 2025-11-12 21:58:40 +00:00
radv_shader_object.h radv: gather push constant size from shaders for ESO 2025-10-23 07:25:41 +00:00
radv_spm.c radv/spm: use a staging buffer for faster reads on dGPUS 2026-01-12 09:35:37 +00:00
radv_spm.h radv: Remove qf from radv_spm/sqtt/perfcounter where applicable 2025-10-14 12:33:20 +00:00
radv_sqtt.c radv/sqtt: fail if GPU clocks can't be sampled 2026-01-16 08:30:32 +00:00
radv_sqtt.h radv/sqtt: emit userdata in the gang CS when needed 2026-01-15 09:43:00 +01:00
radv_video.c radv/video: Allow aliasing of video images 2026-01-09 13:52:56 +00:00
radv_video.h radv/video: Move probability table filling to bind 2025-12-15 18:49:28 +00:00
radv_video_enc.c radv/video_enc: Remove CTS WA 2026-01-15 11:45:33 +00:00
radv_wsi.c radv: fix race condition when getting the blit queue 2025-12-11 11:16:29 +00:00
radv_wsi.h