summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar bunnei2019-07-11 17:36:23 -0400
committerGravatar GitHub2019-07-11 17:36:23 -0400
commitbb67091c774611ce2be1aa461438be3989601e59 (patch)
tree58e29bd5d7114019a48a62ffadb8076d73627bee /src/video_core/renderer_vulkan
parentMerge pull request #2717 from SciresM/unmirror_memory (diff)
parentshader_ir: Add comments on missing instruction. (diff)
downloadyuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.gz
yuzu-bb67091c774611ce2be1aa461438be3989601e59.tar.xz
yuzu-bb67091c774611ce2be1aa461438be3989601e59.zip
Merge pull request #2609 from FernandoS27/new-scan
Implement a New Shader Scanner, Decompile Flow Stack and implement BRX BRA.CC
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:
949 return {}; 949 return {};
950 } 950 }
951 951
952 Id BranchIndirect(Operation operation) {
953 const Id op_a = VisitOperand<Type::Uint>(operation, 0);
954
955 Emit(OpStore(jmp_to, op_a));
956 BranchingOp([&]() { Emit(OpBranch(continue_label)); });
957 return {};
958 }
959
952 Id PushFlowStack(Operation operation) { 960 Id PushFlowStack(Operation operation) {
953 const auto target = std::get_if<ImmediateNode>(&*operation[0]); 961 const auto target = std::get_if<ImmediateNode>(&*operation[0]);
954 ASSERT(target); 962 ASSERT(target);
@@ -1334,6 +1342,7 @@ private:
1334 &SPIRVDecompiler::ImageStore, 1342 &SPIRVDecompiler::ImageStore,
1335 1343
1336 &SPIRVDecompiler::Branch, 1344 &SPIRVDecompiler::Branch,
1345 &SPIRVDecompiler::BranchIndirect,
1337 &SPIRVDecompiler::PushFlowStack, 1346 &SPIRVDecompiler::PushFlowStack,
1338 &SPIRVDecompiler::PopFlowStack, 1347 &SPIRVDecompiler::PopFlowStack,
1339 &SPIRVDecompiler::Exit, 1348 &SPIRVDecompiler::Exit,