diff options
author | bunnei <bunneidev@gmail.com> | 2018-06-09 06:42:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-09 06:42:53 +0200 |
commit | d81aaa3ed343f93af800de4eb1312d1bbb38ea2e (patch) | |
tree | bc3a1acb3a45e1a2b68464502c9c7e146494e70d | |
parent | Merge pull request #551 from bunnei/shr (diff) | |
parent | GPU: Stub the SSY shader instruction. (diff) | |
download | yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar.gz yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar.bz2 yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar.lz yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar.xz yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.tar.zst yuzu-d81aaa3ed343f93af800de4eb1312d1bbb38ea2e.zip |
-rw-r--r-- | src/video_core/engines/shader_bytecode.h | 2 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index 51dcc0d08..d748026b8 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h @@ -414,6 +414,7 @@ class OpCode { public: enum class Id { KIL, + SSY, BFE_C, BFE_R, BFE_IMM, @@ -603,6 +604,7 @@ private: std::vector<Matcher> table = { #define INST(bitstring, op, type, name) Detail::GetMatcher(bitstring, op, type, name) INST("111000110011----", Id::KIL, Type::Flow, "KIL"), + INST("111000101001----", Id::SSY, Type::Flow, "SSY"), INST("111000100100----", Id::BRA, Type::Flow, "BRA"), INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"), INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 07a90f5ad..37fbb94da 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -1478,6 +1478,11 @@ private: regs.SetRegisterToInputAttibute(instr.gpr0, attribute.element, attribute.index); break; } + case OpCode::Id::SSY: { + // The SSY opcode tells the GPU where to re-converge divergent execution paths, we + // can ignore this when generating GLSL code. + break; + } default: { NGLOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName()); UNREACHABLE(); |