Explorar o código

spirv: Fix non-atomic 64-bit store

ameerj %!s(int64=5) %!d(string=hai) anos
pai
achega
6f4a1c8dcf
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp

+ 1 - 1
src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp

@@ -77,7 +77,7 @@ Id StorageAtomicU64(EmitContext& ctx, const IR::Value& binding, const IR::Value&
                                     binding, offset, sizeof(u32[2]))};
     const Id original_value{ctx.OpBitcast(ctx.U64, ctx.OpLoad(ctx.U32[2], pointer))};
     const Id result{(ctx.*non_atomic_func)(ctx.U64, value, original_value)};
-    ctx.OpStore(pointer, result);
+    ctx.OpStore(pointer, ctx.OpBitcast(ctx.U32[2], result));
     return original_value;
 }
 } // Anonymous namespace