radv/rt: skip shaders cache for pipelines created with the capture/replay flag

Otherwise, if a pipeline is found in cache it will use a different
shader arena for allocation and the capture replay shader group handles
won't match.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31188>
(cherry picked from commit f88cf56087)
This commit is contained in:
Samuel Pitoiset 2024-09-16 12:29:44 +02:00 committed by Eric Engestrom
parent 54630d224c
commit cab8b6df28
5 changed files with 5 additions and 6 deletions

View file

@ -114,7 +114,7 @@
"description": "radv/rt: skip shaders cache for pipelines created with the capture/replay flag",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -1,6 +1,5 @@
dEQP-VK.query_pool.statistics_query.host_query_reset.geometry_shader_(invocations|primitives).secondary.(32|64)bits_.*
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.(single|multi)threaded_compilation.*
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.*
dEQP-VK.shader_object.binding.mesh_swap_task
@ -13,7 +12,6 @@ dEQP-VK.pipeline.monolithic.sampler.separate_stencil_usage.view_type.cube_array.
dEQP-VK.pipeline.shader_object_linked_binary.image.suballocation.sampling_type.separate.view_type.1d_array.format.r8_srgb.count_1.size.443x1_array_of_3
dEQP-VK.pipeline.shader_object_unlinked_binary.image.suballocation.sampling_type.combined.view_type.1d.format.r8_unorm.count_8.size.443x1
dEQP-VK.pipeline.shader_object_unlinked_binary.image.suballocation.sampling_type.separate.view_type.1d_array.format.a1b5g5r5_unorm_pack16_khr.count_8.size.443x1_array_of_6
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.misc.maintenance5
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.gpu.boxes.stride_3.offset_7.use_libs.isect_or_miss
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.gpu.boxes.stride_5.offset_7.use_libs.any_or_miss
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.gpu.triangles.stride_3.offset_7.use_libs.any

View file

@ -1,6 +1,5 @@
dEQP-VK.memory.mapping.suballocation.sub.1048577.offset_0.size_1048575.subinvalidate_overlapping
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.(single|multi)threaded_compilation.*
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.*
# New CTS flakes in 1.3.8.0

View file

@ -1,6 +1,5 @@
dEQP-VK.fragment_shading_barycentric.fast_linked_library.data.provoking_last.dynamic.triangle_list.array2.dvec2
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.(single|multi)threaded_compilation.*
dEQP-VK.ray_tracing_pipeline.pipeline_no_null_shaders_flag.*
# Nightly run expectations update

View file

@ -887,8 +887,11 @@ radv_rt_pipeline_compile(struct radv_device *device, const VkRayTracingPipelineC
/* Skip the shaders cache when any of the below are true:
* - shaders are captured because it's for debugging purposes
* - ray history is enabled
* - group handles are saved and reused on a subsequent run (ie. capture/replay)
*/
if (keep_executable_info || emit_ray_history) {
if (keep_executable_info || emit_ray_history ||
(pipeline->base.base.create_flags &
VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR)) {
skip_shaders_cache = true;
}