shader: Add support for fp16 comparisons and misc fixes
This commit is contained in:
parent
27fb97377e
commit
a77e764726
11 changed files with 56 additions and 14 deletions
|
@ -6,7 +6,6 @@
|
|||
|
||||
namespace Shader::Maxwell {
|
||||
namespace {
|
||||
|
||||
void HADD2(TranslatorVisitor& v, u64 insn, Merge merge, bool ftz, bool sat, bool abs_a, bool neg_a,
|
||||
Swizzle swizzle_a, bool abs_b, bool neg_b, Swizzle swizzle_b, const IR::U32& src_b) {
|
||||
union {
|
||||
|
@ -66,7 +65,7 @@ void HADD2(TranslatorVisitor& v, u64 insn, bool sat, bool abs_b, bool neg_b, Swi
|
|||
HADD2(v, insn, hadd2.merge, hadd2.ftz != 0, sat, hadd2.abs_a != 0, hadd2.neg_a != 0,
|
||||
hadd2.swizzle_a, abs_b, neg_b, swizzle_b, src_b);
|
||||
}
|
||||
} // namespace
|
||||
} // Anonymous namespace
|
||||
|
||||
void TranslatorVisitor::HADD2_reg(u64 insn) {
|
||||
union {
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
namespace Shader::Maxwell {
|
||||
namespace {
|
||||
|
||||
void HFMA2(TranslatorVisitor& v, u64 insn, Merge merge, Swizzle swizzle_a, bool neg_b, bool neg_c,
|
||||
Swizzle swizzle_b, Swizzle swizzle_c, const IR::U32& src_b, const IR::U32& src_c,
|
||||
bool sat, HalfPrecision precision) {
|
||||
|
@ -85,8 +84,7 @@ void HFMA2(TranslatorVisitor& v, u64 insn, bool neg_b, bool neg_c, Swizzle swizz
|
|||
HFMA2(v, insn, hfma2.merge, hfma2.swizzle_a, neg_b, neg_c, swizzle_b, swizzle_c, src_b, src_c,
|
||||
sat, precision);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // Anonymous namespace
|
||||
|
||||
void TranslatorVisitor::HFMA2_reg(u64 insn) {
|
||||
union {
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
namespace Shader::Maxwell {
|
||||
namespace {
|
||||
|
||||
void HMUL2(TranslatorVisitor& v, u64 insn, Merge merge, bool sat, bool abs_a, bool neg_a,
|
||||
Swizzle swizzle_a, bool abs_b, bool neg_b, Swizzle swizzle_b, const IR::U32& src_b,
|
||||
HalfPrecision precision) {
|
||||
|
@ -79,7 +78,7 @@ void HMUL2(TranslatorVisitor& v, u64 insn, bool sat, bool abs_a, bool neg_a, boo
|
|||
HMUL2(v, insn, hmul2.merge, sat, abs_a, neg_a, hmul2.swizzle_a, abs_b, neg_b, swizzle_b, src_b,
|
||||
hmul2.precision);
|
||||
}
|
||||
} // namespace
|
||||
} // Anonymous namespace
|
||||
|
||||
void TranslatorVisitor::HMUL2_reg(u64 insn) {
|
||||
union {
|
||||
|
|
|
@ -76,6 +76,7 @@ void TranslatorVisitor::HSET2_reg(u64 insn) {
|
|||
BitField<35, 4, FPCompareOp> compare_op;
|
||||
BitField<28, 2, Swizzle> swizzle_b;
|
||||
} const hset2{insn};
|
||||
|
||||
HSET2(*this, insn, GetReg20(insn), hset2.bf != 0, hset2.ftz != 0, hset2.neg_b != 0,
|
||||
hset2.abs_b != 0, hset2.compare_op, hset2.swizzle_b);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue