Merge pull request #189 from jekstrand/SPV_EXT_shader_atomic_float_min_max
Add header changes for SPV_EXT_shader_atomic_float_min_max
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 514965e..f3f585c 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -5189,6 +5189,36 @@
"version" : "None"
},
{
+ "opname" : "OpAtomicFMinEXT",
+ "class" : "Atomic",
+ "opcode" : 5614,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAtomicFMaxEXT",
+ "class" : "Atomic",
+ "opcode" : 5615,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" },
+ { "kind" : "IdScope", "name" : "'Memory'" },
+ { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+ { "kind" : "IdRef", "name" : "'Value'" }
+ ],
+ "capabilities" : [ "AtomicFloat16MinMaxEXT", "AtomicFloat32MinMaxEXT", "AtomicFloat64MinMaxEXT" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpDecorateString",
"class" : "Annotation",
"opcode" : 5632,
@@ -12063,6 +12093,24 @@
"version" : "None"
},
{
+ "enumerant" : "AtomicFloat32MinMaxEXT",
+ "value" : 5612,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat64MinMaxEXT",
+ "value" : 5613,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AtomicFloat16MinMaxEXT",
+ "value" : 5616,
+ "extensions" : [ "SPV_EXT_shader_atomic_float_min_max" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "VectorComputeINTEL",
"value" : 5617,
"capabilities" : [ "VectorAnyINTEL" ],
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 3a07e52..c83b731 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1014,6 +1014,9 @@
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
@@ -1106,14 +1109,16 @@
Horizontal4Pixels = 0x00000008,
}
- public enum FPDenormMode {
- Preserve = 0,
- FlushToZero = 1,
+ public enum FPDenormMode
+ {
+ Preserve = 0,
+ FlushToZero = 1,
}
- public enum FPOperationMode {
- IEEE = 0,
- ALT = 1,
+ public enum FPOperationMode
+ {
+ IEEE = 0,
+ ALT = 1,
}
public enum Op
@@ -1541,6 +1546,8 @@
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 41a650b..fbdc763 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1014,6 +1014,9 @@
SpvCapabilityFunctionPointersINTEL = 5603,
SpvCapabilityIndirectReferencesINTEL = 5604,
SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
+ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
+ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
SpvCapabilityVectorComputeINTEL = 5617,
SpvCapabilityVectorAnyINTEL = 5619,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
@@ -1106,15 +1109,15 @@
} SpvFragmentShadingRateMask;
typedef enum SpvFPDenormMode_ {
- SpvFPDenormModePreserve = 0,
- SpvFPDenormModeFlushToZero = 1,
- SpvFPDenormModeMax = 0x7fffffff,
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
} SpvFPDenormMode;
typedef enum SpvFPOperationMode_ {
- SpvFPOperationModeIEEE = 0,
- SpvFPOperationModeALT = 1,
- SpvFPOperationModeMax = 0x7fffffff,
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
} SpvFPOperationMode;
typedef enum SpvOp_ {
@@ -1541,6 +1544,8 @@
SpvOpAsmTargetINTEL = 5609,
SpvOpAsmINTEL = 5610,
SpvOpAsmCallINTEL = 5611,
+ SpvOpAtomicFMinEXT = 5614,
+ SpvOpAtomicFMaxEXT = 5615,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -2123,6 +2128,8 @@
case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index af629ef..19e28b8 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1010,6 +1010,9 @@
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
CapabilityVectorComputeINTEL = 5617,
CapabilityVectorAnyINTEL = 5619,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
@@ -1102,15 +1105,15 @@
};
enum FPDenormMode {
- FPDenormModePreserve = 0,
- FPDenormModeFlushToZero = 1,
- FPDenormModeMax = 0x7fffffff,
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
};
enum FPOperationMode {
- FPOperationModeIEEE = 0,
- FPOperationModeALT = 1,
- FPOperationModeMax = 0x7fffffff,
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
};
enum Op {
@@ -1537,6 +1540,8 @@
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -2119,6 +2124,8 @@
case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 58f3bf3..26ee33a 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1010,6 +1010,9 @@
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
@@ -1537,6 +1540,8 @@
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -2119,6 +2124,8 @@
case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index d1a56dd..d12eb68 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -997,6 +997,9 @@
"FunctionPointersINTEL": 5603,
"IndirectReferencesINTEL": 5604,
"AsmINTEL": 5606,
+ "AtomicFloat32MinMaxEXT": 5612,
+ "AtomicFloat64MinMaxEXT": 5613,
+ "AtomicFloat16MinMaxEXT": 5616,
"VectorComputeINTEL": 5617,
"VectorAnyINTEL": 5619,
"SubgroupAvcMotionEstimationINTEL": 5696,
@@ -1526,6 +1529,8 @@
"OpAsmTargetINTEL": 5609,
"OpAsmINTEL": 5610,
"OpAsmCallINTEL": 5611,
+ "OpAtomicFMinEXT": 5614,
+ "OpAtomicFMaxEXT": 5615,
"OpDecorateString": 5632,
"OpDecorateStringGOOGLE": 5632,
"OpMemberDecorateString": 5633,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 3193ff7..b9c8bc4 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -972,6 +972,9 @@
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
@@ -1491,6 +1494,8 @@
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 46d7182..0829dc1 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -972,6 +972,9 @@
'FunctionPointersINTEL' : 5603,
'IndirectReferencesINTEL' : 5604,
'AsmINTEL' : 5606,
+ 'AtomicFloat32MinMaxEXT' : 5612,
+ 'AtomicFloat64MinMaxEXT' : 5613,
+ 'AtomicFloat16MinMaxEXT' : 5616,
'VectorComputeINTEL' : 5617,
'VectorAnyINTEL' : 5619,
'SubgroupAvcMotionEstimationINTEL' : 5696,
@@ -1491,6 +1494,8 @@
'OpAsmTargetINTEL' : 5609,
'OpAsmINTEL' : 5610,
'OpAsmCallINTEL' : 5611,
+ 'OpAtomicFMinEXT' : 5614,
+ 'OpAtomicFMaxEXT' : 5615,
'OpDecorateString' : 5632,
'OpDecorateStringGOOGLE' : 5632,
'OpMemberDecorateString' : 5633,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 5d09343..e1db29b 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1017,6 +1017,9 @@
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
VectorComputeINTEL = 5617,
VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
@@ -1546,6 +1549,8 @@
OpAsmTargetINTEL = 5609,
OpAsmINTEL = 5610,
OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,