From 0e4bd261b1535b5c1d38607545a54101cb1f3d01 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 16 Oct 2019 12:56:05 +0200 Subject: [PATCH] aco: ensure that uniform booleans are computed in WQM if their uses happen in WQM This fixes graphical corruption in SC2. Reviewed-by: Rhys Perry --- src/amd/compiler/aco_instruction_selection.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index fede0979bd2..203897d0d8f 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -321,7 +321,8 @@ Temp as_uniform_bool(isel_context *ctx, Temp val) } else { assert(val.regClass() == s2); Builder bld(ctx->program, ctx->block); - return bld.sopc(aco_opcode::s_cmp_lg_u64, bld.def(s1, scc), Operand(0u), Operand(val)); + /* if we're currently in WQM mode, ensure that the source is also computed in WQM */ + return bld.sopc(aco_opcode::s_cmp_lg_u64, bld.def(s1, scc), Operand(0u), emit_wqm(ctx, val)); } } -- 2.30.2