diff options
| -rw-r--r-- | src/video_core/shader/decode/arithmetic.cpp | 8 | ||||
| -rw-r--r-- | src/video_core/shader/decode/arithmetic_half.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/shader/decode/arithmetic_half_immediate.cpp | 8 | ||||
| -rw-r--r-- | src/video_core/shader/decode/ffma.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/shader/decode/half_set.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/shader/decode/half_set_predicate.cpp | 4 |
6 files changed, 17 insertions, 15 deletions
diff --git a/src/video_core/shader/decode/arithmetic.cpp b/src/video_core/shader/decode/arithmetic.cpp index bff3d5459..fcedd2af6 100644 --- a/src/video_core/shader/decode/arithmetic.cpp +++ b/src/video_core/shader/decode/arithmetic.cpp | |||
| @@ -43,12 +43,12 @@ u32 ShaderIR::DecodeArithmetic(NodeBlock& bb, u32 pc) { | |||
| 43 | case OpCode::Id::FMUL_IMM: { | 43 | case OpCode::Id::FMUL_IMM: { |
| 44 | // FMUL does not have 'abs' bits and only the second operand has a 'neg' bit. | 44 | // FMUL does not have 'abs' bits and only the second operand has a 'neg' bit. |
| 45 | if (instr.fmul.tab5cb8_2 != 0) { | 45 | if (instr.fmul.tab5cb8_2 != 0) { |
| 46 | LOG_WARNING(HW_GPU, "FMUL tab5cb8_2({}) is not implemented", | 46 | LOG_DEBUG(HW_GPU, "FMUL tab5cb8_2({}) is not implemented", |
| 47 | instr.fmul.tab5cb8_2.Value()); | 47 | instr.fmul.tab5cb8_2.Value()); |
| 48 | } | 48 | } |
| 49 | if (instr.fmul.tab5c68_0 != 1) { | 49 | if (instr.fmul.tab5c68_0 != 1) { |
| 50 | LOG_WARNING(HW_GPU, "FMUL tab5cb8_0({}) is not implemented", | 50 | LOG_DEBUG(HW_GPU, "FMUL tab5cb8_0({}) is not implemented", |
| 51 | instr.fmul.tab5c68_0.Value()); | 51 | instr.fmul.tab5c68_0.Value()); |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | op_b = GetOperandAbsNegFloat(op_b, false, instr.fmul.negate_b); | 54 | op_b = GetOperandAbsNegFloat(op_b, false, instr.fmul.negate_b); |
diff --git a/src/video_core/shader/decode/arithmetic_half.cpp b/src/video_core/shader/decode/arithmetic_half.cpp index b06cbe441..ee7d9a29d 100644 --- a/src/video_core/shader/decode/arithmetic_half.cpp +++ b/src/video_core/shader/decode/arithmetic_half.cpp | |||
| @@ -21,8 +21,8 @@ u32 ShaderIR::DecodeArithmeticHalf(NodeBlock& bb, u32 pc) { | |||
| 21 | 21 | ||
| 22 | if (opcode->get().GetId() == OpCode::Id::HADD2_C || | 22 | if (opcode->get().GetId() == OpCode::Id::HADD2_C || |
| 23 | opcode->get().GetId() == OpCode::Id::HADD2_R) { | 23 | opcode->get().GetId() == OpCode::Id::HADD2_R) { |
| 24 | if (instr.alu_half.ftz != 0) { | 24 | if (instr.alu_half.ftz == 0) { |
| 25 | LOG_WARNING(HW_GPU, "{} FTZ not implemented", opcode->get().GetName()); | 25 | LOG_DEBUG(HW_GPU, "{} without FTZ is not implemented", opcode->get().GetName()); |
| 26 | } | 26 | } |
| 27 | } | 27 | } |
| 28 | 28 | ||
diff --git a/src/video_core/shader/decode/arithmetic_half_immediate.cpp b/src/video_core/shader/decode/arithmetic_half_immediate.cpp index 6466fc011..d179b9873 100644 --- a/src/video_core/shader/decode/arithmetic_half_immediate.cpp +++ b/src/video_core/shader/decode/arithmetic_half_immediate.cpp | |||
| @@ -19,12 +19,12 @@ u32 ShaderIR::DecodeArithmeticHalfImmediate(NodeBlock& bb, u32 pc) { | |||
| 19 | const auto opcode = OpCode::Decode(instr); | 19 | const auto opcode = OpCode::Decode(instr); |
| 20 | 20 | ||
| 21 | if (opcode->get().GetId() == OpCode::Id::HADD2_IMM) { | 21 | if (opcode->get().GetId() == OpCode::Id::HADD2_IMM) { |
| 22 | if (instr.alu_half_imm.ftz != 0) { | 22 | if (instr.alu_half_imm.ftz == 0) { |
| 23 | LOG_WARNING(HW_GPU, "{} FTZ not implemented", opcode->get().GetName()); | 23 | LOG_DEBUG(HW_GPU, "{} without FTZ is not implemented", opcode->get().GetName()); |
| 24 | } | 24 | } |
| 25 | } else { | 25 | } else { |
| 26 | if (instr.alu_half_imm.precision != Tegra::Shader::HalfPrecision::None) { | 26 | if (instr.alu_half_imm.precision != Tegra::Shader::HalfPrecision::FTZ) { |
| 27 | LOG_WARNING(HW_GPU, "{} FTZ not implemented", opcode->get().GetName()); | 27 | LOG_DEBUG(HW_GPU, "{} without FTZ is not implemented", opcode->get().GetName()); |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
| 30 | 30 | ||
diff --git a/src/video_core/shader/decode/ffma.cpp b/src/video_core/shader/decode/ffma.cpp index ca2f39e8d..5973588d6 100644 --- a/src/video_core/shader/decode/ffma.cpp +++ b/src/video_core/shader/decode/ffma.cpp | |||
| @@ -19,10 +19,10 @@ u32 ShaderIR::DecodeFfma(NodeBlock& bb, u32 pc) { | |||
| 19 | 19 | ||
| 20 | UNIMPLEMENTED_IF_MSG(instr.ffma.cc != 0, "FFMA cc not implemented"); | 20 | UNIMPLEMENTED_IF_MSG(instr.ffma.cc != 0, "FFMA cc not implemented"); |
| 21 | if (instr.ffma.tab5980_0 != 1) { | 21 | if (instr.ffma.tab5980_0 != 1) { |
| 22 | LOG_WARNING(HW_GPU, "FFMA tab5980_0({}) not implemented", instr.ffma.tab5980_0.Value()); | 22 | LOG_DEBUG(HW_GPU, "FFMA tab5980_0({}) not implemented", instr.ffma.tab5980_0.Value()); |
| 23 | } | 23 | } |
| 24 | if (instr.ffma.tab5980_1 != 0) { | 24 | if (instr.ffma.tab5980_1 != 0) { |
| 25 | LOG_WARNING(HW_GPU, "FFMA tab5980_1({}) not implemented", instr.ffma.tab5980_1.Value()); | 25 | LOG_DEBUG(HW_GPU, "FFMA tab5980_1({}) not implemented", instr.ffma.tab5980_1.Value()); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | const Node op_a = GetRegister(instr.gpr8); | 28 | const Node op_a = GetRegister(instr.gpr8); |
diff --git a/src/video_core/shader/decode/half_set.cpp b/src/video_core/shader/decode/half_set.cpp index 48ca7a4af..848e46874 100644 --- a/src/video_core/shader/decode/half_set.cpp +++ b/src/video_core/shader/decode/half_set.cpp | |||
| @@ -20,8 +20,8 @@ u32 ShaderIR::DecodeHalfSet(NodeBlock& bb, u32 pc) { | |||
| 20 | const Instruction instr = {program_code[pc]}; | 20 | const Instruction instr = {program_code[pc]}; |
| 21 | const auto opcode = OpCode::Decode(instr); | 21 | const auto opcode = OpCode::Decode(instr); |
| 22 | 22 | ||
| 23 | if (instr.hset2.ftz != 0) { | 23 | if (instr.hset2.ftz == 0) { |
| 24 | LOG_WARNING(HW_GPU, "{} FTZ not implemented", opcode->get().GetName()); | 24 | LOG_DEBUG(HW_GPU, "{} without FTZ is not implemented", opcode->get().GetName()); |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | Node op_a = UnpackHalfFloat(GetRegister(instr.gpr8), instr.hset2.type_a); | 27 | Node op_a = UnpackHalfFloat(GetRegister(instr.gpr8), instr.hset2.type_a); |
diff --git a/src/video_core/shader/decode/half_set_predicate.cpp b/src/video_core/shader/decode/half_set_predicate.cpp index fec8f2dbe..310655619 100644 --- a/src/video_core/shader/decode/half_set_predicate.cpp +++ b/src/video_core/shader/decode/half_set_predicate.cpp | |||
| @@ -19,7 +19,9 @@ u32 ShaderIR::DecodeHalfSetPredicate(NodeBlock& bb, u32 pc) { | |||
| 19 | const Instruction instr = {program_code[pc]}; | 19 | const Instruction instr = {program_code[pc]}; |
| 20 | const auto opcode = OpCode::Decode(instr); | 20 | const auto opcode = OpCode::Decode(instr); |
| 21 | 21 | ||
| 22 | LOG_DEBUG(HW_GPU, "ftz={}", static_cast<u32>(instr.hsetp2.ftz)); | 22 | if (instr.hsetp2.ftz != 0) { |
| 23 | LOG_DEBUG(HW_GPU, "{} without FTZ is not implemented", opcode->get().GetName()); | ||
| 24 | } | ||
| 23 | 25 | ||
| 24 | Node op_a = UnpackHalfFloat(GetRegister(instr.gpr8), instr.hsetp2.type_a); | 26 | Node op_a = UnpackHalfFloat(GetRegister(instr.gpr8), instr.hsetp2.type_a); |
| 25 | op_a = GetOperandAbsNegHalf(op_a, instr.hsetp2.abs_a, instr.hsetp2.negate_a); | 27 | op_a = GetOperandAbsNegHalf(op_a, instr.hsetp2.abs_a, instr.hsetp2.negate_a); |