diff --git a/src/amd/vulkan/nir/radv_nir_rt_shader.c b/src/amd/vulkan/nir/radv_nir_rt_shader.c index 92c7c1f32b1..24b0077a5d0 100644 --- a/src/amd/vulkan/nir/radv_nir_rt_shader.c +++ b/src/amd/vulkan/nir/radv_nir_rt_shader.c @@ -1771,7 +1771,12 @@ lower_rt_instruction_monolithic(nir_builder *b, nir_instr *instr, void *data) switch (intr->intrinsic) { case nir_intrinsic_execute_callable: - unreachable("nir_intrinsic_execute_callable"); + /* It's allowed to place OpExecuteCallableKHR in a SPIR-V, even if the RT pipeline doesn't contain + * any callable shaders. However, it's impossible to execute the instruction in a valid way, so just remove any + * nir_intrinsic_execute_callable we encounter. + */ + nir_instr_remove(instr); + return true; case nir_intrinsic_trace_ray: { vars->payload_offset = nir_src_as_uint(intr->src[10]);