Add changes for SPV_EXT_shader_atomic_float_add
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 3baa1f4..b14a3b2 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -6682,6 +6682,14 @@
case glslang::EOpImageAtomicAdd:
case glslang::EOpAtomicCounterAdd:
opCode = spv::OpAtomicIAdd;
+ if (typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble) {
+ opCode = spv::OpAtomicFAddEXT;
+ builder.addExtension(spv::E_SPV_EXT_shader_atomic_float_add);
+ if (typeProxy == glslang::EbtFloat)
+ builder.addCapability(spv::CapabilityAtomicFloat32AddEXT);
+ else
+ builder.addCapability(spv::CapabilityAtomicFloat64AddEXT);
+ }
break;
case glslang::EOpAtomicCounterSubtract:
opCode = spv::OpAtomicISub;