From 32e6727daecab60d368d14619c1e04d0d7e60008 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Fri, 15 May 2020 02:52:35 -0300 Subject: shader/other: Implement MEMBAR.CTS This silences an assertion we were hitting and uses workgroup memory barriers when the game requests it. --- src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/video_core/renderer_vulkan') diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index 890f34a2c..6f6dedd82 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp @@ -2215,8 +2215,8 @@ private: return {}; } - Expression MemoryBarrierGL(Operation) { - const auto scope = spv::Scope::Device; + template + Expression MemoryBarrier(Operation) { const auto semantics = spv::MemorySemanticsMask::AcquireRelease | spv::MemorySemanticsMask::UniformMemory | spv::MemorySemanticsMask::WorkgroupMemory | @@ -2681,7 +2681,8 @@ private: &SPIRVDecompiler::ShuffleIndexed, &SPIRVDecompiler::Barrier, - &SPIRVDecompiler::MemoryBarrierGL, + &SPIRVDecompiler::MemoryBarrier, + &SPIRVDecompiler::MemoryBarrier, }; static_assert(operation_decompilers.size() == static_cast(OperationCode::Amount)); -- cgit v1.2.3