diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-07-11 01:10:38 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:40 -0400 |
commit | 2235a51b5d987cf8297211bb1778d75e6b794324 (patch) | |
tree | 41f8cf809753eecf774507069c1fbbc75b18af30 /src/shader_recompiler/frontend/maxwell/translate_program.cpp | |
parent | 8390286a89dd259f0ff44cc95fc20d017b58046f (diff) |
shader: Manually convert from array<u32> to bitset instead of using bit_cast
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate_program.cpp')
-rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate_program.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.cpp b/src/shader_recompiler/frontend/maxwell/translate_program.cpp index 2bb1d24a4a..83c77967d3 100644 --- a/src/shader_recompiler/frontend/maxwell/translate_program.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate_program.cpp @@ -3,7 +3,6 @@ // Refer to the license.txt file included. #include <algorithm> -#include <bit> #include <memory> #include <ranges> #include <vector> @@ -144,7 +143,9 @@ IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, ObjectPool<IR::Blo program.is_geometry_passthrough = sph.common0.geometry_passthrough != 0; if (program.is_geometry_passthrough) { const auto& mask{env.GpPassthroughMask()}; - program.info.passthrough.mask |= ~std::bit_cast<std::bitset<256>>(mask); + for (size_t i = 0; i < program.info.passthrough.mask.size(); ++i) { + program.info.passthrough.mask[i] = ((mask[i / 32] >> (i % 32)) & 1) == 0; + } } break; } |