diff options
author | bunnei <bunneidev@gmail.com> | 2019-07-11 23:36:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-11 23:36:23 +0200 |
commit | bb67091c774611ce2be1aa461438be3989601e59 (patch) | |
tree | 58e29bd5d7114019a48a62ffadb8076d73627bee /src/video_core/renderer_vulkan | |
parent | Merge pull request #2717 from SciresM/unmirror_memory (diff) | |
parent | shader_ir: Add comments on missing instruction. (diff) | |
download | yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.gz yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.bz2 yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.lz yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.xz yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.zst yuzu-bb67091c774611ce2be1aa461438be3989601e59.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index 97ce214b1..1bb04607b 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp @@ -949,6 +949,14 @@ private: return {}; } + Id BranchIndirect(Operation operation) { + const Id op_a = VisitOperand<Type::Uint>(operation, 0); + + Emit(OpStore(jmp_to, op_a)); + BranchingOp([&]() { Emit(OpBranch(continue_label)); }); + return {}; + } + Id PushFlowStack(Operation operation) { const auto target = std::get_if<ImmediateNode>(&*operation[0]); ASSERT(target); @@ -1334,6 +1342,7 @@ private: &SPIRVDecompiler::ImageStore, &SPIRVDecompiler::Branch, + &SPIRVDecompiler::BranchIndirect, &SPIRVDecompiler::PushFlowStack, &SPIRVDecompiler::PopFlowStack, &SPIRVDecompiler::Exit, |