projects
/
platform
/
upstream
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
276236e
)
radv: Handle NULL miss shaders
author
Friedrich Vock
<friedrich.vock@gmx.de>
Sun, 11 Dec 2022 21:49:18 +0000
(22:49 +0100)
committer
Marge Bot
<emma+marge@anholt.net>
Mon, 12 Dec 2022 18:52:59 +0000
(18:52 +0000)
Fixes reflections in DOOM Eternal.
Fixes:
85580faa
("radv: Add ray traversal loop.")
Closes: #6210
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20270>
src/amd/vulkan/radv_rt_shader.c
patch
|
blob
|
history
diff --git
a/src/amd/vulkan/radv_rt_shader.c
b/src/amd/vulkan/radv_rt_shader.c
index
62b9c70
..
5976715
100644
(file)
--- 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: