diff options
| author | 2019-08-18 08:50:54 -0400 | |
|---|---|---|
| committer | 2019-08-18 08:50:54 -0400 | |
| commit | 87bbefe55ff761b3119e3f011ae08c002457327f (patch) | |
| tree | f72117246074e1bd20feec1aa5a4465ec0440b67 /src | |
| parent | Merge pull request #2789 from jroweboy/quickfix (diff) | |
| parent | decode/half_set_predicate: Fix predicates (diff) | |
| download | yuzu-87bbefe55ff761b3119e3f011ae08c002457327f.tar.gz yuzu-87bbefe55ff761b3119e3f011ae08c002457327f.tar.xz yuzu-87bbefe55ff761b3119e3f011ae08c002457327f.zip | |
Merge pull request #2768 from ReinUsesLisp/hsetp2-fix
decode/half_set_predicate: Fix predicates
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader/decode/half_set_predicate.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/video_core/shader/decode/half_set_predicate.cpp b/src/video_core/shader/decode/half_set_predicate.cpp index a82a6a15c..a6c082cc9 100644 --- a/src/video_core/shader/decode/half_set_predicate.cpp +++ b/src/video_core/shader/decode/half_set_predicate.cpp | |||
| @@ -52,15 +52,15 @@ u32 ShaderIR::DecodeHalfSetPredicate(NodeBlock& bb, u32 pc) { | |||
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | const OperationCode combiner = GetPredicateCombiner(instr.hsetp2.op); | 54 | const OperationCode combiner = GetPredicateCombiner(instr.hsetp2.op); |
| 55 | const Node pred39 = GetPredicate(instr.hsetp2.pred39, instr.hsetp2.neg_pred); | 55 | const Node combined_pred = GetPredicate(instr.hsetp2.pred3, instr.hsetp2.neg_pred); |
| 56 | 56 | ||
| 57 | const auto Write = [&](u64 dest, Node src) { | 57 | const auto Write = [&](u64 dest, Node src) { |
| 58 | SetPredicate(bb, dest, Operation(combiner, std::move(src), pred39)); | 58 | SetPredicate(bb, dest, Operation(combiner, std::move(src), combined_pred)); |
| 59 | }; | 59 | }; |
| 60 | 60 | ||
| 61 | const Node comparison = GetPredicateComparisonHalf(cond, op_a, op_b); | 61 | const Node comparison = GetPredicateComparisonHalf(cond, op_a, op_b); |
| 62 | const u64 first = instr.hsetp2.pred0; | 62 | const u64 first = instr.hsetp2.pred0; |
| 63 | const u64 second = instr.hsetp2.pred3; | 63 | const u64 second = instr.hsetp2.pred39; |
| 64 | if (h_and) { | 64 | if (h_and) { |
| 65 | const Node joined = Operation(OperationCode::LogicalAnd2, comparison); | 65 | const Node joined = Operation(OperationCode::LogicalAnd2, comparison); |
| 66 | Write(first, joined); | 66 | Write(first, joined); |