shader: Manually convert from array<u32> to bitset instead of using bit_cast
This commit is contained in:
		| @@ -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; | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user