diff options
| author | 2018-07-05 12:54:19 -0400 | |
|---|---|---|
| committer | 2018-07-05 12:54:19 -0400 | |
| commit | 762bf6a52201901374fd3bf7c866490036920c78 (patch) | |
| tree | ebf04066d1f487b72a4521c67afd2c551111ba87 /src | |
| parent | Merge pull request #624 from Subv/f2f_round (diff) | |
| parent | GPU: Stub the shader SYNC and DEPBAR instructions. (diff) | |
| download | yuzu-762bf6a52201901374fd3bf7c866490036920c78.tar.gz yuzu-762bf6a52201901374fd3bf7c866490036920c78.tar.xz yuzu-762bf6a52201901374fd3bf7c866490036920c78.zip | |
Merge pull request #626 from Subv/shader_sync
GPU: Stub the shader SYNC and DEPBAR instructions.
Diffstat (limited to '')
| -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 da1aaeeee..3b70efeec 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h | |||
| @@ -451,6 +451,8 @@ public: | |||
| 451 | enum class Id { | 451 | enum class Id { |
| 452 | KIL, | 452 | KIL, |
| 453 | SSY, | 453 | SSY, |
| 454 | SYNC, | ||
| 455 | DEPBAR, | ||
| 454 | BFE_C, | 456 | BFE_C, |
| 455 | BFE_R, | 457 | BFE_R, |
| 456 | BFE_IMM, | 458 | BFE_IMM, |
| @@ -547,6 +549,7 @@ public: | |||
| 547 | Shift, | 549 | Shift, |
| 548 | Ffma, | 550 | Ffma, |
| 549 | Flow, | 551 | Flow, |
| 552 | Synch, | ||
| 550 | Memory, | 553 | Memory, |
| 551 | FloatSet, | 554 | FloatSet, |
| 552 | FloatSetPredicate, | 555 | FloatSetPredicate, |
| @@ -651,6 +654,8 @@ private: | |||
| 651 | INST("111000110011----", Id::KIL, Type::Flow, "KIL"), | 654 | INST("111000110011----", Id::KIL, Type::Flow, "KIL"), |
| 652 | INST("111000101001----", Id::SSY, Type::Flow, "SSY"), | 655 | INST("111000101001----", Id::SSY, Type::Flow, "SSY"), |
| 653 | INST("111000100100----", Id::BRA, Type::Flow, "BRA"), | 656 | INST("111000100100----", Id::BRA, Type::Flow, "BRA"), |
| 657 | INST("1111000011110---", Id::DEPBAR, Type::Synch, "DEPBAR"), | ||
| 658 | INST("1111000011111---", Id::SYNC, Type::Synch, "SYNC"), | ||
| 654 | INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"), | 659 | INST("1110111111011---", Id::LD_A, Type::Memory, "LD_A"), |
| 655 | INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), | 660 | INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), |
| 656 | INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"), | 661 | 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 03ac4fe9e..e817aca5a 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -1632,6 +1632,13 @@ private: | |||
| 1632 | // can ignore this when generating GLSL code. | 1632 | // can ignore this when generating GLSL code. |
| 1633 | break; | 1633 | break; |
| 1634 | } | 1634 | } |
| 1635 | case OpCode::Id::DEPBAR: | ||
| 1636 | case OpCode::Id::SYNC: { | ||
| 1637 | // TODO(Subv): Find out if we actually have to care about these instructions or if | ||
| 1638 | // the GLSL compiler takes care of that for us. | ||
| 1639 | LOG_WARNING(HW_GPU, "DEPBAR/SYNC instruction is stubbed"); | ||
| 1640 | break; | ||
| 1641 | } | ||
| 1635 | default: { | 1642 | default: { |
| 1636 | LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName()); | 1643 | LOG_CRITICAL(HW_GPU, "Unhandled instruction: {}", opcode->GetName()); |
| 1637 | UNREACHABLE(); | 1644 | UNREACHABLE(); |