Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=105333
Fixes: https://github.com/iXit/Mesa-3D/issues/314

For this application, NaN is passed to KILL_IF and is expected to
pass.

v2: Explain in the code why UGE is used.

Signed-off-by: Axel Davy <davyax...@gmail.com>
Reviewed-by: Marek Olšák <marek.ol...@amd.com>

CC: <mesa-sta...@lists.freedesktop.org>
---
 src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c 
b/src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c
index f54d025aec0..a768b449047 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c
@@ -60,7 +60,8 @@ static void kil_emit(const struct lp_build_tgsi_action 
*action,
 
                for (i = 0; i < TGSI_NUM_CHANNELS; i++) {
                        LLVMValueRef value = lp_build_emit_fetch(bld_base, 
inst, 0, i);
-                       conds[i] = LLVMBuildFCmp(builder, LLVMRealOGE, value,
+                       /* UGE because NaN shouldn't get killed */
+                       conds[i] = LLVMBuildFCmp(builder, LLVMRealUGE, value,
                                                ctx->ac.f32_0, "");
                }
 
-- 
2.18.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to