Explorar o código

shader: Fix TEX mask

ReinUsesLisp %!s(int64=5) %!d(string=hai) anos
pai
achega
a8d8fd40f7

+ 3 - 1
src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp

@@ -188,6 +188,7 @@ void Impl(TranslatorVisitor& v, u64 insn, bool aoffi, Blod blod, bool lc,
         }
     }()};
 
+    IR::Reg dest_reg{tex.dest_reg};
     for (int element = 0; element < 4; ++element) {
         if (((tex.mask >> element) & 1) == 0) {
             continue;
@@ -198,7 +199,8 @@ void Impl(TranslatorVisitor& v, u64 insn, bool aoffi, Blod blod, bool lc,
         } else {
             value = IR::F32{v.ir.CompositeExtract(sample, element)};
         }
-        v.F(tex.dest_reg + element, value);
+        v.F(dest_reg, value);
+        ++dest_reg;
     }
     if (tex.sparse_pred != IR::Pred::PT) {
         v.ir.SetPred(tex.sparse_pred, v.ir.LogicalNot(v.ir.GetSparseFromOp(sample)));