diff options
Diffstat (limited to 'src/video_core/shader')
| -rw-r--r-- | src/video_core/shader/decode/arithmetic_integer.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/shader/decode/video.cpp | 19 | ||||
| -rw-r--r-- | src/video_core/shader/decode/xmad.cpp | 15 | ||||
| -rw-r--r-- | src/video_core/shader/shader_ir.cpp | 4 | 
4 files changed, 22 insertions, 22 deletions
| diff --git a/src/video_core/shader/decode/arithmetic_integer.cpp b/src/video_core/shader/decode/arithmetic_integer.cpp index a041519b7..73155966f 100644 --- a/src/video_core/shader/decode/arithmetic_integer.cpp +++ b/src/video_core/shader/decode/arithmetic_integer.cpp @@ -98,12 +98,12 @@ u32 ShaderIR::DecodeArithmeticInteger(NodeBlock& bb, u32 pc) {          op_b = GetOperandAbsNegInteger(op_b, false, instr.iadd3.neg_b, true);          op_c = GetOperandAbsNegInteger(op_c, false, instr.iadd3.neg_c, true); -        const Node value = [&]() { -            const Node add_ab = Operation(OperationCode::IAdd, NO_PRECISE, op_a, op_b); +        const Node value = [&] { +            Node add_ab = Operation(OperationCode::IAdd, NO_PRECISE, op_a, op_b);              if (opcode->get().GetId() != OpCode::Id::IADD3_R) {                  return Operation(OperationCode::IAdd, NO_PRECISE, add_ab, op_c);              } -            const Node shifted = [&]() { +            const Node shifted = [&] {                  switch (instr.iadd3.mode) {                  case Tegra::Shader::IAdd3Mode::RightShift:                      // TODO(tech4me): According to diff --git a/src/video_core/shader/decode/video.cpp b/src/video_core/shader/decode/video.cpp index 64ba60ea2..1c0957277 100644 --- a/src/video_core/shader/decode/video.cpp +++ b/src/video_core/shader/decode/video.cpp @@ -91,29 +91,28 @@ u32 ShaderIR::DecodeVideo(NodeBlock& bb, u32 pc) {      return pc;  } -Node ShaderIR::GetVideoOperand(Node op, bool is_chunk, bool is_signed, -                               Tegra::Shader::VideoType type, u64 byte_height) { +Node ShaderIR::GetVideoOperand(Node op, bool is_chunk, bool is_signed, VideoType type, +                               u64 byte_height) {      if (!is_chunk) {          return BitfieldExtract(op, static_cast<u32>(byte_height * 8), 8);      } -    const Node zero = Immediate(0);      switch (type) { -    case Tegra::Shader::VideoType::Size16_Low: +    case VideoType::Size16_Low:          return BitfieldExtract(op, 0, 16); -    case Tegra::Shader::VideoType::Size16_High: +    case VideoType::Size16_High:          return BitfieldExtract(op, 16, 16); -    case Tegra::Shader::VideoType::Size32: +    case VideoType::Size32:          // TODO(Rodrigo): From my hardware tests it becomes a bit "mad" when this type is used          // (1 * 1 + 0 == 0x5b800000). Until a better explanation is found: abort.          UNIMPLEMENTED(); -        return zero; -    case Tegra::Shader::VideoType::Invalid: +        return Immediate(0); +    case VideoType::Invalid:          UNREACHABLE_MSG("Invalid instruction encoding"); -        return zero; +        return Immediate(0);      default:          UNREACHABLE(); -        return zero; +        return Immediate(0);      }  } diff --git a/src/video_core/shader/decode/xmad.cpp b/src/video_core/shader/decode/xmad.cpp index c83dc6615..233b8fa42 100644 --- a/src/video_core/shader/decode/xmad.cpp +++ b/src/video_core/shader/decode/xmad.cpp @@ -81,20 +81,21 @@ u32 ShaderIR::DecodeXmad(NodeBlock& bb, u32 pc) {      SetTemporary(bb, 0, product);      product = GetTemporary(0); -    const Node original_c = op_c; +    Node original_c = op_c;      const Tegra::Shader::XmadMode set_mode = mode; // Workaround to clang compile error -    op_c = [&]() { +    op_c = [&] {          switch (set_mode) {          case Tegra::Shader::XmadMode::None:              return original_c;          case Tegra::Shader::XmadMode::CLo: -            return BitfieldExtract(original_c, 0, 16); +            return BitfieldExtract(std::move(original_c), 0, 16);          case Tegra::Shader::XmadMode::CHi: -            return BitfieldExtract(original_c, 16, 16); +            return BitfieldExtract(std::move(original_c), 16, 16);          case Tegra::Shader::XmadMode::CBcc: { -            const Node shifted_b = SignedOperation(OperationCode::ILogicalShiftLeft, is_signed_b, -                                                   original_b, Immediate(16)); -            return SignedOperation(OperationCode::IAdd, is_signed_c, original_c, shifted_b); +            Node shifted_b = SignedOperation(OperationCode::ILogicalShiftLeft, is_signed_b, +                                             original_b, Immediate(16)); +            return SignedOperation(OperationCode::IAdd, is_signed_c, std::move(original_c), +                                   std::move(shifted_b));          }          case Tegra::Shader::XmadMode::CSfu: {              const Node comp_a = diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index e322c3402..29d794b34 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -112,9 +112,9 @@ Node ShaderIR::GetOutputAttribute(Attribute::Index index, u64 element, Node buff  }  Node ShaderIR::GetInternalFlag(InternalFlag flag, bool negated) const { -    const Node node = MakeNode<InternalFlagNode>(flag); +    Node node = MakeNode<InternalFlagNode>(flag);      if (negated) { -        return Operation(OperationCode::LogicalNegate, node); +        return Operation(OperationCode::LogicalNegate, std::move(node));      }      return node;  } | 
