shader: Fix TEX mask

This commit is contained in:
ReinUsesLisp 2021-03-23 14:39:59 -03:00 committed by ameerj
parent f8115a6a9e
commit a8d8fd40f7

View file

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