shader: Manually convert from array<u32> to bitset instead of using bit_cast

This commit is contained in:
ReinUsesLisp 2021-07-11 01:10:38 -03:00 committed by ameerj
parent 8390286a89
commit 2235a51b5d

View file

@ -3,7 +3,6 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <algorithm> #include <algorithm>
#include <bit>
#include <memory> #include <memory>
#include <ranges> #include <ranges>
#include <vector> #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; program.is_geometry_passthrough = sph.common0.geometry_passthrough != 0;
if (program.is_geometry_passthrough) { if (program.is_geometry_passthrough) {
const auto& mask{env.GpPassthroughMask()}; 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; break;
} }