summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/engines/shader_bytecode.h5
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp7
2 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index c1226a649..ec9050d3d 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -438,6 +438,8 @@ public:
438 enum class Id { 438 enum class Id {
439 KIL, 439 KIL,
440 SSY, 440 SSY,
441 SYNC,
442 DEPBAR,
441 BFE_C, 443 BFE_C,
442 BFE_R, 444 BFE_R,
443 BFE_IMM, 445 BFE_IMM,
@@ -534,6 +536,7 @@ public:
534 Shift, 536 Shift,
535 Ffma, 537 Ffma,
536 Flow, 538 Flow,
539 Synch,
537 Memory, 540 Memory,
538 FloatSet, 541 FloatSet,
539 FloatSetPredicate, 542 FloatSetPredicate,
@@ -638,6 +641,8 @@ private:
638 INST("111000110011----", Id::KIL, Type::Flow, "KIL"), 641 INST("111000110011----", Id::KIL, Type::Flow, "KIL"),
639 INST("111000101001----", Id::SSY, Type::Flow, "SSY"), 642 INST("111000101001----", Id::SSY, Type::Flow, "SSY"),
640 INST("111000100100----", Id::BRA, Type::Flow, "BRA"), 643 INST("111000100100----", Id::BRA, Type::Flow, "BRA"),
644 INST("1111000011110---", Id::DEPBAR, Type::Synch, "DEPBAR"),
645 INST("1111000011111---", Id::SYNC, Type::Synch, "SYNC"),
641 INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"), 646 INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"),
642 INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), 647 INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"),
643 INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"), 648 INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"),
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index ec9956edb..d5259e0b1 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -1599,6 +1599,13 @@ private:
1599 // can ignore this when generating GLSL code. 1599 // can ignore this when generating GLSL code.
1600 break; 1600 break;
1601 } 1601 }
1602 case OpCode::Id::DEPBAR:
1603 case OpCode::Id::SYNC: {
1604 // TODO(Subv): Find out if we actually have to care about these instructions or if
1605 // the GLSL compiler takes care of that for us.
1606 LOG_WARNING(HW_GPU, "DEPBAR/SYNC instruction is stubbed");
1607 break;
1608 }
1602 default: { 1609 default: {
1603 LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName()); 1610 LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName());
1604 UNREACHABLE(); 1611 UNREACHABLE();