소스 검색

gl_shader_decompiler: Implement IPA instruction.

bunnei 8 년 전
부모
커밋
95144cc39c
1개의 변경된 파일11개의 추가작업 그리고 0개의 파일을 삭제
  1. 11 0
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 11 - 0
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@@ -379,7 +379,18 @@ private:
                 offset = PROGRAM_END - 1;
                 offset = PROGRAM_END - 1;
                 break;
                 break;
             }
             }
+            case OpCode::Id::IPA: {
+                const auto& attribute = instr.attribute.fmt28;
 
 
+                if (attribute.index == Attribute::Index::Position) {
+                    LOG_CRITICAL(HW_GPU, "Unimplemented");
+                    break;
+                }
+
+                std::string dest = GetRegister(instr.gpr0);
+                SetDest(attribute.element, dest, GetInputAttribute(attribute.index), 1, 4);
+                break;
+            }
             default: {
             default: {
                 LOG_CRITICAL(HW_GPU, "Unhandled instruction: 0x%02x (%s): 0x%08x",
                 LOG_CRITICAL(HW_GPU, "Unhandled instruction: 0x%02x (%s): 0x%08x",
                              static_cast<unsigned>(instr.opcode.EffectiveOpCode()),
                              static_cast<unsigned>(instr.opcode.EffectiveOpCode()),