forked from suyu/suyu
shader: Fix TMML queries
This commit is contained in:
parent
fbf5cdcba0
commit
b659212dbd
1 changed files with 9 additions and 5 deletions
|
@ -84,9 +84,6 @@ void Impl(TranslatorVisitor& v, u64 insn, bool is_bindless) {
|
|||
if ((tmml.mask & 0b1100) != 0) {
|
||||
throw NotImplementedException("TMML BA results are not implmented");
|
||||
}
|
||||
|
||||
IR::F32 transform_constant{v.ir.Imm32(256.0f)};
|
||||
|
||||
const IR::Value coords{MakeCoords(v, tmml.coord_reg, tmml.type)};
|
||||
|
||||
IR::U32 handle;
|
||||
|
@ -107,9 +104,16 @@ void Impl(TranslatorVisitor& v, u64 insn, bool is_bindless) {
|
|||
}
|
||||
IR::F32 value{v.ir.CompositeExtract(sample, element)};
|
||||
if (element < 2) {
|
||||
value = v.ir.FPMul(value, transform_constant);
|
||||
IR::U32 casted_value;
|
||||
if (element == 0) {
|
||||
casted_value = v.ir.ConvertFToU(32, value);
|
||||
} else {
|
||||
casted_value = v.ir.ConvertFToS(16, value);
|
||||
}
|
||||
v.X(dest_reg, v.ir.ShiftLeftLogical(casted_value, v.ir.Imm32(8)));
|
||||
} else {
|
||||
v.F(dest_reg, value);
|
||||
}
|
||||
v.F(dest_reg, value);
|
||||
++dest_reg;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue