diff options
| author | 2021-04-23 07:09:02 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:29 -0400 | |
| commit | d2b54c6e42853866bd88e35313a9fce4eccac03c (patch) | |
| tree | c477e232f0320019e4c5cf7646af5901d1b9c46b /src/shader_recompiler/frontend/maxwell/translate/impl | |
| parent | shader: Fix bugs and build issues on GCC (diff) | |
| download | yuzu-d2b54c6e42853866bd88e35313a9fce4eccac03c.tar.gz yuzu-d2b54c6e42853866bd88e35313a9fce4eccac03c.tar.xz yuzu-d2b54c6e42853866bd88e35313a9fce4eccac03c.zip | |
shader: Fix VMNMX selector B
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate/impl')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/impl/video_set_predicate.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/video_set_predicate.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/video_set_predicate.cpp index ec5e74f6d..1b66abc33 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/video_set_predicate.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/video_set_predicate.cpp | |||
| @@ -69,13 +69,14 @@ void TranslatorVisitor::VSETP(u64 insn) { | |||
| 69 | const IR::U32 src_b{is_b_imm ? ir.Imm32(static_cast<u32>(vsetp.src_b_imm)) : GetReg20(insn)}; | 69 | const IR::U32 src_b{is_b_imm ? ir.Imm32(static_cast<u32>(vsetp.src_b_imm)) : GetReg20(insn)}; |
| 70 | 70 | ||
| 71 | const u32 a_selector{static_cast<u32>(vsetp.src_a_selector)}; | 71 | const u32 a_selector{static_cast<u32>(vsetp.src_a_selector)}; |
| 72 | const u32 b_selector{static_cast<u32>(vsetp.src_b_selector)}; | ||
| 72 | const VideoWidth a_width{vsetp.src_a_width}; | 73 | const VideoWidth a_width{vsetp.src_a_width}; |
| 73 | const VideoWidth b_width{GetVideoSourceWidth(vsetp.src_b_width, is_b_imm)}; | 74 | const VideoWidth b_width{GetVideoSourceWidth(vsetp.src_b_width, is_b_imm)}; |
| 74 | 75 | ||
| 75 | const bool src_a_signed{vsetp.src_a_sign != 0}; | 76 | const bool src_a_signed{vsetp.src_a_sign != 0}; |
| 76 | const bool src_b_signed{vsetp.src_b_sign != 0}; | 77 | const bool src_b_signed{vsetp.src_b_sign != 0}; |
| 77 | const IR::U32 op_a{ExtractVideoOperandValue(ir, src_a, a_width, a_selector, src_a_signed)}; | 78 | const IR::U32 op_a{ExtractVideoOperandValue(ir, src_a, a_width, a_selector, src_a_signed)}; |
| 78 | const IR::U32 op_b{ExtractVideoOperandValue(ir, src_b, b_width, a_selector, src_b_signed)}; | 79 | const IR::U32 op_b{ExtractVideoOperandValue(ir, src_b, b_width, b_selector, src_b_signed)}; |
| 79 | 80 | ||
| 80 | // Compare operation's sign is only dependent on operand b's sign | 81 | // Compare operation's sign is only dependent on operand b's sign |
| 81 | const bool compare_signed{src_b_signed}; | 82 | const bool compare_signed{src_b_signed}; |