summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar Subv2018-07-04 15:29:51 -0500
committerGravatar Subv2018-07-04 15:29:51 -0500
commit77cfe4f027bd91e4200d6cda5c985f94de378684 (patch)
treef44bc7a6653b399246e5afdeff3a5726e1a1979a /src/video_core
parentMerge pull request #618 from Subv/clear_used_buffers (diff)
downloadyuzu-77cfe4f027bd91e4200d6cda5c985f94de378684.tar.gz
yuzu-77cfe4f027bd91e4200d6cda5c985f94de378684.tar.xz
yuzu-77cfe4f027bd91e4200d6cda5c985f94de378684.zip
GPU: Stub the shader SYNC and DEPBAR instructions.
It is unknown at this moment if we actually need to do something with these instructions or if the GLSL compiler takes care of that for us.
Diffstat (limited to 'src/video_core')
-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();