summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-06-09 06:42:53 +0200
committerGitHub <noreply@github.com>2018-06-09 06:42:53 +0200
commitd81aaa3ed343f93af800de4eb1312d1bbb38ea2e (patch)
treebc3a1acb3a45e1a2b68464502c9c7e146494e70d
parentMerge pull request #551 from bunnei/shr (diff)
parentGPU: Stub the SSY shader instruction. (diff)
downloadyuzu-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
Diffstat (limited to '')
-rw-r--r--src/video_core/engines/shader_bytecode.h2
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp5
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();