diff options
author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2019-10-24 05:45:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-24 05:45:23 +0200 |
commit | 5328d570df4da03a59261917d9e2ee93988665cd (patch) | |
tree | af762d898b3b02c9f1cdd88a8e2743afc29090d5 /src/video_core/shader/decode/warp.cpp | |
parent | Merge pull request #3022 from DarkLordZach/azure-folder-rename (diff) | |
parent | video_core/shader: Resolve instances of variable shadowing (diff) | |
download | yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar.gz yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar.bz2 yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar.lz yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar.xz yuzu-5328d570df4da03a59261917d9e2ee93988665cd.tar.zst yuzu-5328d570df4da03a59261917d9e2ee93988665cd.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 |