mesa/src/amd/vulkan
Lionel Landwerlin 173a4c6170 vulkan/runtime: break view mask from renderpass information
The runtime builds a final pipeline state with pointers to structures
coming from the associated pipelines libraries.

So far it has considered that the viewMask was part of a structure
together with the rest of the renderpass information. This information
can be specified in pre-raster, fragment & color-output state groups
and it was assumed would be consistent for all 3. And the runtime
currently takes the pointer to the structure from the last pipeline
library (color output).

Some coming spec/cts will clarify that the viewMask only needs to be
specified for pre-raster & fragment groups, making the value in the
color-output group untrustworthy.

This change creates a new state structure to hold the viewMask on its
own so it is only gather on pre-raster & fragment groups.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (radv)
Reviewed-by: Aitor Camacho <aitor@lunarg.com> (kosmickrisp)
Reviewed-by: Connor Abbott <cwabbott0@gmail.com> (turnip)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (v3dv)
Reviewed-by: Frank Binns <frank.binns@imgtec.com> (powervr)
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> (panvk)
Royaled-yes-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> (lavapipe)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39940>
2026-03-17 20:13:35 +00:00
..
bvh radv/bvh: Make sure internal nodes are collapsed when possible 2026-02-03 20:00:15 +00:00
layers radv: rework app workarounds implemented using internal layers 2026-01-28 11:46:25 +00:00
meta radv/meta: fix missing sync for compute resolves 2026-03-17 11:36:53 +00:00
nir radv/rt: Fix shared ray query stack on top of application LDS 2026-03-16 12:43:59 +00:00
tests radv: remove radv_disable_depth_storage drirc 2026-03-05 07:55:27 +00:00
winsys/amdgpu radv/amdgpu: bypass GL2 for command buffer BOs 2026-02-04 12:45:06 +00:00
.clang-format
.editorconfig
meson.build radv: implement VK_KHR_copy_memory_indirect 2026-03-12 12:33:02 +00:00
radv_acceleration_structure.c radv/meta: Rework saving/restoring state 2026-02-18 09:37:55 +01:00
radv_aco_shader_info.h aco,radv,radeonsi: remove debug report support in ACO 2026-03-16 11:55:45 +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 incorrect misaligned_mask_invalid for VK_EXT_vertex_input_dynamic_state 2026-03-17 06:56:48 +00:00
radv_cmd_buffer.h radv: fix independent sets with dynamic buffers and GPL 2026-02-24 11:12:14 +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: shorten some emit macro names 2026-02-04 13:27:49 +00:00
radv_debug.c radv: dump the PS epilog in the GPU hang report 2026-03-09 09:53:27 +00:00
radv_debug.h radv: dump the PS epilog in the GPU hang report 2026-03-09 09:53:27 +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 vk: descriptors: sort bindings along with flags 2026-01-20 15:55:47 +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: implement VK_KHR_copy_memory_indirect 2026-03-12 12:33:02 +00:00
radv_device.h radv: move color/depth-stencil init surface helpers to radv_image_view.c/h 2026-02-09 09:43:01 +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 ac: replace some packet field definitions in sid.h by generated ones 2026-03-11 18:54:20 +00: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: implement VK_KHR_copy_memory_indirect 2026-03-12 12:33:02 +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: cleanup valid image layouts in radv_layout_is_htile_compressed() 2026-03-16 09:16:09 +00:00
radv_image.h radv: remove unused radv_gfx12_get_hiz_clear_value() 2026-03-05 13:58:18 +00:00
radv_image_view.c radv: initialize HiZ also for depth-only images 2026-03-05 13:58:18 +00:00
radv_image_view.h radv: move {depth,stencil}_compress_disable to the image view extra info 2026-02-09 09:43:01 +00:00
radv_instance.c radv: remove radv_disable_depth_storage drirc 2026-03-05 07:55:27 +00:00
radv_instance.h radv: remove radv_disable_depth_storage drirc 2026-03-05 07:55:27 +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: remove radv_nir_compiler_options::info 2026-03-16 07:50:01 +00:00
radv_nir_to_llvm.h
radv_perfcounter.c amd: rename ac_cu_info to ac_compiler_info 2026-03-03 08:50:12 +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: advertise VK_KHR_copy_memory_indirect on GFX8+ 2026-03-12 12:33:04 +00:00
radv_physical_device.h radv: remove radv_use_llvm_for_stage() 2026-03-16 07:50:02 +00:00
radv_pipeline.c radv: improve lower_array_layer_round_even condition 2026-03-17 10:27:07 +00:00
radv_pipeline.h radv: fix independent sets with dynamic buffers and GPL 2026-02-24 11:12:14 +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: improve skipping of creation of NIR for cached rt pipeline libraries 2026-01-29 15:41:34 +00:00
radv_pipeline_cache.h radv/rt: Compile ahit/isec shaders to asm 2026-01-20 21:49:55 +00:00
radv_pipeline_compute.c radv: fix RADV_DEBUG=shaderstats with RT pipelines 2026-01-26 09:26:14 +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 vulkan/runtime: break view mask from renderpass information 2026-03-17 20:13:35 +00:00
radv_pipeline_graphics.h radv: add ngg_wave_id_en to radv_shader_info 2026-02-16 14:33:57 +00:00
radv_pipeline_layout.c radv: fix independent sets with dynamic buffers and GPL 2026-02-24 11:12:14 +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: remove radv_use_llvm_for_stage() 2026-03-16 07:50:02 +00:00
radv_pipeline_rt.h radv: improve skipping of creation of NIR for cached rt pipeline libraries 2026-01-29 15:41:34 +00:00
radv_query.c radv/meta: stop using pdev for some query resolve shaders 2026-02-26 07:21:06 +00:00
radv_query.h radv: re-run clang-format 2025-07-16 09:10:33 +02:00
radv_queue.c ac: replace some packet field definitions in sid.h by generated ones 2026-03-11 18:54:20 +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: Fix nullptr dereference 2026-02-03 20:00:15 +00: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 amd: rename ac_cu_info to ac_compiler_info 2026-03-03 08:50:12 +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: replace radv_sdma_surf by ac_sdma_surf 2026-03-09 08:40:47 +00:00
radv_sdma.h radv: replace radv_sdma_surf by ac_sdma_surf 2026-03-09 08:40:47 +00:00
radv_shader.c radv: stop passing radv_device for SPIR-V debug reports 2026-03-16 11:55:45 +00:00
radv_shader.h radv: remove unnecessary radv_device parameter to few functions 2026-03-16 07:50:01 +00:00
radv_shader_args.c radv: remove radv_use_llvm_for_stage() 2026-03-16 07:50:02 +00:00
radv_shader_args.h radv: fix independent sets with dynamic buffers and GPL 2026-02-24 11:12:14 +00:00
radv_shader_info.c radv: remove radv_use_llvm_for_stage() 2026-03-16 07:50:02 +00:00
radv_shader_info.h radv: remove unused radv_device parameter to few functions 2026-03-16 07:50:00 +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: rework acquiring timed cmdbufs 2026-01-28 11:11:24 +00:00
radv_sqtt.h radv/sqtt: rework acquiring timed cmdbufs 2026-01-28 11:11:24 +00:00
radv_video.c radv/video: Fix AV1 encode min tile size 2026-03-16 10:39:13 +00:00
radv_video.h radv/video: Split cdf buffer and encode ctx 2026-02-24 12:29:25 +00:00
radv_video_enc.c radv/video: Fix coding pic_parameter_set_id in H264 slice header 2026-03-16 10:39:13 +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