spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics
Some drivers do not support 64-bit atomics, and fallback to atomically modifying U32x2 vectors. This change ensures that U32x2 storage vectors are defined in the spir-v shader when 64-bit atomics are used. Fixes a hang on some devices, notably Intel GPUs, when booting Pokemon Legends Arceus
This commit is contained in:
		| @@ -688,7 +688,7 @@ void VisitUsages(Info& info, IR::Inst& inst) { | ||||
|     case IR::Opcode::StorageAtomicAnd64: | ||||
|     case IR::Opcode::StorageAtomicOr64: | ||||
|     case IR::Opcode::StorageAtomicXor64: | ||||
|         info.used_storage_buffer_types |= IR::Type::U64; | ||||
|         info.used_storage_buffer_types |= IR::Type::U64 | IR::Type::U32x2; | ||||
|         info.uses_int64_bit_atomics = true; | ||||
|         break; | ||||
|     case IR::Opcode::BindlessImageAtomicIAdd32: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user