aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2021-02-27 05:49:54 +0000
committerandroid-build-prod (mdb) <android-build-team-robot@google.com>2021-02-27 05:49:54 +0000
commita134375f954f5d13b81ebd560c8ac58232d76876 (patch)
treef9565c68c86dfb487fa1fd28d42fad480be37d22
parent6ad3877f78ffad3c0204c28c4de4966b0f51db6e (diff)
parentd083077ce65e31a94ce7691cd3cc383756c4e751 (diff)
downloadspirv-headers-busytown-mac1010-release.tar.gz
Snap for 7174163 from d083077ce65e31a94ce7691cd3cc383756c4e751 to busytown-mac1010-releasebusytown-mac1010-release
Change-Id: Id8e0b9ddd8ba7904a040b9b960f1b5bef650e43f
-rw-r--r--include/spirv/spir-v.xml21
-rw-r--r--include/spirv/unified1/DebugInfo.h1
-rw-r--r--include/spirv/unified1/OpenCLDebugInfo100.h1
-rw-r--r--include/spirv/unified1/extinst.debuginfo.grammar.json4
-rw-r--r--include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json4
-rw-r--r--include/spirv/unified1/spirv.core.grammar.json634
-rw-r--r--include/spirv/unified1/spirv.cs85
-rw-r--r--include/spirv/unified1/spirv.h101
-rw-r--r--include/spirv/unified1/spirv.hpp101
-rw-r--r--include/spirv/unified1/spirv.hpp11101
-rw-r--r--include/spirv/unified1/spirv.json102
-rw-r--r--include/spirv/unified1/spirv.lua83
-rw-r--r--include/spirv/unified1/spirv.py83
-rw-r--r--include/spirv/unified1/spv.d85
-rw-r--r--tools/buildHeaders/jsonToSpirv.cpp41
-rw-r--r--tools/buildHeaders/jsonToSpirv.h4
16 files changed, 1414 insertions, 37 deletions
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index d1ebaab..f4c8add 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -185,6 +185,27 @@
<ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
+ <!-- SECTION: SPIR-V Function Control Bit Reservations -->
+ <!-- Reserve ranges of bits in the function control bitfield.
+
+ Each vendor determines the use of values in their own ranges.
+ Vendors are not required to disclose those uses. If the use of a
+ value is included in an extension that is adopted by a Khronos
+ extension or specification, then that value's use may be permanently
+ fixed as if originally reserved in a Khronos range.
+
+ The SPIR Working Group strongly recommends:
+ - Each value is used for only one purpose.
+ - All values in a range should be used before allocating a new range.
+ -->
+
+ <!-- Reserved function control bits -->
+ <ids type="FunctionControl" start="0" end="15" vendor="Khronos" comment="Reserved FunctionControl bits, not available to vendors - see the SPIR-V Specification"/>
+ <ids type="FunctionControl" start="16" end="16" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
+ <ids type="FunctionControl" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
+ <ids type="FunctionControl" start="31" end="31" vendor="Khronos" comment="Reserved FunctionControl bit, not available to vendors"/>
+
+
<!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
<!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
Each vendor determines the use of values in their own ranges.
diff --git a/include/spirv/unified1/DebugInfo.h b/include/spirv/unified1/DebugInfo.h
index c50a131..4657556 100644
--- a/include/spirv/unified1/DebugInfo.h
+++ b/include/spirv/unified1/DebugInfo.h
@@ -78,6 +78,7 @@ enum DebugInfoInstructions {
enum DebugInfoDebugInfoFlags {
+ DebugInfoNone = 0x0000,
DebugInfoFlagIsProtected = 0x01,
DebugInfoFlagIsPrivate = 0x02,
DebugInfoFlagIsPublic = 0x03,
diff --git a/include/spirv/unified1/OpenCLDebugInfo100.h b/include/spirv/unified1/OpenCLDebugInfo100.h
index 1149980..7285bd4 100644
--- a/include/spirv/unified1/OpenCLDebugInfo100.h
+++ b/include/spirv/unified1/OpenCLDebugInfo100.h
@@ -80,6 +80,7 @@ enum OpenCLDebugInfo100Instructions {
enum OpenCLDebugInfo100DebugInfoFlags {
+ OpenCLDebugInfo100None = 0x0000,
OpenCLDebugInfo100FlagIsProtected = 0x01,
OpenCLDebugInfo100FlagIsPrivate = 0x02,
OpenCLDebugInfo100FlagIsPublic = 0x03,
diff --git a/include/spirv/unified1/extinst.debuginfo.grammar.json b/include/spirv/unified1/extinst.debuginfo.grammar.json
index 9212f6f..7d6e8e5 100644
--- a/include/spirv/unified1/extinst.debuginfo.grammar.json
+++ b/include/spirv/unified1/extinst.debuginfo.grammar.json
@@ -377,6 +377,10 @@
"kind" : "DebugInfoFlags",
"enumerants" : [
{
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
"enumerant" : "FlagIsProtected",
"value" : "0x01"
},
diff --git a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
index 08062be..d4cfab2 100644
--- a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
+++ b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
@@ -403,6 +403,10 @@
"kind" : "DebugInfoFlags",
"enumerants" : [
{
+ "enumerant" : "None",
+ "value" : "0x0000"
+ },
+ {
"enumerant" : "FlagIsProtected",
"value" : "0x01"
},
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 44e7298..49f1bbc 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -5123,7 +5123,7 @@
"version" : "None"
},
{
- "opname" : "OpFunctionPointerINTEL",
+ "opname" : "OpConstFunctionPointerINTEL",
"class" : "@exclude",
"opcode" : 5600,
"operands" : [
@@ -5149,6 +5149,76 @@
"version" : "None"
},
{
+ "opname" : "OpAsmTargetINTEL",
+ "class" : "@exclude",
+ "opcode" : 5609,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "'Asm target'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmINTEL",
+ "class" : "@exclude",
+ "opcode" : 5610,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm type'" },
+ { "kind" : "IdRef", "name" : "'Target'" },
+ { "kind" : "LiteralString", "name" : "'Asm instructions'" },
+ { "kind" : "LiteralString", "name" : "'Constraints'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpAsmCallINTEL",
+ "class" : "@exclude",
+ "opcode" : 5611,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Asm'" },
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "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,
@@ -6712,6 +6782,39 @@
"version" : "None"
},
{
+ "opname" : "OpVariableLengthArrayINTEL",
+ "class" : "@exclude",
+ "opcode" : 5818,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Lenght'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSaveMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5819,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpRestoreMemoryINTEL",
+ "class" : "@exclude",
+ "opcode" : 5820,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'Ptr'" }
+ ],
+ "capabilities" : [ "VariableLengthArrayINTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpLoopControlINTEL",
"class" : "Reserved",
"opcode" : 5887,
@@ -6723,6 +6826,30 @@
"version" : "None"
},
{
+ "opname" : "OpPtrCastToCrossWorkgroupINTEL",
+ "class" : "@exclude",
+ "opcode" : 5934,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpCrossWorkgroupCastToPtrINTEL",
+ "class" : "@exclude",
+ "opcode" : 5938,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Pointer'" }
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
"opname" : "OpReadPipeBlockingINTEL",
"class" : "Pipe",
"opcode" : 5946,
@@ -7099,6 +7226,46 @@
"capabilities" : [ "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
"version" : "None"
+ },
+ {
+ "opname" : "OpTypeBufferSurfaceINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6086,
+ "operands" : [
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpTypeStructContinuedINTEL",
+ "class" : "Type-Declaration",
+ "opcode" : 6090,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6091,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSpecConstantCompositeContinuedINTEL",
+ "class" : "Constant-Creation",
+ "opcode" : 6092,
+ "operands" : [
+ { "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
+ ],
+ "capabilities" : [ "LongConstantCompositeINTEL" ],
+ "version" : "None"
}
],
"operand_kinds" : [
@@ -7279,6 +7446,18 @@
"enumerant" : "Fast",
"value" : "0x0010",
"capabilities" : [ "Kernel" ]
+ },
+ {
+ "enumerant" : "AllowContractFastINTEL",
+ "value" : "0x10000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "AllowReassocINTEL",
+ "value" : "0x20000",
+ "capabilities" : [ "FPFastMathModeINTEL" ],
+ "version" : "None"
}
]
},
@@ -7438,6 +7617,16 @@
"capabilities" : [ "FPGALoopControlsINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "NoFusionINTEL",
+ "value" : "0x800000",
+ "parameters" : [
+ { "kind" : "LiteralInteger" }
+ ],
+ "capabilities" : [ "FPGALoopControlsINTEL" ],
+ "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+ "version" : "None"
}
]
},
@@ -8365,6 +8554,51 @@
"version" : "None"
},
{
+ "enumerant" : "SharedLocalMemorySizeINTEL",
+ "value" : 5618,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Size'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTPINTEL",
+ "value" : 5620,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "RoundingModeRTNINTEL",
+ "value" : 5621,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeALTINTEL",
+ "value" : 5622,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeIEEEINTEL",
+ "value" : 5623,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" }
+ ],
+ "capabilities" : [ "RoundToInfinityINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "MaxWorkgroupSizeINTEL",
"value" : 5893,
"parameters" : [
@@ -8402,6 +8636,15 @@
"capabilities" : [ "FPGAKernelAttributesINTEL" ],
"extensions" : [ "SPV_INTEL_kernel_attributes" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "SchedulerTargetFmaxMhzINTEL",
+ "value" : 5903,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'target_fmax'" }
+ ],
+ "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+ "version" : "None"
}
]
},
@@ -8577,6 +8820,24 @@
"extensions" : [ "SPV_INTEL_function_pointers" ],
"capabilities" : [ "FunctionPointersINTEL" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "DeviceOnlyINTEL",
+ "value" : 5936,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "HostOnlyINTEL",
+ "value" : 5937,
+ "extensions" : [
+ "SPV_INTEL_usm_storage_classes"
+ ],
+ "capabilities" : [ "USMStorageClassesINTEL" ],
+ "version" : "None"
}
]
},
@@ -9103,6 +9364,42 @@
},
{
"category" : "ValueEnum",
+ "kind" : "FPDenormMode",
+ "enumerants" : [
+ {
+ "enumerant" : "Preserve",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FlushToZero",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
+ "kind" : "FPOperationMode",
+ "enumerants" : [
+ {
+ "enumerant" : "IEEE",
+ "value" : 0,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ALT",
+ "value" : 1,
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ }
+ ]
+ },
+ {
+ "category" : "ValueEnum",
"kind" : "LinkageType",
"enumerants" : [
{
@@ -9608,6 +9905,15 @@
"version" : "1.5"
},
{
+ "enumerant" : "SIMTCallINTEL",
+ "value" : 5599,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'N'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "ReferencedIndirectlyINTEL",
"value" : 5602,
"capabilities" : [ "IndirectReferencesINTEL" ],
@@ -9615,6 +9921,57 @@
"version" : "None"
},
{
+ "enumerant" : "ClobberINTEL",
+ "value" : 5607,
+ "parameters" : [
+ { "kind" : "LiteralString", "name" : "'Register'" }
+ ],
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SideEffectsINTEL",
+ "value" : 5608,
+ "capabilities" : [ "AsmINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeVariableINTEL",
+ "value" : 5624,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuncParamIOKindINTEL",
+ "value" : 5625,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Kind'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeFunctionINTEL",
+ "value" : 5626,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StackCallINTEL",
+ "value" : 5627,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "GlobalVariableOffsetINTEL",
+ "value" : 5628,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Offset'" }
+ ],
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "CounterBuffer",
"value" : 5634,
"parameters" : [
@@ -9658,6 +10015,26 @@
"version" : "None"
},
{
+ "enumerant" : "FunctionRoundingModeINTEL",
+ "value" : 5822,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPRoundingMode", "name" : "'FP Rounding Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionDenormModeINTEL",
+ "value" : 5823,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPDenormMode", "name" : "'FP Denorm Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "RegisterINTEL",
"value" : 5825,
"capabilities" : [ "FPGAMemoryAttributesINTEL" ],
@@ -9765,6 +10142,88 @@
"capabilities" : [ "FPGAMemoryAttributesINTEL" ],
"extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "BurstCoalesceINTEL",
+ "value" : 5899,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "CacheSizeINTEL",
+ "value" : 5900,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Cache Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "DontStaticallyCoalesceINTEL",
+ "value" : 5901,
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PrefetchINTEL",
+ "value" : 5902,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Prefetcher Size in bytes'" }
+ ],
+ "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "StallEnableINTEL",
+ "value" : 5905,
+ "capabilities" : [ "FPGAClusterAttributesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FuseLoopsInFunctionINTEL",
+ "value" : 5907,
+ "capabilities" : [ "LoopFuseINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "BufferLocationINTEL",
+ "value" : 5921,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Buffer Location ID'" }
+ ],
+ "capabilities" : [ "FPGABufferLocationINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipeStorageINTEL",
+ "value" : 5944,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'IO Pipe ID'" }
+ ],
+ "capabilities" : [ "IOPipesINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatingPointModeINTEL",
+ "value" : 6080,
+ "parameters" : [
+ { "kind" : "LiteralInteger", "name" : "'Target Width'" },
+ { "kind" : "FPOperationMode", "name" : "'FP Operation Mode'" }
+ ],
+ "capabilities" : [ "FunctionFloatControlINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "SingleElementVectorINTEL",
+ "value" : 6085,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorComputeCallableFunctionINTEL",
+ "value" : 6087,
+ "capabilities" : [ "VectorComputeINTEL" ],
+ "version" : "None"
}
]
},
@@ -9978,55 +10437,55 @@
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGeMask",
- "value" : 4417,
+ "enumerant" : "SubgroupEqMaskKHR",
+ "value" : 4416,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGtMask",
- "value" : 4418,
+ "enumerant" : "SubgroupGeMask",
+ "value" : 4417,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLeMask",
- "value" : 4419,
+ "enumerant" : "SubgroupGeMaskKHR",
+ "value" : 4417,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
+ "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLtMask",
- "value" : 4420,
+ "enumerant" : "SubgroupGtMask",
+ "value" : 4418,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupEqMaskKHR",
- "value" : 4416,
+ "enumerant" : "SubgroupGtMaskKHR",
+ "value" : 4418,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGeMaskKHR",
- "value" : 4417,
+ "enumerant" : "SubgroupLeMask",
+ "value" : 4419,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
- "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupGtMaskKHR",
- "value" : 4418,
+ "enumerant" : "SubgroupLeMaskKHR",
+ "value" : 4419,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
"extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
- "enumerant" : "SubgroupLeMaskKHR",
- "value" : 4419,
+ "enumerant" : "SubgroupLtMask",
+ "value" : 4420,
"capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
- "extensions" : [ "SPV_KHR_shader_ballot" ],
"version" : "1.3"
},
{
@@ -10982,6 +11441,27 @@
"version" : "1.3"
},
{
+ "enumerant" : "WorkgroupMemoryExplicitLayoutKHR",
+ "value" : 4428,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout8BitAccessKHR",
+ "value" : 4429,
+ "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR",
+ "value" : 4430,
+ "capabilities" : [ "Shader" ],
+ "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupVoteKHR",
"value" : 4431,
"extensions" : [ "SPV_KHR_subgroup_vote" ],
@@ -11576,6 +12056,18 @@
"version" : "None"
},
{
+ "enumerant" : "RoundToInfinityINTEL",
+ "value" : 5582,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FloatingPointModeINTEL",
+ "value" : 5583,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "IntegerFunctions2INTEL",
"value" : 5584,
"capabilities" : [ "Shader" ],
@@ -11595,6 +12087,43 @@
"version" : "None"
},
{
+ "enumerant" : "AsmINTEL",
+ "value" : 5606,
+ "extensions" : [ "SPV_INTEL_inline_assembly" ],
+ "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" ],
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "VectorAnyINTEL",
+ "value" : 5619,
+ "extensions" : [ "SPV_INTEL_vector_compute" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "SubgroupAvcMotionEstimationINTEL",
"value" : 5696,
"extensions" : [ "SPV_INTEL_device_side_avc_motion_estimation" ],
@@ -11613,12 +12142,37 @@
"version" : "None"
},
{
+ "enumerant" : "VariableLengthArrayINTEL",
+ "value" : 5817,
+ "extensions" : [ "SPV_INTEL_variable_length_array" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FunctionFloatControlINTEL",
+ "value" : 5821,
+ "extensions" : [ "SPV_INTEL_float_controls2" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "FPGAMemoryAttributesINTEL",
"value" : 5824,
"extensions" : [ "SPV_INTEL_fpga_memory_attributes" ],
"version" : "None"
},
{
+ "enumerant" : "FPFastMathModeINTEL",
+ "value" : 5837,
+ "capabilities" : [ "Kernel" ],
+ "extensions" : [ "SPV_INTEL_fp_fast_math_mode" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "ArbitraryPrecisionIntegersINTEL",
+ "value" : 5844,
+ "extensions" : [ "SPV_INTEL_arbitrary_precision_integers" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "UnstructuredLoopControlsINTEL",
"value" : 5886,
"extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
@@ -11643,6 +12197,42 @@
"version" : "None"
},
{
+ "enumerant" : "FPGAMemoryAccessesINTEL",
+ "value" : 5898,
+ "extensions" : [ "SPV_INTEL_fpga_memory_accesses" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGAClusterAttributesINTEL",
+ "value" : 5904,
+ "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "LoopFuseINTEL",
+ "value" : 5906,
+ "extensions" : [ "SPV_INTEL_loop_fuse" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "FPGABufferLocationINTEL",
+ "value" : 5920,
+ "extensions" : [ "SPV_INTEL_fpga_buffer_location" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "USMStorageClassesINTEL",
+ "value" : 5935,
+ "extensions" : [ "SPV_INTEL_usm_storage_classes" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "IOPipesINTEL",
+ "value" : 5943,
+ "extensions" : [ "SPV_INTEL_io_pipes" ],
+ "version" : "None"
+ },
+ {
"enumerant" : "BlockingPipesINTEL",
"value" : 5945,
"extensions" : [ "SPV_INTEL_blocking_pipes" ],
@@ -11667,6 +12257,12 @@
"capabilities" : [ "Shader" ],
"extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
"version" : "None"
+ },
+ {
+ "enumerant" : "LongConstantCompositeINTEL",
+ "value" : 6089,
+ "extensions" : [ "SPV_INTEL_long_constant_composite" ],
+ "version" : "None"
}
]
},
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index dd091b6..c83b731 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -164,10 +164,16 @@ namespace Spv
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
MaxWorkgroupSizeINTEL = 5893,
MaxWorkDimINTEL = 5894,
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
}
public enum StorageClass
@@ -200,6 +206,8 @@ namespace Spv
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
}
public enum Dim
@@ -371,6 +379,8 @@ namespace Spv
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
}
public enum FPFastMathModeMask
@@ -381,6 +391,8 @@ namespace Spv
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
}
public enum FPRoundingMode
@@ -482,12 +494,22 @@ namespace Spv
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
RegisterINTEL = 5825,
MemoryINTEL = 5826,
NumbanksINTEL = 5827,
@@ -500,6 +522,17 @@ namespace Spv
MergeINTEL = 5834,
BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
}
public enum BuiltIn
@@ -655,6 +688,7 @@ namespace Spv
LoopCoalesceINTEL = 20,
MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
}
public enum LoopControlMask
@@ -676,6 +710,7 @@ namespace Spv
LoopCoalesceINTEL = 0x00100000,
MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
}
public enum FunctionControlShift
@@ -880,6 +915,9 @@ namespace Spv
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -970,21 +1008,40 @@ namespace Spv
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
}
public enum RayFlagsShift
@@ -1052,6 +1109,18 @@ namespace Spv
Horizontal4Pixels = 0x00000008,
}
+ public enum FPDenormMode
+ {
+ Preserve = 0,
+ FlushToZero = 1,
+ }
+
+ public enum FPOperationMode
+ {
+ IEEE = 0,
+ ALT = 1,
+ }
+
public enum Op
{
OpNop = 0,
@@ -1472,8 +1541,13 @@ namespace Spv
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1596,7 +1670,12 @@ namespace Spv
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1618,6 +1697,10 @@ namespace Spv
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
}
}
}
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 949f198..fbdc763 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -172,10 +172,16 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ SpvExecutionModeRoundingModeRTPINTEL = 5620,
+ SpvExecutionModeRoundingModeRTNINTEL = 5621,
+ SpvExecutionModeFloatingPointModeALTINTEL = 5622,
+ SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
SpvExecutionModeMaxWorkDimINTEL = 5894,
SpvExecutionModeNoGlobalOffsetINTEL = 5895,
SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;
@@ -208,6 +214,8 @@ typedef enum SpvStorageClass_ {
SpvStorageClassPhysicalStorageBuffer = 5349,
SpvStorageClassPhysicalStorageBufferEXT = 5349,
SpvStorageClassCodeSectionINTEL = 5605,
+ SpvStorageClassDeviceOnlyINTEL = 5936,
+ SpvStorageClassHostOnlyINTEL = 5937,
SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;
@@ -378,6 +386,8 @@ typedef enum SpvFPFastMathModeShift_ {
SpvFPFastMathModeNSZShift = 2,
SpvFPFastMathModeAllowRecipShift = 3,
SpvFPFastMathModeFastShift = 4,
+ SpvFPFastMathModeAllowContractFastINTELShift = 16,
+ SpvFPFastMathModeAllowReassocINTELShift = 17,
SpvFPFastMathModeMax = 0x7fffffff,
} SpvFPFastMathModeShift;
@@ -388,6 +398,8 @@ typedef enum SpvFPFastMathModeMask_ {
SpvFPFastMathModeNSZMask = 0x00000004,
SpvFPFastMathModeAllowRecipMask = 0x00000008,
SpvFPFastMathModeFastMask = 0x00000010,
+ SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
} SpvFPFastMathModeMask;
typedef enum SpvFPRoundingMode_ {
@@ -488,12 +500,22 @@ typedef enum SpvDecoration_ {
SpvDecorationRestrictPointerEXT = 5355,
SpvDecorationAliasedPointer = 5356,
SpvDecorationAliasedPointerEXT = 5356,
+ SpvDecorationSIMTCallINTEL = 5599,
SpvDecorationReferencedIndirectlyINTEL = 5602,
+ SpvDecorationClobberINTEL = 5607,
+ SpvDecorationSideEffectsINTEL = 5608,
+ SpvDecorationVectorComputeVariableINTEL = 5624,
+ SpvDecorationFuncParamIOKindINTEL = 5625,
+ SpvDecorationVectorComputeFunctionINTEL = 5626,
+ SpvDecorationStackCallINTEL = 5627,
+ SpvDecorationGlobalVariableOffsetINTEL = 5628,
SpvDecorationCounterBuffer = 5634,
SpvDecorationHlslCounterBufferGOOGLE = 5634,
SpvDecorationHlslSemanticGOOGLE = 5635,
SpvDecorationUserSemantic = 5635,
SpvDecorationUserTypeGOOGLE = 5636,
+ SpvDecorationFunctionRoundingModeINTEL = 5822,
+ SpvDecorationFunctionDenormModeINTEL = 5823,
SpvDecorationRegisterINTEL = 5825,
SpvDecorationMemoryINTEL = 5826,
SpvDecorationNumbanksINTEL = 5827,
@@ -506,6 +528,17 @@ typedef enum SpvDecoration_ {
SpvDecorationMergeINTEL = 5834,
SpvDecorationBankBitsINTEL = 5835,
SpvDecorationForcePow2DepthINTEL = 5836,
+ SpvDecorationBurstCoalesceINTEL = 5899,
+ SpvDecorationCacheSizeINTEL = 5900,
+ SpvDecorationDontStaticallyCoalesceINTEL = 5901,
+ SpvDecorationPrefetchINTEL = 5902,
+ SpvDecorationStallEnableINTEL = 5905,
+ SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+ SpvDecorationBufferLocationINTEL = 5921,
+ SpvDecorationIOPipeStorageINTEL = 5944,
+ SpvDecorationFunctionFloatingPointModeINTEL = 6080,
+ SpvDecorationSingleElementVectorINTEL = 6085,
+ SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
SpvDecorationMax = 0x7fffffff,
} SpvDecoration;
@@ -660,6 +693,7 @@ typedef enum SpvLoopControlShift_ {
SpvLoopControlLoopCoalesceINTELShift = 20,
SpvLoopControlMaxInterleavingINTELShift = 21,
SpvLoopControlSpeculatedIterationsINTELShift = 22,
+ SpvLoopControlNoFusionINTELShift = 23,
SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;
@@ -681,6 +715,7 @@ typedef enum SpvLoopControlMask_ {
SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ SpvLoopControlNoFusionINTELMask = 0x00800000,
} SpvLoopControlMask;
typedef enum SpvFunctionControlShift_ {
@@ -880,6 +915,9 @@ typedef enum SpvCapability_ {
SpvCapabilityFragmentShadingRateKHR = 4422,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
+ SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SpvCapabilitySubgroupVoteKHR = 4431,
SpvCapabilityStorageBuffer16BitAccess = 4433,
SpvCapabilityStorageUniformBufferBlock16 = 4433,
@@ -970,21 +1008,40 @@ typedef enum SpvCapability_ {
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ SpvCapabilityRoundToInfinityINTEL = 5582,
+ SpvCapabilityFloatingPointModeINTEL = 5583,
SpvCapabilityIntegerFunctions2INTEL = 5584,
SpvCapabilityFunctionPointersINTEL = 5603,
SpvCapabilityIndirectReferencesINTEL = 5604,
+ SpvCapabilityAsmINTEL = 5606,
+ SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
+ SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
+ SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
+ SpvCapabilityVectorComputeINTEL = 5617,
+ SpvCapabilityVectorAnyINTEL = 5619,
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ SpvCapabilityVariableLengthArrayINTEL = 5817,
+ SpvCapabilityFunctionFloatControlINTEL = 5821,
SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
+ SpvCapabilityFPFastMathModeINTEL = 5837,
+ SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
SpvCapabilityFPGALoopControlsINTEL = 5888,
SpvCapabilityKernelAttributesINTEL = 5892,
SpvCapabilityFPGAKernelAttributesINTEL = 5897,
+ SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
+ SpvCapabilityFPGAClusterAttributesINTEL = 5904,
+ SpvCapabilityLoopFuseINTEL = 5906,
+ SpvCapabilityFPGABufferLocationINTEL = 5920,
+ SpvCapabilityUSMStorageClassesINTEL = 5935,
+ SpvCapabilityIOPipesINTEL = 5943,
SpvCapabilityBlockingPipesINTEL = 5945,
SpvCapabilityFPGARegINTEL = 5948,
SpvCapabilityAtomicFloat32AddEXT = 6033,
SpvCapabilityAtomicFloat64AddEXT = 6034,
+ SpvCapabilityLongConstantCompositeINTEL = 6089,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -1051,6 +1108,18 @@ typedef enum SpvFragmentShadingRateMask_ {
SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
} SpvFragmentShadingRateMask;
+typedef enum SpvFPDenormMode_ {
+ SpvFPDenormModePreserve = 0,
+ SpvFPDenormModeFlushToZero = 1,
+ SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+ SpvFPOperationModeIEEE = 0,
+ SpvFPOperationModeALT = 1,
+ SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
typedef enum SpvOp_ {
SpvOpNop = 0,
SpvOpUndef = 1,
@@ -1470,8 +1539,13 @@ typedef enum SpvOp_ {
SpvOpUSubSatINTEL = 5596,
SpvOpIMul32x16INTEL = 5597,
SpvOpUMul32x16INTEL = 5598,
- SpvOpFunctionPointerINTEL = 5600,
+ SpvOpConstFunctionPointerINTEL = 5600,
SpvOpFunctionPointerCallINTEL = 5601,
+ SpvOpAsmTargetINTEL = 5609,
+ SpvOpAsmINTEL = 5610,
+ SpvOpAsmCallINTEL = 5611,
+ SpvOpAtomicFMinEXT = 5614,
+ SpvOpAtomicFMaxEXT = 5615,
SpvOpDecorateString = 5632,
SpvOpDecorateStringGOOGLE = 5632,
SpvOpMemberDecorateString = 5633,
@@ -1594,7 +1668,12 @@ typedef enum SpvOp_ {
SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ SpvOpVariableLengthArrayINTEL = 5818,
+ SpvOpSaveMemoryINTEL = 5819,
+ SpvOpRestoreMemoryINTEL = 5820,
SpvOpLoopControlINTEL = 5887,
+ SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
+ SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
SpvOpReadPipeBlockingINTEL = 5946,
SpvOpWritePipeBlockingINTEL = 5947,
SpvOpFPGARegINTEL = 5949,
@@ -1616,6 +1695,10 @@ typedef enum SpvOp_ {
SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
SpvOpAtomicFAddEXT = 6035,
+ SpvOpTypeBufferSurfaceINTEL = 6086,
+ SpvOpTypeStructContinuedINTEL = 6090,
+ SpvOpConstantCompositeContinuedINTEL = 6091,
+ SpvOpSpecConstantCompositeContinuedINTEL = 6092,
SpvOpMax = 0x7fffffff,
} SpvOp;
@@ -2040,8 +2123,13 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case SpvOpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
@@ -2162,7 +2250,12 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2184,6 +2277,10 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 43dd2aa..19e28b8 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -168,10 +168,16 @@ enum ExecutionMode {
ExecutionModeSampleInterlockUnorderedEXT = 5369,
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
+ ExecutionModeRoundingModeRTPINTEL = 5620,
+ ExecutionModeRoundingModeRTNINTEL = 5621,
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
ExecutionModeMaxWorkgroupSizeINTEL = 5893,
ExecutionModeMaxWorkDimINTEL = 5894,
ExecutionModeNoGlobalOffsetINTEL = 5895,
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
ExecutionModeMax = 0x7fffffff,
};
@@ -204,6 +210,8 @@ enum StorageClass {
StorageClassPhysicalStorageBuffer = 5349,
StorageClassPhysicalStorageBufferEXT = 5349,
StorageClassCodeSectionINTEL = 5605,
+ StorageClassDeviceOnlyINTEL = 5936,
+ StorageClassHostOnlyINTEL = 5937,
StorageClassMax = 0x7fffffff,
};
@@ -374,6 +382,8 @@ enum FPFastMathModeShift {
FPFastMathModeNSZShift = 2,
FPFastMathModeAllowRecipShift = 3,
FPFastMathModeFastShift = 4,
+ FPFastMathModeAllowContractFastINTELShift = 16,
+ FPFastMathModeAllowReassocINTELShift = 17,
FPFastMathModeMax = 0x7fffffff,
};
@@ -384,6 +394,8 @@ enum FPFastMathModeMask {
FPFastMathModeNSZMask = 0x00000004,
FPFastMathModeAllowRecipMask = 0x00000008,
FPFastMathModeFastMask = 0x00000010,
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
};
enum FPRoundingMode {
@@ -484,12 +496,22 @@ enum Decoration {
DecorationRestrictPointerEXT = 5355,
DecorationAliasedPointer = 5356,
DecorationAliasedPointerEXT = 5356,
+ DecorationSIMTCallINTEL = 5599,
DecorationReferencedIndirectlyINTEL = 5602,
+ DecorationClobberINTEL = 5607,
+ DecorationSideEffectsINTEL = 5608,
+ DecorationVectorComputeVariableINTEL = 5624,
+ DecorationFuncParamIOKindINTEL = 5625,
+ DecorationVectorComputeFunctionINTEL = 5626,
+ DecorationStackCallINTEL = 5627,
+ DecorationGlobalVariableOffsetINTEL = 5628,
DecorationCounterBuffer = 5634,
DecorationHlslCounterBufferGOOGLE = 5634,
DecorationHlslSemanticGOOGLE = 5635,
DecorationUserSemantic = 5635,
DecorationUserTypeGOOGLE = 5636,
+ DecorationFunctionRoundingModeINTEL = 5822,
+ DecorationFunctionDenormModeINTEL = 5823,
DecorationRegisterINTEL = 5825,
DecorationMemoryINTEL = 5826,
DecorationNumbanksINTEL = 5827,
@@ -502,6 +524,17 @@ enum Decoration {
DecorationMergeINTEL = 5834,
DecorationBankBitsINTEL = 5835,
DecorationForcePow2DepthINTEL = 5836,
+ DecorationBurstCoalesceINTEL = 5899,
+ DecorationCacheSizeINTEL = 5900,
+ DecorationDontStaticallyCoalesceINTEL = 5901,
+ DecorationPrefetchINTEL = 5902,
+ DecorationStallEnableINTEL = 5905,
+ DecorationFuseLoopsInFunctionINTEL = 5907,
+ DecorationBufferLocationINTEL = 5921,
+ DecorationIOPipeStorageINTEL = 5944,
+ DecorationFunctionFloatingPointModeINTEL = 6080,
+ DecorationSingleElementVectorINTEL = 6085,
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
DecorationMax = 0x7fffffff,
};
@@ -656,6 +689,7 @@ enum LoopControlShift {
LoopControlLoopCoalesceINTELShift = 20,
LoopControlMaxInterleavingINTELShift = 21,
LoopControlSpeculatedIterationsINTELShift = 22,
+ LoopControlNoFusionINTELShift = 23,
LoopControlMax = 0x7fffffff,
};
@@ -677,6 +711,7 @@ enum LoopControlMask {
LoopControlLoopCoalesceINTELMask = 0x00100000,
LoopControlMaxInterleavingINTELMask = 0x00200000,
LoopControlSpeculatedIterationsINTELMask = 0x00400000,
+ LoopControlNoFusionINTELMask = 0x00800000,
};
enum FunctionControlShift {
@@ -876,6 +911,9 @@ enum Capability {
CapabilityFragmentShadingRateKHR = 4422,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
CapabilitySubgroupVoteKHR = 4431,
CapabilityStorageBuffer16BitAccess = 4433,
CapabilityStorageUniformBufferBlock16 = 4433,
@@ -966,21 +1004,40 @@ enum Capability {
CapabilitySubgroupBufferBlockIOINTEL = 5569,
CapabilitySubgroupImageBlockIOINTEL = 5570,
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
+ CapabilityRoundToInfinityINTEL = 5582,
+ CapabilityFloatingPointModeINTEL = 5583,
CapabilityIntegerFunctions2INTEL = 5584,
CapabilityFunctionPointersINTEL = 5603,
CapabilityIndirectReferencesINTEL = 5604,
+ CapabilityAsmINTEL = 5606,
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
+ CapabilityVectorComputeINTEL = 5617,
+ CapabilityVectorAnyINTEL = 5619,
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
+ CapabilityVariableLengthArrayINTEL = 5817,
+ CapabilityFunctionFloatControlINTEL = 5821,
CapabilityFPGAMemoryAttributesINTEL = 5824,
+ CapabilityFPFastMathModeINTEL = 5837,
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
CapabilityUnstructuredLoopControlsINTEL = 5886,
CapabilityFPGALoopControlsINTEL = 5888,
CapabilityKernelAttributesINTEL = 5892,
CapabilityFPGAKernelAttributesINTEL = 5897,
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
+ CapabilityFPGAClusterAttributesINTEL = 5904,
+ CapabilityLoopFuseINTEL = 5906,
+ CapabilityFPGABufferLocationINTEL = 5920,
+ CapabilityUSMStorageClassesINTEL = 5935,
+ CapabilityIOPipesINTEL = 5943,
CapabilityBlockingPipesINTEL = 5945,
CapabilityFPGARegINTEL = 5948,
CapabilityAtomicFloat32AddEXT = 6033,
CapabilityAtomicFloat64AddEXT = 6034,
+ CapabilityLongConstantCompositeINTEL = 6089,
CapabilityMax = 0x7fffffff,
};
@@ -1047,6 +1104,18 @@ enum FragmentShadingRateMask {
FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
};
+enum FPDenormMode {
+ FPDenormModePreserve = 0,
+ FPDenormModeFlushToZero = 1,
+ FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+ FPOperationModeIEEE = 0,
+ FPOperationModeALT = 1,
+ FPOperationModeMax = 0x7fffffff,
+};
+
enum Op {
OpNop = 0,
OpUndef = 1,
@@ -1466,8 +1535,13 @@ enum Op {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1590,7 +1664,12 @@ enum Op {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1612,6 +1691,10 @@ enum Op {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
OpMax = 0x7fffffff,
};
@@ -2036,8 +2119,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
@@ -2158,7 +2246,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2180,6 +2273,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 27a998e..26ee33a 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -168,10 +168,16 @@ enum class ExecutionMode : unsigned {
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
MaxWorkgroupSizeINTEL = 5893,
MaxWorkDimINTEL = 5894,
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
Max = 0x7fffffff,
};
@@ -204,6 +210,8 @@ enum class StorageClass : unsigned {
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
Max = 0x7fffffff,
};
@@ -374,6 +382,8 @@ enum class FPFastMathModeShift : unsigned {
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
Max = 0x7fffffff,
};
@@ -384,6 +394,8 @@ enum class FPFastMathModeMask : unsigned {
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
};
enum class FPRoundingMode : unsigned {
@@ -484,12 +496,22 @@ enum class Decoration : unsigned {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
RegisterINTEL = 5825,
MemoryINTEL = 5826,
NumbanksINTEL = 5827,
@@ -502,6 +524,17 @@ enum class Decoration : unsigned {
MergeINTEL = 5834,
BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
Max = 0x7fffffff,
};
@@ -656,6 +689,7 @@ enum class LoopControlShift : unsigned {
LoopCoalesceINTEL = 20,
MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
Max = 0x7fffffff,
};
@@ -677,6 +711,7 @@ enum class LoopControlMask : unsigned {
LoopCoalesceINTEL = 0x00100000,
MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
};
enum class FunctionControlShift : unsigned {
@@ -876,6 +911,9 @@ enum class Capability : unsigned {
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -966,21 +1004,40 @@ enum class Capability : unsigned {
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
Max = 0x7fffffff,
};
@@ -1047,6 +1104,18 @@ enum class FragmentShadingRateMask : unsigned {
Horizontal4Pixels = 0x00000008,
};
+enum class FPDenormMode : unsigned {
+ Preserve = 0,
+ FlushToZero = 1,
+ Max = 0x7fffffff,
+};
+
+enum class FPOperationMode : unsigned {
+ IEEE = 0,
+ ALT = 1,
+ Max = 0x7fffffff,
+};
+
enum class Op : unsigned {
OpNop = 0,
OpUndef = 1,
@@ -1466,8 +1535,13 @@ enum class Op : unsigned {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1590,7 +1664,12 @@ enum class Op : unsigned {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1612,6 +1691,10 @@ enum class Op : unsigned {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
Max = 0x7fffffff,
};
@@ -2036,8 +2119,13 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
- case Op::OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
+ 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;
@@ -2158,7 +2246,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
+ case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2180,6 +2273,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
+ case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
+ case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+ case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
}
}
#endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 98f9fba..d12eb68 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -187,10 +187,16 @@
"SampleInterlockUnorderedEXT": 5369,
"ShadingRateInterlockOrderedEXT": 5370,
"ShadingRateInterlockUnorderedEXT": 5371,
+ "SharedLocalMemorySizeINTEL": 5618,
+ "RoundingModeRTPINTEL": 5620,
+ "RoundingModeRTNINTEL": 5621,
+ "FloatingPointModeALTINTEL": 5622,
+ "FloatingPointModeIEEEINTEL": 5623,
"MaxWorkgroupSizeINTEL": 5893,
"MaxWorkDimINTEL": 5894,
"NoGlobalOffsetINTEL": 5895,
- "NumSIMDWorkitemsINTEL": 5896
+ "NumSIMDWorkitemsINTEL": 5896,
+ "SchedulerTargetFmaxMhzINTEL": 5903
}
},
{
@@ -225,7 +231,9 @@
"ShaderRecordBufferNV": 5343,
"PhysicalStorageBuffer": 5349,
"PhysicalStorageBufferEXT": 5349,
- "CodeSectionINTEL": 5605
+ "CodeSectionINTEL": 5605,
+ "DeviceOnlyINTEL": 5936,
+ "HostOnlyINTEL": 5937
}
},
{
@@ -397,7 +405,9 @@
"NotInf": 1,
"NSZ": 2,
"AllowRecip": 3,
- "Fast": 4
+ "Fast": 4,
+ "AllowContractFastINTEL": 16,
+ "AllowReassocINTEL": 17
}
},
{
@@ -514,12 +524,22 @@
"RestrictPointerEXT": 5355,
"AliasedPointer": 5356,
"AliasedPointerEXT": 5356,
+ "SIMTCallINTEL": 5599,
"ReferencedIndirectlyINTEL": 5602,
+ "ClobberINTEL": 5607,
+ "SideEffectsINTEL": 5608,
+ "VectorComputeVariableINTEL": 5624,
+ "FuncParamIOKindINTEL": 5625,
+ "VectorComputeFunctionINTEL": 5626,
+ "StackCallINTEL": 5627,
+ "GlobalVariableOffsetINTEL": 5628,
"CounterBuffer": 5634,
"HlslCounterBufferGOOGLE": 5634,
"HlslSemanticGOOGLE": 5635,
"UserSemantic": 5635,
"UserTypeGOOGLE": 5636,
+ "FunctionRoundingModeINTEL": 5822,
+ "FunctionDenormModeINTEL": 5823,
"RegisterINTEL": 5825,
"MemoryINTEL": 5826,
"NumbanksINTEL": 5827,
@@ -531,7 +551,18 @@
"SimpleDualPortINTEL": 5833,
"MergeINTEL": 5834,
"BankBitsINTEL": 5835,
- "ForcePow2DepthINTEL": 5836
+ "ForcePow2DepthINTEL": 5836,
+ "BurstCoalesceINTEL": 5899,
+ "CacheSizeINTEL": 5900,
+ "DontStaticallyCoalesceINTEL": 5901,
+ "PrefetchINTEL": 5902,
+ "StallEnableINTEL": 5905,
+ "FuseLoopsInFunctionINTEL": 5907,
+ "BufferLocationINTEL": 5921,
+ "IOPipeStorageINTEL": 5944,
+ "FunctionFloatingPointModeINTEL": 6080,
+ "SingleElementVectorINTEL": 6085,
+ "VectorComputeCallableFunctionINTEL": 6087
}
},
{
@@ -688,7 +719,8 @@
"PipelineEnableINTEL": 19,
"LoopCoalesceINTEL": 20,
"MaxInterleavingINTEL": 21,
- "SpeculatedIterationsINTEL": 22
+ "SpeculatedIterationsINTEL": 22,
+ "NoFusionINTEL": 23
}
},
{
@@ -866,6 +898,9 @@
"FragmentShadingRateKHR": 4422,
"SubgroupBallotKHR": 4423,
"DrawParameters": 4427,
+ "WorkgroupMemoryExplicitLayoutKHR": 4428,
+ "WorkgroupMemoryExplicitLayout8BitAccessKHR": 4429,
+ "WorkgroupMemoryExplicitLayout16BitAccessKHR": 4430,
"SubgroupVoteKHR": 4431,
"StorageBuffer16BitAccess": 4433,
"StorageUniformBufferBlock16": 4433,
@@ -956,21 +991,40 @@
"SubgroupBufferBlockIOINTEL": 5569,
"SubgroupImageBlockIOINTEL": 5570,
"SubgroupImageMediaBlockIOINTEL": 5579,
+ "RoundToInfinityINTEL": 5582,
+ "FloatingPointModeINTEL": 5583,
"IntegerFunctions2INTEL": 5584,
"FunctionPointersINTEL": 5603,
"IndirectReferencesINTEL": 5604,
+ "AsmINTEL": 5606,
+ "AtomicFloat32MinMaxEXT": 5612,
+ "AtomicFloat64MinMaxEXT": 5613,
+ "AtomicFloat16MinMaxEXT": 5616,
+ "VectorComputeINTEL": 5617,
+ "VectorAnyINTEL": 5619,
"SubgroupAvcMotionEstimationINTEL": 5696,
"SubgroupAvcMotionEstimationIntraINTEL": 5697,
"SubgroupAvcMotionEstimationChromaINTEL": 5698,
+ "VariableLengthArrayINTEL": 5817,
+ "FunctionFloatControlINTEL": 5821,
"FPGAMemoryAttributesINTEL": 5824,
+ "FPFastMathModeINTEL": 5837,
+ "ArbitraryPrecisionIntegersINTEL": 5844,
"UnstructuredLoopControlsINTEL": 5886,
"FPGALoopControlsINTEL": 5888,
"KernelAttributesINTEL": 5892,
"FPGAKernelAttributesINTEL": 5897,
+ "FPGAMemoryAccessesINTEL": 5898,
+ "FPGAClusterAttributesINTEL": 5904,
+ "LoopFuseINTEL": 5906,
+ "FPGABufferLocationINTEL": 5920,
+ "USMStorageClassesINTEL": 5935,
+ "IOPipesINTEL": 5943,
"BlockingPipesINTEL": 5945,
"FPGARegINTEL": 5948,
"AtomicFloat32AddEXT": 6033,
- "AtomicFloat64AddEXT": 6034
+ "AtomicFloat64AddEXT": 6034,
+ "LongConstantCompositeINTEL": 6089
}
},
{
@@ -1030,6 +1084,24 @@
}
},
{
+ "Name": "FPDenormMode",
+ "Type": "Value",
+ "Values":
+ {
+ "Preserve": 0,
+ "FlushToZero": 1
+ }
+ },
+ {
+ "Name": "FPOperationMode",
+ "Type": "Value",
+ "Values":
+ {
+ "IEEE": 0,
+ "ALT": 1
+ }
+ },
+ {
"Name": "Op",
"Type": "Value",
"Values":
@@ -1452,8 +1524,13 @@
"OpUSubSatINTEL": 5596,
"OpIMul32x16INTEL": 5597,
"OpUMul32x16INTEL": 5598,
- "OpFunctionPointerINTEL": 5600,
+ "OpConstFunctionPointerINTEL": 5600,
"OpFunctionPointerCallINTEL": 5601,
+ "OpAsmTargetINTEL": 5609,
+ "OpAsmINTEL": 5610,
+ "OpAsmCallINTEL": 5611,
+ "OpAtomicFMinEXT": 5614,
+ "OpAtomicFMaxEXT": 5615,
"OpDecorateString": 5632,
"OpDecorateStringGOOGLE": 5632,
"OpMemberDecorateString": 5633,
@@ -1576,7 +1653,12 @@
"OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL": 5814,
"OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL": 5815,
"OpSubgroupAvcSicGetInterRawSadsINTEL": 5816,
+ "OpVariableLengthArrayINTEL": 5818,
+ "OpSaveMemoryINTEL": 5819,
+ "OpRestoreMemoryINTEL": 5820,
"OpLoopControlINTEL": 5887,
+ "OpPtrCastToCrossWorkgroupINTEL": 5934,
+ "OpCrossWorkgroupCastToPtrINTEL": 5938,
"OpReadPipeBlockingINTEL": 5946,
"OpWritePipeBlockingINTEL": 5947,
"OpFPGARegINTEL": 5949,
@@ -1597,7 +1679,11 @@
"OpRayQueryGetWorldRayOriginKHR": 6030,
"OpRayQueryGetIntersectionObjectToWorldKHR": 6031,
"OpRayQueryGetIntersectionWorldToObjectKHR": 6032,
- "OpAtomicFAddEXT": 6035
+ "OpAtomicFAddEXT": 6035,
+ "OpTypeBufferSurfaceINTEL": 6086,
+ "OpTypeStructContinuedINTEL": 6090,
+ "OpConstantCompositeContinuedINTEL": 6091,
+ "OpSpecConstantCompositeContinuedINTEL": 6092
}
}
]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 536e279..b9c8bc4 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -155,10 +155,16 @@ spv = {
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
MaxWorkgroupSizeINTEL = 5893,
MaxWorkDimINTEL = 5894,
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
},
StorageClass = {
@@ -190,6 +196,8 @@ spv = {
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
},
Dim = {
@@ -352,6 +360,8 @@ spv = {
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
},
FPFastMathModeMask = {
@@ -361,6 +371,8 @@ spv = {
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
},
FPRoundingMode = {
@@ -457,12 +469,22 @@ spv = {
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
RegisterINTEL = 5825,
MemoryINTEL = 5826,
NumbanksINTEL = 5827,
@@ -475,6 +497,17 @@ spv = {
MergeINTEL = 5834,
BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
},
BuiltIn = {
@@ -626,6 +659,7 @@ spv = {
LoopCoalesceINTEL = 20,
MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
},
LoopControlMask = {
@@ -646,6 +680,7 @@ spv = {
LoopCoalesceINTEL = 0x00100000,
MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
},
FunctionControlShift = {
@@ -838,6 +873,9 @@ spv = {
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -928,21 +966,40 @@ spv = {
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
},
RayFlagsShift = {
@@ -1003,6 +1060,16 @@ spv = {
Horizontal4Pixels = 0x00000008,
},
+ FPDenormMode = {
+ Preserve = 0,
+ FlushToZero = 1,
+ },
+
+ FPOperationMode = {
+ IEEE = 0,
+ ALT = 1,
+ },
+
Op = {
OpNop = 0,
OpUndef = 1,
@@ -1422,8 +1489,13 @@ spv = {
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1546,7 +1618,12 @@ spv = {
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1568,6 +1645,10 @@ spv = {
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
},
}
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 7cec3d6..0829dc1 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -155,10 +155,16 @@ spv = {
'SampleInterlockUnorderedEXT' : 5369,
'ShadingRateInterlockOrderedEXT' : 5370,
'ShadingRateInterlockUnorderedEXT' : 5371,
+ 'SharedLocalMemorySizeINTEL' : 5618,
+ 'RoundingModeRTPINTEL' : 5620,
+ 'RoundingModeRTNINTEL' : 5621,
+ 'FloatingPointModeALTINTEL' : 5622,
+ 'FloatingPointModeIEEEINTEL' : 5623,
'MaxWorkgroupSizeINTEL' : 5893,
'MaxWorkDimINTEL' : 5894,
'NoGlobalOffsetINTEL' : 5895,
'NumSIMDWorkitemsINTEL' : 5896,
+ 'SchedulerTargetFmaxMhzINTEL' : 5903,
},
'StorageClass' : {
@@ -190,6 +196,8 @@ spv = {
'PhysicalStorageBuffer' : 5349,
'PhysicalStorageBufferEXT' : 5349,
'CodeSectionINTEL' : 5605,
+ 'DeviceOnlyINTEL' : 5936,
+ 'HostOnlyINTEL' : 5937,
},
'Dim' : {
@@ -352,6 +360,8 @@ spv = {
'NSZ' : 2,
'AllowRecip' : 3,
'Fast' : 4,
+ 'AllowContractFastINTEL' : 16,
+ 'AllowReassocINTEL' : 17,
},
'FPFastMathModeMask' : {
@@ -361,6 +371,8 @@ spv = {
'NSZ' : 0x00000004,
'AllowRecip' : 0x00000008,
'Fast' : 0x00000010,
+ 'AllowContractFastINTEL' : 0x00010000,
+ 'AllowReassocINTEL' : 0x00020000,
},
'FPRoundingMode' : {
@@ -457,12 +469,22 @@ spv = {
'RestrictPointerEXT' : 5355,
'AliasedPointer' : 5356,
'AliasedPointerEXT' : 5356,
+ 'SIMTCallINTEL' : 5599,
'ReferencedIndirectlyINTEL' : 5602,
+ 'ClobberINTEL' : 5607,
+ 'SideEffectsINTEL' : 5608,
+ 'VectorComputeVariableINTEL' : 5624,
+ 'FuncParamIOKindINTEL' : 5625,
+ 'VectorComputeFunctionINTEL' : 5626,
+ 'StackCallINTEL' : 5627,
+ 'GlobalVariableOffsetINTEL' : 5628,
'CounterBuffer' : 5634,
'HlslCounterBufferGOOGLE' : 5634,
'HlslSemanticGOOGLE' : 5635,
'UserSemantic' : 5635,
'UserTypeGOOGLE' : 5636,
+ 'FunctionRoundingModeINTEL' : 5822,
+ 'FunctionDenormModeINTEL' : 5823,
'RegisterINTEL' : 5825,
'MemoryINTEL' : 5826,
'NumbanksINTEL' : 5827,
@@ -475,6 +497,17 @@ spv = {
'MergeINTEL' : 5834,
'BankBitsINTEL' : 5835,
'ForcePow2DepthINTEL' : 5836,
+ 'BurstCoalesceINTEL' : 5899,
+ 'CacheSizeINTEL' : 5900,
+ 'DontStaticallyCoalesceINTEL' : 5901,
+ 'PrefetchINTEL' : 5902,
+ 'StallEnableINTEL' : 5905,
+ 'FuseLoopsInFunctionINTEL' : 5907,
+ 'BufferLocationINTEL' : 5921,
+ 'IOPipeStorageINTEL' : 5944,
+ 'FunctionFloatingPointModeINTEL' : 6080,
+ 'SingleElementVectorINTEL' : 6085,
+ 'VectorComputeCallableFunctionINTEL' : 6087,
},
'BuiltIn' : {
@@ -626,6 +659,7 @@ spv = {
'LoopCoalesceINTEL' : 20,
'MaxInterleavingINTEL' : 21,
'SpeculatedIterationsINTEL' : 22,
+ 'NoFusionINTEL' : 23,
},
'LoopControlMask' : {
@@ -646,6 +680,7 @@ spv = {
'LoopCoalesceINTEL' : 0x00100000,
'MaxInterleavingINTEL' : 0x00200000,
'SpeculatedIterationsINTEL' : 0x00400000,
+ 'NoFusionINTEL' : 0x00800000,
},
'FunctionControlShift' : {
@@ -838,6 +873,9 @@ spv = {
'FragmentShadingRateKHR' : 4422,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
+ 'WorkgroupMemoryExplicitLayoutKHR' : 4428,
+ 'WorkgroupMemoryExplicitLayout8BitAccessKHR' : 4429,
+ 'WorkgroupMemoryExplicitLayout16BitAccessKHR' : 4430,
'SubgroupVoteKHR' : 4431,
'StorageBuffer16BitAccess' : 4433,
'StorageUniformBufferBlock16' : 4433,
@@ -928,21 +966,40 @@ spv = {
'SubgroupBufferBlockIOINTEL' : 5569,
'SubgroupImageBlockIOINTEL' : 5570,
'SubgroupImageMediaBlockIOINTEL' : 5579,
+ 'RoundToInfinityINTEL' : 5582,
+ 'FloatingPointModeINTEL' : 5583,
'IntegerFunctions2INTEL' : 5584,
'FunctionPointersINTEL' : 5603,
'IndirectReferencesINTEL' : 5604,
+ 'AsmINTEL' : 5606,
+ 'AtomicFloat32MinMaxEXT' : 5612,
+ 'AtomicFloat64MinMaxEXT' : 5613,
+ 'AtomicFloat16MinMaxEXT' : 5616,
+ 'VectorComputeINTEL' : 5617,
+ 'VectorAnyINTEL' : 5619,
'SubgroupAvcMotionEstimationINTEL' : 5696,
'SubgroupAvcMotionEstimationIntraINTEL' : 5697,
'SubgroupAvcMotionEstimationChromaINTEL' : 5698,
+ 'VariableLengthArrayINTEL' : 5817,
+ 'FunctionFloatControlINTEL' : 5821,
'FPGAMemoryAttributesINTEL' : 5824,
+ 'FPFastMathModeINTEL' : 5837,
+ 'ArbitraryPrecisionIntegersINTEL' : 5844,
'UnstructuredLoopControlsINTEL' : 5886,
'FPGALoopControlsINTEL' : 5888,
'KernelAttributesINTEL' : 5892,
'FPGAKernelAttributesINTEL' : 5897,
+ 'FPGAMemoryAccessesINTEL' : 5898,
+ 'FPGAClusterAttributesINTEL' : 5904,
+ 'LoopFuseINTEL' : 5906,
+ 'FPGABufferLocationINTEL' : 5920,
+ 'USMStorageClassesINTEL' : 5935,
+ 'IOPipesINTEL' : 5943,
'BlockingPipesINTEL' : 5945,
'FPGARegINTEL' : 5948,
'AtomicFloat32AddEXT' : 6033,
'AtomicFloat64AddEXT' : 6034,
+ 'LongConstantCompositeINTEL' : 6089,
},
'RayFlagsShift' : {
@@ -1003,6 +1060,16 @@ spv = {
'Horizontal4Pixels' : 0x00000008,
},
+ 'FPDenormMode' : {
+ 'Preserve' : 0,
+ 'FlushToZero' : 1,
+ },
+
+ 'FPOperationMode' : {
+ 'IEEE' : 0,
+ 'ALT' : 1,
+ },
+
'Op' : {
'OpNop' : 0,
'OpUndef' : 1,
@@ -1422,8 +1489,13 @@ spv = {
'OpUSubSatINTEL' : 5596,
'OpIMul32x16INTEL' : 5597,
'OpUMul32x16INTEL' : 5598,
- 'OpFunctionPointerINTEL' : 5600,
+ 'OpConstFunctionPointerINTEL' : 5600,
'OpFunctionPointerCallINTEL' : 5601,
+ 'OpAsmTargetINTEL' : 5609,
+ 'OpAsmINTEL' : 5610,
+ 'OpAsmCallINTEL' : 5611,
+ 'OpAtomicFMinEXT' : 5614,
+ 'OpAtomicFMaxEXT' : 5615,
'OpDecorateString' : 5632,
'OpDecorateStringGOOGLE' : 5632,
'OpMemberDecorateString' : 5633,
@@ -1546,7 +1618,12 @@ spv = {
'OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL' : 5814,
'OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL' : 5815,
'OpSubgroupAvcSicGetInterRawSadsINTEL' : 5816,
+ 'OpVariableLengthArrayINTEL' : 5818,
+ 'OpSaveMemoryINTEL' : 5819,
+ 'OpRestoreMemoryINTEL' : 5820,
'OpLoopControlINTEL' : 5887,
+ 'OpPtrCastToCrossWorkgroupINTEL' : 5934,
+ 'OpCrossWorkgroupCastToPtrINTEL' : 5938,
'OpReadPipeBlockingINTEL' : 5946,
'OpWritePipeBlockingINTEL' : 5947,
'OpFPGARegINTEL' : 5949,
@@ -1568,6 +1645,10 @@ spv = {
'OpRayQueryGetIntersectionObjectToWorldKHR' : 6031,
'OpRayQueryGetIntersectionWorldToObjectKHR' : 6032,
'OpAtomicFAddEXT' : 6035,
+ 'OpTypeBufferSurfaceINTEL' : 6086,
+ 'OpTypeStructContinuedINTEL' : 6090,
+ 'OpConstantCompositeContinuedINTEL' : 6091,
+ 'OpSpecConstantCompositeContinuedINTEL' : 6092,
},
}
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 8bb729f..e1db29b 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -167,10 +167,16 @@ enum ExecutionMode : uint
SampleInterlockUnorderedEXT = 5369,
ShadingRateInterlockOrderedEXT = 5370,
ShadingRateInterlockUnorderedEXT = 5371,
+ SharedLocalMemorySizeINTEL = 5618,
+ RoundingModeRTPINTEL = 5620,
+ RoundingModeRTNINTEL = 5621,
+ FloatingPointModeALTINTEL = 5622,
+ FloatingPointModeIEEEINTEL = 5623,
MaxWorkgroupSizeINTEL = 5893,
MaxWorkDimINTEL = 5894,
NoGlobalOffsetINTEL = 5895,
NumSIMDWorkitemsINTEL = 5896,
+ SchedulerTargetFmaxMhzINTEL = 5903,
}
enum StorageClass : uint
@@ -203,6 +209,8 @@ enum StorageClass : uint
PhysicalStorageBuffer = 5349,
PhysicalStorageBufferEXT = 5349,
CodeSectionINTEL = 5605,
+ DeviceOnlyINTEL = 5936,
+ HostOnlyINTEL = 5937,
}
enum Dim : uint
@@ -374,6 +382,8 @@ enum FPFastMathModeShift : uint
NSZ = 2,
AllowRecip = 3,
Fast = 4,
+ AllowContractFastINTEL = 16,
+ AllowReassocINTEL = 17,
}
enum FPFastMathModeMask : uint
@@ -384,6 +394,8 @@ enum FPFastMathModeMask : uint
NSZ = 0x00000004,
AllowRecip = 0x00000008,
Fast = 0x00000010,
+ AllowContractFastINTEL = 0x00010000,
+ AllowReassocINTEL = 0x00020000,
}
enum FPRoundingMode : uint
@@ -485,12 +497,22 @@ enum Decoration : uint
RestrictPointerEXT = 5355,
AliasedPointer = 5356,
AliasedPointerEXT = 5356,
+ SIMTCallINTEL = 5599,
ReferencedIndirectlyINTEL = 5602,
+ ClobberINTEL = 5607,
+ SideEffectsINTEL = 5608,
+ VectorComputeVariableINTEL = 5624,
+ FuncParamIOKindINTEL = 5625,
+ VectorComputeFunctionINTEL = 5626,
+ StackCallINTEL = 5627,
+ GlobalVariableOffsetINTEL = 5628,
CounterBuffer = 5634,
HlslCounterBufferGOOGLE = 5634,
HlslSemanticGOOGLE = 5635,
UserSemantic = 5635,
UserTypeGOOGLE = 5636,
+ FunctionRoundingModeINTEL = 5822,
+ FunctionDenormModeINTEL = 5823,
RegisterINTEL = 5825,
MemoryINTEL = 5826,
NumbanksINTEL = 5827,
@@ -503,6 +525,17 @@ enum Decoration : uint
MergeINTEL = 5834,
BankBitsINTEL = 5835,
ForcePow2DepthINTEL = 5836,
+ BurstCoalesceINTEL = 5899,
+ CacheSizeINTEL = 5900,
+ DontStaticallyCoalesceINTEL = 5901,
+ PrefetchINTEL = 5902,
+ StallEnableINTEL = 5905,
+ FuseLoopsInFunctionINTEL = 5907,
+ BufferLocationINTEL = 5921,
+ IOPipeStorageINTEL = 5944,
+ FunctionFloatingPointModeINTEL = 6080,
+ SingleElementVectorINTEL = 6085,
+ VectorComputeCallableFunctionINTEL = 6087,
}
enum BuiltIn : uint
@@ -658,6 +691,7 @@ enum LoopControlShift : uint
LoopCoalesceINTEL = 20,
MaxInterleavingINTEL = 21,
SpeculatedIterationsINTEL = 22,
+ NoFusionINTEL = 23,
}
enum LoopControlMask : uint
@@ -679,6 +713,7 @@ enum LoopControlMask : uint
LoopCoalesceINTEL = 0x00100000,
MaxInterleavingINTEL = 0x00200000,
SpeculatedIterationsINTEL = 0x00400000,
+ NoFusionINTEL = 0x00800000,
}
enum FunctionControlShift : uint
@@ -883,6 +918,9 @@ enum Capability : uint
FragmentShadingRateKHR = 4422,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ WorkgroupMemoryExplicitLayoutKHR = 4428,
+ WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
+ WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
SubgroupVoteKHR = 4431,
StorageBuffer16BitAccess = 4433,
StorageUniformBufferBlock16 = 4433,
@@ -973,21 +1011,40 @@ enum Capability : uint
SubgroupBufferBlockIOINTEL = 5569,
SubgroupImageBlockIOINTEL = 5570,
SubgroupImageMediaBlockIOINTEL = 5579,
+ RoundToInfinityINTEL = 5582,
+ FloatingPointModeINTEL = 5583,
IntegerFunctions2INTEL = 5584,
FunctionPointersINTEL = 5603,
IndirectReferencesINTEL = 5604,
+ AsmINTEL = 5606,
+ AtomicFloat32MinMaxEXT = 5612,
+ AtomicFloat64MinMaxEXT = 5613,
+ AtomicFloat16MinMaxEXT = 5616,
+ VectorComputeINTEL = 5617,
+ VectorAnyINTEL = 5619,
SubgroupAvcMotionEstimationINTEL = 5696,
SubgroupAvcMotionEstimationIntraINTEL = 5697,
SubgroupAvcMotionEstimationChromaINTEL = 5698,
+ VariableLengthArrayINTEL = 5817,
+ FunctionFloatControlINTEL = 5821,
FPGAMemoryAttributesINTEL = 5824,
+ FPFastMathModeINTEL = 5837,
+ ArbitraryPrecisionIntegersINTEL = 5844,
UnstructuredLoopControlsINTEL = 5886,
FPGALoopControlsINTEL = 5888,
KernelAttributesINTEL = 5892,
FPGAKernelAttributesINTEL = 5897,
+ FPGAMemoryAccessesINTEL = 5898,
+ FPGAClusterAttributesINTEL = 5904,
+ LoopFuseINTEL = 5906,
+ FPGABufferLocationINTEL = 5920,
+ USMStorageClassesINTEL = 5935,
+ IOPipesINTEL = 5943,
BlockingPipesINTEL = 5945,
FPGARegINTEL = 5948,
AtomicFloat32AddEXT = 6033,
AtomicFloat64AddEXT = 6034,
+ LongConstantCompositeINTEL = 6089,
}
enum RayFlagsShift : uint
@@ -1055,6 +1112,18 @@ enum FragmentShadingRateMask : uint
Horizontal4Pixels = 0x00000008,
}
+enum FPDenormMode : uint
+{
+ Preserve = 0,
+ FlushToZero = 1,
+}
+
+enum FPOperationMode : uint
+{
+ IEEE = 0,
+ ALT = 1,
+}
+
enum Op : uint
{
OpNop = 0,
@@ -1475,8 +1544,13 @@ enum Op : uint
OpUSubSatINTEL = 5596,
OpIMul32x16INTEL = 5597,
OpUMul32x16INTEL = 5598,
- OpFunctionPointerINTEL = 5600,
+ OpConstFunctionPointerINTEL = 5600,
OpFunctionPointerCallINTEL = 5601,
+ OpAsmTargetINTEL = 5609,
+ OpAsmINTEL = 5610,
+ OpAsmCallINTEL = 5611,
+ OpAtomicFMinEXT = 5614,
+ OpAtomicFMaxEXT = 5615,
OpDecorateString = 5632,
OpDecorateStringGOOGLE = 5632,
OpMemberDecorateString = 5633,
@@ -1599,7 +1673,12 @@ enum Op : uint
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
OpReadPipeBlockingINTEL = 5946,
OpWritePipeBlockingINTEL = 5947,
OpFPGARegINTEL = 5949,
@@ -1621,6 +1700,10 @@ enum Op : uint
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
OpAtomicFAddEXT = 6035,
+ OpTypeBufferSurfaceINTEL = 6086,
+ OpTypeStructContinuedINTEL = 6090,
+ OpConstantCompositeContinuedINTEL = 6091,
+ OpSpecConstantCompositeContinuedINTEL = 6092,
}
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index 2118678..17d2ea4 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -25,6 +25,7 @@
#include <assert.h>
#include <string.h>
#include <algorithm>
+#include <cstdlib>
#include <iostream>
#include <unordered_map>
#include <unordered_set>
@@ -61,6 +62,8 @@ EnumValues ImageChannelDataTypeParams;
EnumValues ImageOperandsParams;
EnumValues FPFastMathParams;
EnumValues FPRoundingModeParams;
+EnumValues FPDenormModeParams;
+EnumValues FPOperationModeParams;
EnumValues LinkageTypeParams;
EnumValues DecorationParams;
EnumValues BuiltInParams;
@@ -178,6 +181,10 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
type = OperandImageChannelDataType;
} else if (operandKind == "FPRoundingMode") {
type = OperandFPRoundingMode;
+ } else if (operandKind == "FPDenormMode") {
+ type = OperandFPDenormMode;
+ } else if (operandKind == "FPOperationMode") {
+ type = OperandFPOperationMode;
} else if (operandKind == "LinkageType") {
type = OperandLinkageType;
} else if (operandKind == "AccessQualifier") {
@@ -320,6 +327,8 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
// process the instructions
const Json::Value insts = root["instructions"];
+ unsigned maxOpcode = 0;
+ bool firstOpcode = true;
for (const auto& inst : insts) {
const auto printingClass = inst["class"].asString();
if (printingClass.size() == 0) {
@@ -335,6 +344,19 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
}
const auto opcode = inst["opcode"].asUInt();
const std::string name = inst["opname"].asString();
+ if (firstOpcode) {
+ maxOpcode = opcode;
+ firstOpcode = false;
+ } else {
+ if (maxOpcode > opcode) {
+ std::cerr << "Error: " << name
+ << " is out of order. It follows the instruction with opcode " << maxOpcode
+ << std::endl;
+ std::exit(1);
+ } else {
+ maxOpcode = opcode;
+ }
+ }
EnumCaps caps = getCaps(inst);
std::string version = inst["version"].asString();
std::string lastVersion = inst["lastVersion"].asString();
@@ -378,12 +400,27 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
return result;
};
+ unsigned maxValue = 0;
+ bool firstValue = true;
for (const auto& enumerant : source["enumerants"]) {
unsigned value;
bool skip_zero_in_bitfield;
std::tie(value, skip_zero_in_bitfield) = getValue(enumerant);
if (skip_zero_in_bitfield)
continue;
+ if (firstValue) {
+ maxValue = value;
+ firstValue = false;
+ } else {
+ if (maxValue > value) {
+ std::cerr << "Error: " << source["kind"] << " enumerant " << enumerant["enumerant"]
+ << " is out of order. It has value " << value
+ << " but follows the enumerant with value " << maxValue << std::endl;
+ std::exit(1);
+ } else {
+ maxValue = value;
+ }
+ }
EnumCaps caps(getCaps(enumerant));
std::string version = enumerant["version"].asString();
std::string lastVersion = enumerant["lastVersion"].asString();
@@ -452,6 +489,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
establishOperandClass(enumName, OperandFPFastMath, &FPFastMathParams, operandEnum, category);
} else if (enumName == "FPRoundingMode") {
establishOperandClass(enumName, OperandFPRoundingMode, &FPRoundingModeParams, operandEnum, category);
+ } else if (enumName == "FPDenormMode") {
+ establishOperandClass(enumName, OperandFPDenormMode, &FPDenormModeParams, operandEnum, category);
+ } else if (enumName == "FPOperationMode") {
+ establishOperandClass(enumName, OperandFPOperationMode, &FPOperationModeParams, operandEnum, category);
} else if (enumName == "LinkageType") {
establishOperandClass(enumName, OperandLinkageType, &LinkageTypeParams, operandEnum, category);
} else if (enumName == "FunctionParameterAttribute") {
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 72c7cde..51aa763 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -41,6 +41,8 @@ std::pair<bool, std::string> ReadFile(const std::string& path);
void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders);
// For parameterizing operands.
+// The ordering here affects the printing order in the SPIR-V specification.
+// Please add new operand classes at the end.
enum OperandClass {
OperandNone,
OperandId,
@@ -89,6 +91,8 @@ enum OperandClass {
OperandRayQueryCommittedIntersectionType,
OperandRayQueryCandidateIntersectionType,
OperandFragmentShadingRate,
+ OperandFPDenormMode,
+ OperandFPOperationMode,
OperandOpcode,