radv/rt: Don't allocate the traversal shader in a capture/replay range

We never write the traversal shader address out to shader group handles,
so this is not necessary. On the flipside, it can cause conflicts if the
traversal shader is allocated in a range occupied by a replayed shader.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33711>
(cherry picked from commit 14b902c825)
This commit is contained in:
Natalie Vock 2025-02-24 14:35:44 +01:00 committed by Eric Engestrom
parent cb09b3f624
commit ea47f98811
2 changed files with 4 additions and 3 deletions

View file

@ -1914,7 +1914,7 @@
"description": "radv/rt: Don't allocate the traversal shader in a capture/replay range",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -437,8 +437,9 @@ radv_rt_nir_to_asm(struct radv_device *device, struct vk_pipeline_cache *cache,
bool dump_shader = radv_can_dump_shader(device, shaders[0]);
bool dump_nir = dump_shader && (instance->debug_flags & RADV_DEBUG_DUMP_NIR);
bool replayable =
pipeline->base.base.create_flags & VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR;
bool replayable = (pipeline->base.base.create_flags &
VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR) &&
stage->stage != MESA_SHADER_INTERSECTION;
if (dump_shader) {
simple_mtx_lock(&instance->shader_dump_mtx);