diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader/decode/register_set_predicate.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/shader/decode/register_set_predicate.cpp b/src/video_core/shader/decode/register_set_predicate.cpp index bbfe2ce05..06a3c7539 100644 --- a/src/video_core/shader/decode/register_set_predicate.cpp +++ b/src/video_core/shader/decode/register_set_predicate.cpp | |||
| @@ -37,10 +37,11 @@ u32 ShaderIR::DecodeRegisterSetPredicate(BasicBlock& bb, u32 pc) { | |||
| 37 | 37 | ||
| 38 | const Node apply_compare = | 38 | const Node apply_compare = |
| 39 | Operation(OperationCode::UBitwiseAnd, NO_PRECISE, apply_mask, shift); | 39 | Operation(OperationCode::UBitwiseAnd, NO_PRECISE, apply_mask, shift); |
| 40 | const Node condition = Operation(OperationCode::LogicalUEqual, apply_compare, Immediate(0)); | 40 | const Node condition = |
| 41 | Operation(OperationCode::LogicalUNotEqual, apply_compare, Immediate(0)); | ||
| 41 | 42 | ||
| 42 | const Node value_compare = Operation(OperationCode::UBitwiseAnd, NO_PRECISE, mask, shift); | 43 | const Node value_compare = Operation(OperationCode::UBitwiseAnd, NO_PRECISE, mask, shift); |
| 43 | const Node value = Operation(OperationCode::LogicalUEqual, value_compare, Immediate(0)); | 44 | const Node value = Operation(OperationCode::LogicalUNotEqual, value_compare, Immediate(0)); |
| 44 | 45 | ||
| 45 | const Node code = Operation(OperationCode::LogicalAssign, GetPredicate(pred), value); | 46 | const Node code = Operation(OperationCode::LogicalAssign, GetPredicate(pred), value); |
| 46 | bb.push_back(Conditional(condition, {code})); | 47 | bb.push_back(Conditional(condition, {code})); |