diff options
author | Lioncash <mathew1800@gmail.com> | 2019-10-24 03:26:07 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-10-24 05:00:31 +0200 |
commit | 1f5401c89c922a0ff5f6da131675fcdb5c73c5a5 (patch) | |
tree | af762d898b3b02c9f1cdd88a8e2743afc29090d5 /src/video_core/shader/decode/warp.cpp | |
parent | Merge pull request #3022 from DarkLordZach/azure-folder-rename (diff) | |
download | yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar.gz yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar.bz2 yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar.lz yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar.xz yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.tar.zst yuzu-1f5401c89c922a0ff5f6da131675fcdb5c73c5a5.zip |
Diffstat (limited to 'src/video_core/shader/decode/warp.cpp')
-rw-r--r-- | src/video_core/shader/decode/warp.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/shader/decode/warp.cpp b/src/video_core/shader/decode/warp.cpp index a8e481b3c..fa8a250cc 100644 --- a/src/video_core/shader/decode/warp.cpp +++ b/src/video_core/shader/decode/warp.cpp @@ -46,9 +46,10 @@ u32 ShaderIR::DecodeWarp(NodeBlock& bb, u32 pc) { break; } case OpCode::Id::SHFL: { - Node mask = instr.shfl.is_mask_imm ? Immediate(static_cast<u32>(instr.shfl.mask_imm)) - : GetRegister(instr.gpr39); - Node width = [&] { + Node width = [this, instr] { + Node mask = instr.shfl.is_mask_imm ? Immediate(static_cast<u32>(instr.shfl.mask_imm)) + : GetRegister(instr.gpr39); + // Convert the obscure SHFL mask back into GL_NV_shader_thread_shuffle's width. This has // been done reversing Nvidia's math. It won't work on all cases due to SHFL having // different parameters that don't properly map to GLSL's interface, but it should work |