diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 7 |
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(); |