summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-25 03:25:38 +0200
committerFernandoS27 <fsahmkow27@gmail.com>2019-07-09 14:14:37 +0200
commit8a6fc529a968e007f01464abadd32f9b5eb0a26c (patch)
tree189d2d4189d9e87d933eddab5260b472e6838588 /src/video_core/renderer_vulkan
parentshader_ir: Remove the old scanner. (diff)
downloadyuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar.gz
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar.bz2
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar.lz
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar.xz
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.tar.zst
yuzu-8a6fc529a968e007f01464abadd32f9b5eb0a26c.zip
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp9
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,