From 568fa71ef8d825b735fdbf6747ada3d7cfe95eff Mon Sep 17 00:00:00 2001 From: Friedrich Vock Date: Sun, 11 Dec 2022 22:49:18 +0100 Subject: [PATCH] radv: Handle NULL miss shaders Fixes reflections in DOOM Eternal. Fixes: 85580faa ("radv: Add ray traversal loop.") Closes: #6210 Part-of: --- src/amd/vulkan/radv_rt_shader.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_rt_shader.c b/src/amd/vulkan/radv_rt_shader.c index 62b9c70..5976715 100644 --- a/src/amd/vulkan/radv_rt_shader.c +++ b/src/amd/vulkan/radv_rt_shader.c @@ -618,6 +618,11 @@ lower_rt_instructions(nir_shader *shader, struct rt_variables *vars, unsigned ca nir_store_var(&b_shader, vars->hit_kind, undef, 0x1); nir_ssa_def *miss_index = nir_load_var(&b_shader, vars->miss_index); load_sbt_entry(&b_shader, vars, miss_index, SBT_MISS, SBT_GENERAL_IDX); + + /* In case of a NULL miss shader, do nothing and just return. */ + nir_push_if(&b_shader, nir_ieq_imm(&b_shader, nir_load_var(&b_shader, vars->idx), 0)); + insert_rt_return(&b_shader, vars); + nir_pop_if(&b_shader, NULL); break; } default: -- 2.7.4