From 3482df1176203b4999353e8266f42032536b561c Mon Sep 17 00:00:00 2001
From: ameerj <52414509+ameerj@users.noreply.github.com>
Date: Tue, 25 May 2021 02:01:32 -0400
Subject: glsl: Simply FP storage atomics

---
 .../backend/glsl/emit_context.cpp                  | 28 +++++++++++-----------
 1 file changed, 14 insertions(+), 14 deletions(-)

(limited to 'src/shader_recompiler/backend/glsl/emit_context.cpp')

diff --git a/src/shader_recompiler/backend/glsl/emit_context.cpp b/src/shader_recompiler/backend/glsl/emit_context.cpp
index a413219e3d..9c3fd44ba0 100644
--- a/src/shader_recompiler/backend/glsl/emit_context.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_context.cpp
@@ -78,32 +78,32 @@ void EmitContext::DefineHelperFunctions() {
             "uint CasDecrement(uint op_a,uint op_b){return(op_a==0||op_a>op_b)?op_b:(op_a-1u);}\n";
     }
     if (info.uses_atomic_f32_add) {
-        code += "uint CasFloatAdd(uint op_a,uint op_b){return "
-                "floatBitsToUint(uintBitsToFloat(op_a)+uintBitsToFloat(op_b));}\n";
+        code += "uint CasFloatAdd(uint op_a,float op_b){return "
+                "floatBitsToUint(uintBitsToFloat(op_a)+op_b);}\n";
     }
     if (info.uses_atomic_f32x2_add) {
-        code += "uint CasFloatAdd32x2(uint op_a,uint op_b){return "
-                "packHalf2x16(unpackHalf2x16(op_a)+unpackHalf2x16(op_b));}\n";
+        code += "uint CasFloatAdd32x2(uint op_a,vec2 op_b){return "
+                "packHalf2x16(unpackHalf2x16(op_a)+op_b);}\n";
     }
     if (info.uses_atomic_f32x2_min) {
-        code += "uint CasFloatMin32x2(uint op_a,uint op_b){return "
-                "packHalf2x16(min(unpackHalf2x16(op_a),unpackHalf2x16(op_b)));}\n";
+        code += "uint CasFloatMin32x2(uint op_a,vec2 op_b){return "
+                "packHalf2x16(min(unpackHalf2x16(op_a),op_b));}\n";
     }
     if (info.uses_atomic_f32x2_max) {
-        code += "uint CasFloatMax32x2(uint op_a,uint op_b){return "
-                "packHalf2x16(max(unpackHalf2x16(op_a),unpackHalf2x16(op_b)));}\n";
+        code += "uint CasFloatMax32x2(uint op_a,vec2 op_b){return "
+                "packHalf2x16(max(unpackHalf2x16(op_a),op_b));}\n";
     }
     if (info.uses_atomic_f16x2_add) {
-        code += "uint CasFloatAdd16x2(uint op_a,uint op_b){return "
-                "packFloat2x16(unpackFloat2x16(op_a)+unpackFloat2x16(op_b));}\n";
+        code += "uint CasFloatAdd16x2(uint op_a,f16vec2 op_b){return "
+                "packFloat2x16(unpackFloat2x16(op_a)+op_b);}\n";
     }
     if (info.uses_atomic_f16x2_min) {
-        code += "uint CasFloatMin16x2(uint op_a,uint op_b){return "
-                "packFloat2x16(min(unpackFloat2x16(op_a),unpackFloat2x16(op_b)));}\n";
+        code += "uint CasFloatMin16x2(uint op_a,f16vec2 op_b){return "
+                "packFloat2x16(min(unpackFloat2x16(op_a),op_b));}\n";
     }
     if (info.uses_atomic_f16x2_max) {
-        code += "uint CasFloatMax16x2(uint op_a,uint op_b){return "
-                "packFloat2x16(max(unpackFloat2x16(op_a),unpackFloat2x16(op_b)));}\n";
+        code += "uint CasFloatMax16x2(uint op_a,f16vec2 op_b){return "
+                "packFloat2x16(max(unpackFloat2x16(op_a),op_b));}\n";
     }
     // TODO: Track this usage
     code += "uint CasMinS32(uint op_a,uint op_b){return uint(min(int(op_a),int(op_b)));}";
-- 
cgit v1.2.3-70-g09d2