Ver Fonte

Updated spirv-headers.

Бранимир Караџић há 4 anos atrás
pai
commit
be1bf8ec0d

+ 6 - 2
3rdparty/spirv-headers/include/spirv/spir-v.xml

@@ -131,13 +131,15 @@
     <ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
     <ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
     <ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
     <ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
     <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
     <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
+    <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact [email protected]"/>
+    <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
     <!-- Opcode enumerants to reserve for future use. To get a block, allocate
     <!-- Opcode enumerants to reserve for future use. To get a block, allocate
          multiples of 64 starting at the lowest available point in this
          multiples of 64 starting at the lowest available point in this
          block and add a corresponding <ids> tag immediately above. Make
          block and add a corresponding <ids> tag immediately above. Make
          sure to fill in the vendor attribute, and preferably add a contact
          sure to fill in the vendor attribute, and preferably add a contact
          person/address in a comment attribute. -->
          person/address in a comment attribute. -->
     <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
     <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
-    <ids type="opcode" start="6144" end="65535" comment="Opcode range reservable for future use by vendors"/>
+    <ids type="opcode" start="6400" end="65535" comment="Opcode range reservable for future use by vendors"/>
     <!-- End reservations of opcodes -->
     <!-- End reservations of opcodes -->
 
 
 
 
@@ -157,13 +159,15 @@
     <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
     <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact [email protected]"/>
     <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
     <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
     <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
     <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact [email protected]"/>
+    <ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact [email protected]"/>
+    <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
     <!-- Enumerants to reserve for future use. To get a block, allocate
     <!-- Enumerants to reserve for future use. To get a block, allocate
          multiples of 64 starting at the lowest available point in this
          multiples of 64 starting at the lowest available point in this
          block and add a corresponding <ids> tag immediately above. Make
          block and add a corresponding <ids> tag immediately above. Make
          sure to fill in the vendor attribute, and preferably add a contact
          sure to fill in the vendor attribute, and preferably add a contact
          person/address in a comment attribute. -->
          person/address in a comment attribute. -->
     <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
     <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
-    <ids type="enumerant" start="6144" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+    <ids type="enumerant" start="6400" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
     <!-- End reservations of enumerants -->
     <!-- End reservations of enumerants -->
 
 
 
 

+ 0 - 171
3rdparty/spirv-headers/include/spirv/unified1/NonSemanticShaderDebugInfo100.h

@@ -1,171 +0,0 @@
-// Copyright (c) 2018 The Khronos Group Inc.
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and/or associated documentation files (the "Materials"),
-// to deal in the Materials without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Materials, and to permit persons to whom the
-// Materials are furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Materials.
-// 
-// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
-// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
-// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
-// 
-// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
-// IN THE MATERIALS.
-
-#ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
-#define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-enum {
-    NonSemanticShaderDebugInfo100Version = 100,
-    NonSemanticShaderDebugInfo100Version_BitWidthPadding = 0x7fffffff
-};
-enum {
-    NonSemanticShaderDebugInfo100Revision = 6,
-    NonSemanticShaderDebugInfo100Revision_BitWidthPadding = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100Instructions {
-    NonSemanticShaderDebugInfo100DebugInfoNone = 0,
-    NonSemanticShaderDebugInfo100DebugCompilationUnit = 1,
-    NonSemanticShaderDebugInfo100DebugTypeBasic = 2,
-    NonSemanticShaderDebugInfo100DebugTypePointer = 3,
-    NonSemanticShaderDebugInfo100DebugTypeQualifier = 4,
-    NonSemanticShaderDebugInfo100DebugTypeArray = 5,
-    NonSemanticShaderDebugInfo100DebugTypeVector = 6,
-    NonSemanticShaderDebugInfo100DebugTypedef = 7,
-    NonSemanticShaderDebugInfo100DebugTypeFunction = 8,
-    NonSemanticShaderDebugInfo100DebugTypeEnum = 9,
-    NonSemanticShaderDebugInfo100DebugTypeComposite = 10,
-    NonSemanticShaderDebugInfo100DebugTypeMember = 11,
-    NonSemanticShaderDebugInfo100DebugTypeInheritance = 12,
-    NonSemanticShaderDebugInfo100DebugTypePtrToMember = 13,
-    NonSemanticShaderDebugInfo100DebugTypeTemplate = 14,
-    NonSemanticShaderDebugInfo100DebugTypeTemplateParameter = 15,
-    NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter = 16,
-    NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack = 17,
-    NonSemanticShaderDebugInfo100DebugGlobalVariable = 18,
-    NonSemanticShaderDebugInfo100DebugFunctionDeclaration = 19,
-    NonSemanticShaderDebugInfo100DebugFunction = 20,
-    NonSemanticShaderDebugInfo100DebugLexicalBlock = 21,
-    NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator = 22,
-    NonSemanticShaderDebugInfo100DebugScope = 23,
-    NonSemanticShaderDebugInfo100DebugNoScope = 24,
-    NonSemanticShaderDebugInfo100DebugInlinedAt = 25,
-    NonSemanticShaderDebugInfo100DebugLocalVariable = 26,
-    NonSemanticShaderDebugInfo100DebugInlinedVariable = 27,
-    NonSemanticShaderDebugInfo100DebugDeclare = 28,
-    NonSemanticShaderDebugInfo100DebugValue = 29,
-    NonSemanticShaderDebugInfo100DebugOperation = 30,
-    NonSemanticShaderDebugInfo100DebugExpression = 31,
-    NonSemanticShaderDebugInfo100DebugMacroDef = 32,
-    NonSemanticShaderDebugInfo100DebugMacroUndef = 33,
-    NonSemanticShaderDebugInfo100DebugImportedEntity = 34,
-    NonSemanticShaderDebugInfo100DebugSource = 35,
-    NonSemanticShaderDebugInfo100DebugFunctionDefinition = 101,
-    NonSemanticShaderDebugInfo100DebugSourceContinued = 102,
-    NonSemanticShaderDebugInfo100DebugLine = 103,
-    NonSemanticShaderDebugInfo100DebugNoLine = 104,
-    NonSemanticShaderDebugInfo100DebugBuildIdentifier = 105,
-    NonSemanticShaderDebugInfo100DebugStoragePath = 106,
-    NonSemanticShaderDebugInfo100DebugEntryPoint = 107,
-    NonSemanticShaderDebugInfo100DebugTypeMatrix = 108,
-    NonSemanticShaderDebugInfo100InstructionsMax = 0x7fffffff
-};
-
-
-enum NonSemanticShaderDebugInfo100DebugInfoFlags {
-    NonSemanticShaderDebugInfo100None = 0x0000,
-    NonSemanticShaderDebugInfo100FlagIsProtected = 0x01,
-    NonSemanticShaderDebugInfo100FlagIsPrivate = 0x02,
-    NonSemanticShaderDebugInfo100FlagIsPublic = 0x03,
-    NonSemanticShaderDebugInfo100FlagIsLocal = 0x04,
-    NonSemanticShaderDebugInfo100FlagIsDefinition = 0x08,
-    NonSemanticShaderDebugInfo100FlagFwdDecl = 0x10,
-    NonSemanticShaderDebugInfo100FlagArtificial = 0x20,
-    NonSemanticShaderDebugInfo100FlagExplicit = 0x40,
-    NonSemanticShaderDebugInfo100FlagPrototyped = 0x80,
-    NonSemanticShaderDebugInfo100FlagObjectPointer = 0x100,
-    NonSemanticShaderDebugInfo100FlagStaticMember = 0x200,
-    NonSemanticShaderDebugInfo100FlagIndirectVariable = 0x400,
-    NonSemanticShaderDebugInfo100FlagLValueReference = 0x800,
-    NonSemanticShaderDebugInfo100FlagRValueReference = 0x1000,
-    NonSemanticShaderDebugInfo100FlagIsOptimized = 0x2000,
-    NonSemanticShaderDebugInfo100FlagIsEnumClass = 0x4000,
-    NonSemanticShaderDebugInfo100FlagTypePassByValue = 0x8000,
-    NonSemanticShaderDebugInfo100FlagTypePassByReference = 0x10000,
-    NonSemanticShaderDebugInfo100FlagUnknownPhysicalLayout = 0x20000,
-    NonSemanticShaderDebugInfo100DebugInfoFlagsMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100BuildIdentifierFlags {
-    NonSemanticShaderDebugInfo100IdentifierPossibleDuplicates = 0x01,
-    NonSemanticShaderDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncoding {
-    NonSemanticShaderDebugInfo100Unspecified = 0,
-    NonSemanticShaderDebugInfo100Address = 1,
-    NonSemanticShaderDebugInfo100Boolean = 2,
-    NonSemanticShaderDebugInfo100Float = 3,
-    NonSemanticShaderDebugInfo100Signed = 4,
-    NonSemanticShaderDebugInfo100SignedChar = 5,
-    NonSemanticShaderDebugInfo100Unsigned = 6,
-    NonSemanticShaderDebugInfo100UnsignedChar = 7,
-    NonSemanticShaderDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100DebugCompositeType {
-    NonSemanticShaderDebugInfo100Class = 0,
-    NonSemanticShaderDebugInfo100Structure = 1,
-    NonSemanticShaderDebugInfo100Union = 2,
-    NonSemanticShaderDebugInfo100DebugCompositeTypeMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100DebugTypeQualifier {
-    NonSemanticShaderDebugInfo100ConstType = 0,
-    NonSemanticShaderDebugInfo100VolatileType = 1,
-    NonSemanticShaderDebugInfo100RestrictType = 2,
-    NonSemanticShaderDebugInfo100AtomicType = 3,
-    NonSemanticShaderDebugInfo100DebugTypeQualifierMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100DebugOperation {
-    NonSemanticShaderDebugInfo100Deref = 0,
-    NonSemanticShaderDebugInfo100Plus = 1,
-    NonSemanticShaderDebugInfo100Minus = 2,
-    NonSemanticShaderDebugInfo100PlusUconst = 3,
-    NonSemanticShaderDebugInfo100BitPiece = 4,
-    NonSemanticShaderDebugInfo100Swap = 5,
-    NonSemanticShaderDebugInfo100Xderef = 6,
-    NonSemanticShaderDebugInfo100StackValue = 7,
-    NonSemanticShaderDebugInfo100Constu = 8,
-    NonSemanticShaderDebugInfo100Fragment = 9,
-    NonSemanticShaderDebugInfo100DebugOperationMax = 0x7fffffff
-};
-
-enum NonSemanticShaderDebugInfo100DebugImportedEntity {
-    NonSemanticShaderDebugInfo100ImportedModule = 0,
-    NonSemanticShaderDebugInfo100ImportedDeclaration = 1,
-    NonSemanticShaderDebugInfo100DebugImportedEntityMax = 0x7fffffff
-};
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_

+ 171 - 0
3rdparty/spirv-headers/include/spirv/unified1/NonSemanticVulkanDebugInfo100.h

@@ -0,0 +1,171 @@
+// Copyright (c) 2018 The Khronos Group Inc.
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and/or associated documentation files (the "Materials"),
+// to deal in the Materials without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Materials, and to permit persons to whom the
+// Materials are furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Materials.
+// 
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
+// 
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+// IN THE MATERIALS.
+
+#ifndef SPIRV_UNIFIED1_NonSemanticVulkanDebugInfo100_H_
+#define SPIRV_UNIFIED1_NonSemanticVulkanDebugInfo100_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+    NonSemanticVulkanDebugInfo100Version = 100,
+    NonSemanticVulkanDebugInfo100Version_BitWidthPadding = 0x7fffffff
+};
+enum {
+    NonSemanticVulkanDebugInfo100Revision = 6,
+    NonSemanticVulkanDebugInfo100Revision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100Instructions {
+    NonSemanticVulkanDebugInfo100DebugInfoNone = 0,
+    NonSemanticVulkanDebugInfo100DebugCompilationUnit = 1,
+    NonSemanticVulkanDebugInfo100DebugTypeBasic = 2,
+    NonSemanticVulkanDebugInfo100DebugTypePointer = 3,
+    NonSemanticVulkanDebugInfo100DebugTypeQualifier = 4,
+    NonSemanticVulkanDebugInfo100DebugTypeArray = 5,
+    NonSemanticVulkanDebugInfo100DebugTypeVector = 6,
+    NonSemanticVulkanDebugInfo100DebugTypedef = 7,
+    NonSemanticVulkanDebugInfo100DebugTypeFunction = 8,
+    NonSemanticVulkanDebugInfo100DebugTypeEnum = 9,
+    NonSemanticVulkanDebugInfo100DebugTypeComposite = 10,
+    NonSemanticVulkanDebugInfo100DebugTypeMember = 11,
+    NonSemanticVulkanDebugInfo100DebugTypeInheritance = 12,
+    NonSemanticVulkanDebugInfo100DebugTypePtrToMember = 13,
+    NonSemanticVulkanDebugInfo100DebugTypeTemplate = 14,
+    NonSemanticVulkanDebugInfo100DebugTypeTemplateParameter = 15,
+    NonSemanticVulkanDebugInfo100DebugTypeTemplateTemplateParameter = 16,
+    NonSemanticVulkanDebugInfo100DebugTypeTemplateParameterPack = 17,
+    NonSemanticVulkanDebugInfo100DebugGlobalVariable = 18,
+    NonSemanticVulkanDebugInfo100DebugFunctionDeclaration = 19,
+    NonSemanticVulkanDebugInfo100DebugFunction = 20,
+    NonSemanticVulkanDebugInfo100DebugLexicalBlock = 21,
+    NonSemanticVulkanDebugInfo100DebugLexicalBlockDiscriminator = 22,
+    NonSemanticVulkanDebugInfo100DebugScope = 23,
+    NonSemanticVulkanDebugInfo100DebugNoScope = 24,
+    NonSemanticVulkanDebugInfo100DebugInlinedAt = 25,
+    NonSemanticVulkanDebugInfo100DebugLocalVariable = 26,
+    NonSemanticVulkanDebugInfo100DebugInlinedVariable = 27,
+    NonSemanticVulkanDebugInfo100DebugDeclare = 28,
+    NonSemanticVulkanDebugInfo100DebugValue = 29,
+    NonSemanticVulkanDebugInfo100DebugOperation = 30,
+    NonSemanticVulkanDebugInfo100DebugExpression = 31,
+    NonSemanticVulkanDebugInfo100DebugMacroDef = 32,
+    NonSemanticVulkanDebugInfo100DebugMacroUndef = 33,
+    NonSemanticVulkanDebugInfo100DebugImportedEntity = 34,
+    NonSemanticVulkanDebugInfo100DebugSource = 35,
+    NonSemanticVulkanDebugInfo100DebugFunctionDefinition = 101,
+    NonSemanticVulkanDebugInfo100DebugSourceContinued = 102,
+    NonSemanticVulkanDebugInfo100DebugLine = 103,
+    NonSemanticVulkanDebugInfo100DebugNoLine = 104,
+    NonSemanticVulkanDebugInfo100DebugBuildIdentifier = 105,
+    NonSemanticVulkanDebugInfo100DebugStoragePath = 106,
+    NonSemanticVulkanDebugInfo100DebugEntryPoint = 107,
+    NonSemanticVulkanDebugInfo100DebugTypeMatrix = 108,
+    NonSemanticVulkanDebugInfo100InstructionsMax = 0x7fffffff
+};
+
+
+enum NonSemanticVulkanDebugInfo100DebugInfoFlags {
+    NonSemanticVulkanDebugInfo100None = 0x0000,
+    NonSemanticVulkanDebugInfo100FlagIsProtected = 0x01,
+    NonSemanticVulkanDebugInfo100FlagIsPrivate = 0x02,
+    NonSemanticVulkanDebugInfo100FlagIsPublic = 0x03,
+    NonSemanticVulkanDebugInfo100FlagIsLocal = 0x04,
+    NonSemanticVulkanDebugInfo100FlagIsDefinition = 0x08,
+    NonSemanticVulkanDebugInfo100FlagFwdDecl = 0x10,
+    NonSemanticVulkanDebugInfo100FlagArtificial = 0x20,
+    NonSemanticVulkanDebugInfo100FlagExplicit = 0x40,
+    NonSemanticVulkanDebugInfo100FlagPrototyped = 0x80,
+    NonSemanticVulkanDebugInfo100FlagObjectPointer = 0x100,
+    NonSemanticVulkanDebugInfo100FlagStaticMember = 0x200,
+    NonSemanticVulkanDebugInfo100FlagIndirectVariable = 0x400,
+    NonSemanticVulkanDebugInfo100FlagLValueReference = 0x800,
+    NonSemanticVulkanDebugInfo100FlagRValueReference = 0x1000,
+    NonSemanticVulkanDebugInfo100FlagIsOptimized = 0x2000,
+    NonSemanticVulkanDebugInfo100FlagIsEnumClass = 0x4000,
+    NonSemanticVulkanDebugInfo100FlagTypePassByValue = 0x8000,
+    NonSemanticVulkanDebugInfo100FlagTypePassByReference = 0x10000,
+    NonSemanticVulkanDebugInfo100FlagUnknownPhysicalLayout = 0x20000,
+    NonSemanticVulkanDebugInfo100DebugInfoFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100BuildIdentifierFlags {
+    NonSemanticVulkanDebugInfo100IdentifierPossibleDuplicates = 0x01,
+    NonSemanticVulkanDebugInfo100BuildIdentifierFlagsMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100DebugBaseTypeAttributeEncoding {
+    NonSemanticVulkanDebugInfo100Unspecified = 0,
+    NonSemanticVulkanDebugInfo100Address = 1,
+    NonSemanticVulkanDebugInfo100Boolean = 2,
+    NonSemanticVulkanDebugInfo100Float = 3,
+    NonSemanticVulkanDebugInfo100Signed = 4,
+    NonSemanticVulkanDebugInfo100SignedChar = 5,
+    NonSemanticVulkanDebugInfo100Unsigned = 6,
+    NonSemanticVulkanDebugInfo100UnsignedChar = 7,
+    NonSemanticVulkanDebugInfo100DebugBaseTypeAttributeEncodingMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100DebugCompositeType {
+    NonSemanticVulkanDebugInfo100Class = 0,
+    NonSemanticVulkanDebugInfo100Structure = 1,
+    NonSemanticVulkanDebugInfo100Union = 2,
+    NonSemanticVulkanDebugInfo100DebugCompositeTypeMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100DebugTypeQualifier {
+    NonSemanticVulkanDebugInfo100ConstType = 0,
+    NonSemanticVulkanDebugInfo100VolatileType = 1,
+    NonSemanticVulkanDebugInfo100RestrictType = 2,
+    NonSemanticVulkanDebugInfo100AtomicType = 3,
+    NonSemanticVulkanDebugInfo100DebugTypeQualifierMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100DebugOperation {
+    NonSemanticVulkanDebugInfo100Deref = 0,
+    NonSemanticVulkanDebugInfo100Plus = 1,
+    NonSemanticVulkanDebugInfo100Minus = 2,
+    NonSemanticVulkanDebugInfo100PlusUconst = 3,
+    NonSemanticVulkanDebugInfo100BitPiece = 4,
+    NonSemanticVulkanDebugInfo100Swap = 5,
+    NonSemanticVulkanDebugInfo100Xderef = 6,
+    NonSemanticVulkanDebugInfo100StackValue = 7,
+    NonSemanticVulkanDebugInfo100Constu = 8,
+    NonSemanticVulkanDebugInfo100Fragment = 9,
+    NonSemanticVulkanDebugInfo100DebugOperationMax = 0x7fffffff
+};
+
+enum NonSemanticVulkanDebugInfo100DebugImportedEntity {
+    NonSemanticVulkanDebugInfo100ImportedModule = 0,
+    NonSemanticVulkanDebugInfo100ImportedDeclaration = 1,
+    NonSemanticVulkanDebugInfo100DebugImportedEntityMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticVulkanDebugInfo100_H_

+ 1 - 0
3rdparty/spirv-headers/include/spirv/unified1/OpenCLDebugInfo100.h

@@ -75,6 +75,7 @@ enum OpenCLDebugInfo100Instructions {
     OpenCLDebugInfo100DebugMacroUndef = 33,
     OpenCLDebugInfo100DebugMacroUndef = 33,
     OpenCLDebugInfo100DebugImportedEntity = 34,
     OpenCLDebugInfo100DebugImportedEntity = 34,
     OpenCLDebugInfo100DebugSource = 35,
     OpenCLDebugInfo100DebugSource = 35,
+    OpenCLDebugInfo100DebugModuleINTEL = 36,
     OpenCLDebugInfo100InstructionsMax = 0x7fffffff
     OpenCLDebugInfo100InstructionsMax = 0x7fffffff
 };
 };
 
 

+ 0 - 0
3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json → 3rdparty/spirv-headers/include/spirv/unified1/extinst.nonsemantic.vulkan.debuginfo.100.grammar.json


+ 15 - 0
3rdparty/spirv-headers/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json

@@ -395,6 +395,21 @@
         { "kind" : "IdRef", "name" : "'File'" },
         { "kind" : "IdRef", "name" : "'File'" },
         { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
         { "kind" : "IdRef", "name" : "'Text'", "quantifier" : "?" }
       ]
       ]
+    },
+    {
+      "opname" : "DebugModuleINTEL",
+      "opcode" : 36,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Name'" },
+        { "kind" : "IdRef", "name" : "'Source'" },
+        { "kind" : "IdRef", "name" : "'Parent'" },
+        { "kind" : "LiteralInteger", "name" : "'Line'" },
+        { "kind" : "IdRef", "name" : "'ConfigurationMacros'" },
+        { "kind" : "IdRef", "name" : "'IncludePath'" },
+        { "kind" : "IdRef", "name" : "'APINotesFile'" },
+        { "kind" : "LiteralInteger", "name" : "'IsDeclaration'" }
+      ],
+      "capability" : "DebugInfoModuleINTEL"
     }
     }
   ],
   ],
   "operand_kinds" : [
   "operand_kinds" : [

Diff do ficheiro suprimidas por serem muito extensas
+ 1154 - 147
3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json


+ 94 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.cs

@@ -61,6 +61,7 @@ namespace Spv
             OpenCL_C = 3,
             OpenCL_C = 3,
             OpenCL_CPP = 4,
             OpenCL_CPP = 4,
             HLSL = 5,
             HLSL = 5,
+            CPP_for_OpenCL = 6,
         }
         }
 
 
         public enum ExecutionModel
         public enum ExecutionModel
@@ -146,6 +147,7 @@ namespace Spv
             SubgroupsPerWorkgroupId = 37,
             SubgroupsPerWorkgroupId = 37,
             LocalSizeId = 38,
             LocalSizeId = 38,
             LocalSizeHintId = 39,
             LocalSizeHintId = 39,
+            SubgroupUniformControlFlowKHR = 4421,
             PostDepthCoverage = 4446,
             PostDepthCoverage = 4446,
             DenormPreserve = 4459,
             DenormPreserve = 4459,
             DenormFlushToZero = 4460,
             DenormFlushToZero = 4460,
@@ -1029,6 +1031,7 @@ namespace Spv
             FPGAMemoryAttributesINTEL = 5824,
             FPGAMemoryAttributesINTEL = 5824,
             FPFastMathModeINTEL = 5837,
             FPFastMathModeINTEL = 5837,
             ArbitraryPrecisionIntegersINTEL = 5844,
             ArbitraryPrecisionIntegersINTEL = 5844,
+            ArbitraryPrecisionFloatingPointINTEL = 5845,
             UnstructuredLoopControlsINTEL = 5886,
             UnstructuredLoopControlsINTEL = 5886,
             FPGALoopControlsINTEL = 5888,
             FPGALoopControlsINTEL = 5888,
             KernelAttributesINTEL = 5892,
             KernelAttributesINTEL = 5892,
@@ -1037,13 +1040,21 @@ namespace Spv
             FPGAClusterAttributesINTEL = 5904,
             FPGAClusterAttributesINTEL = 5904,
             LoopFuseINTEL = 5906,
             LoopFuseINTEL = 5906,
             FPGABufferLocationINTEL = 5920,
             FPGABufferLocationINTEL = 5920,
+            ArbitraryPrecisionFixedPointINTEL = 5922,
             USMStorageClassesINTEL = 5935,
             USMStorageClassesINTEL = 5935,
             IOPipesINTEL = 5943,
             IOPipesINTEL = 5943,
             BlockingPipesINTEL = 5945,
             BlockingPipesINTEL = 5945,
             FPGARegINTEL = 5948,
             FPGARegINTEL = 5948,
+            DotProductInputAllKHR = 6016,
+            DotProductInput4x8BitKHR = 6017,
+            DotProductInput4x8BitPackedKHR = 6018,
+            DotProductKHR = 6019,
+            BitInstructions = 6025,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat64AddEXT = 6034,
             AtomicFloat64AddEXT = 6034,
             LongConstantCompositeINTEL = 6089,
             LongConstantCompositeINTEL = 6089,
+            AtomicFloat16AddEXT = 6095,
+            DebugInfoModuleINTEL = 6114,
         }
         }
 
 
         public enum RayFlagsShift
         public enum RayFlagsShift
@@ -1123,6 +1134,31 @@ namespace Spv
             ALT = 1,
             ALT = 1,
         }
         }
 
 
+        public enum QuantizationModes
+        {
+            TRN = 0,
+            TRN_ZERO = 1,
+            RND = 2,
+            RND_ZERO = 3,
+            RND_INF = 4,
+            RND_MIN_INF = 5,
+            RND_CONV = 6,
+            RND_CONV_ODD = 7,
+        }
+
+        public enum OverflowModes
+        {
+            WRAP = 0,
+            SAT = 1,
+            SAT_ZERO = 2,
+            SAT_SYM = 3,
+        }
+
+        public enum PackedVectorFormat
+        {
+            PackedVectorFormat4x8BitKHR = 0,
+        }
+
         public enum Op
         public enum Op
         {
         {
             OpNop = 0,
             OpNop = 0,
@@ -1481,6 +1517,12 @@ namespace Spv
             OpConvertUToAccelerationStructureKHR = 4447,
             OpConvertUToAccelerationStructureKHR = 4447,
             OpIgnoreIntersectionKHR = 4448,
             OpIgnoreIntersectionKHR = 4448,
             OpTerminateRayKHR = 4449,
             OpTerminateRayKHR = 4449,
+            OpSDotKHR = 4450,
+            OpUDotKHR = 4451,
+            OpSUDotKHR = 4452,
+            OpSDotAccSatKHR = 4453,
+            OpUDotAccSatKHR = 4454,
+            OpSUDotAccSatKHR = 4455,
             OpTypeRayQueryKHR = 4472,
             OpTypeRayQueryKHR = 4472,
             OpRayQueryInitializeKHR = 4473,
             OpRayQueryInitializeKHR = 4473,
             OpRayQueryTerminateKHR = 4474,
             OpRayQueryTerminateKHR = 4474,
@@ -1677,7 +1719,59 @@ namespace Spv
             OpVariableLengthArrayINTEL = 5818,
             OpVariableLengthArrayINTEL = 5818,
             OpSaveMemoryINTEL = 5819,
             OpSaveMemoryINTEL = 5819,
             OpRestoreMemoryINTEL = 5820,
             OpRestoreMemoryINTEL = 5820,
+            OpArbitraryFloatSinCosPiINTEL = 5840,
+            OpArbitraryFloatCastINTEL = 5841,
+            OpArbitraryFloatCastFromIntINTEL = 5842,
+            OpArbitraryFloatCastToIntINTEL = 5843,
+            OpArbitraryFloatAddINTEL = 5846,
+            OpArbitraryFloatSubINTEL = 5847,
+            OpArbitraryFloatMulINTEL = 5848,
+            OpArbitraryFloatDivINTEL = 5849,
+            OpArbitraryFloatGTINTEL = 5850,
+            OpArbitraryFloatGEINTEL = 5851,
+            OpArbitraryFloatLTINTEL = 5852,
+            OpArbitraryFloatLEINTEL = 5853,
+            OpArbitraryFloatEQINTEL = 5854,
+            OpArbitraryFloatRecipINTEL = 5855,
+            OpArbitraryFloatRSqrtINTEL = 5856,
+            OpArbitraryFloatCbrtINTEL = 5857,
+            OpArbitraryFloatHypotINTEL = 5858,
+            OpArbitraryFloatSqrtINTEL = 5859,
+            OpArbitraryFloatLogINTEL = 5860,
+            OpArbitraryFloatLog2INTEL = 5861,
+            OpArbitraryFloatLog10INTEL = 5862,
+            OpArbitraryFloatLog1pINTEL = 5863,
+            OpArbitraryFloatExpINTEL = 5864,
+            OpArbitraryFloatExp2INTEL = 5865,
+            OpArbitraryFloatExp10INTEL = 5866,
+            OpArbitraryFloatExpm1INTEL = 5867,
+            OpArbitraryFloatSinINTEL = 5868,
+            OpArbitraryFloatCosINTEL = 5869,
+            OpArbitraryFloatSinCosINTEL = 5870,
+            OpArbitraryFloatSinPiINTEL = 5871,
+            OpArbitraryFloatCosPiINTEL = 5872,
+            OpArbitraryFloatASinINTEL = 5873,
+            OpArbitraryFloatASinPiINTEL = 5874,
+            OpArbitraryFloatACosINTEL = 5875,
+            OpArbitraryFloatACosPiINTEL = 5876,
+            OpArbitraryFloatATanINTEL = 5877,
+            OpArbitraryFloatATanPiINTEL = 5878,
+            OpArbitraryFloatATan2INTEL = 5879,
+            OpArbitraryFloatPowINTEL = 5880,
+            OpArbitraryFloatPowRINTEL = 5881,
+            OpArbitraryFloatPowNINTEL = 5882,
             OpLoopControlINTEL = 5887,
             OpLoopControlINTEL = 5887,
+            OpFixedSqrtINTEL = 5923,
+            OpFixedRecipINTEL = 5924,
+            OpFixedRsqrtINTEL = 5925,
+            OpFixedSinINTEL = 5926,
+            OpFixedCosINTEL = 5927,
+            OpFixedSinCosINTEL = 5928,
+            OpFixedSinPiINTEL = 5929,
+            OpFixedCosPiINTEL = 5930,
+            OpFixedSinCosPiINTEL = 5931,
+            OpFixedLogINTEL = 5932,
+            OpFixedExpINTEL = 5933,
             OpPtrCastToCrossWorkgroupINTEL = 5934,
             OpPtrCastToCrossWorkgroupINTEL = 5934,
             OpCrossWorkgroupCastToPtrINTEL = 5938,
             OpCrossWorkgroupCastToPtrINTEL = 5938,
             OpReadPipeBlockingINTEL = 5946,
             OpReadPipeBlockingINTEL = 5946,

+ 152 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.h

@@ -69,6 +69,7 @@ typedef enum SpvSourceLanguage_ {
     SpvSourceLanguageOpenCL_C = 3,
     SpvSourceLanguageOpenCL_C = 3,
     SpvSourceLanguageOpenCL_CPP = 4,
     SpvSourceLanguageOpenCL_CPP = 4,
     SpvSourceLanguageHLSL = 5,
     SpvSourceLanguageHLSL = 5,
+    SpvSourceLanguageCPP_for_OpenCL = 6,
     SpvSourceLanguageMax = 0x7fffffff,
     SpvSourceLanguageMax = 0x7fffffff,
 } SpvSourceLanguage;
 } SpvSourceLanguage;
 
 
@@ -154,6 +155,7 @@ typedef enum SpvExecutionMode_ {
     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
     SpvExecutionModeLocalSizeId = 38,
     SpvExecutionModeLocalSizeId = 38,
     SpvExecutionModeLocalSizeHintId = 39,
     SpvExecutionModeLocalSizeHintId = 39,
+    SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
     SpvExecutionModePostDepthCoverage = 4446,
     SpvExecutionModePostDepthCoverage = 4446,
     SpvExecutionModeDenormPreserve = 4459,
     SpvExecutionModeDenormPreserve = 4459,
     SpvExecutionModeDenormFlushToZero = 4460,
     SpvExecutionModeDenormFlushToZero = 4460,
@@ -1029,6 +1031,7 @@ typedef enum SpvCapability_ {
     SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
     SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
     SpvCapabilityFPFastMathModeINTEL = 5837,
     SpvCapabilityFPFastMathModeINTEL = 5837,
     SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
     SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+    SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
     SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
     SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
     SpvCapabilityFPGALoopControlsINTEL = 5888,
     SpvCapabilityFPGALoopControlsINTEL = 5888,
     SpvCapabilityKernelAttributesINTEL = 5892,
     SpvCapabilityKernelAttributesINTEL = 5892,
@@ -1037,13 +1040,21 @@ typedef enum SpvCapability_ {
     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
     SpvCapabilityLoopFuseINTEL = 5906,
     SpvCapabilityLoopFuseINTEL = 5906,
     SpvCapabilityFPGABufferLocationINTEL = 5920,
     SpvCapabilityFPGABufferLocationINTEL = 5920,
+    SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     SpvCapabilityUSMStorageClassesINTEL = 5935,
     SpvCapabilityUSMStorageClassesINTEL = 5935,
     SpvCapabilityIOPipesINTEL = 5943,
     SpvCapabilityIOPipesINTEL = 5943,
     SpvCapabilityBlockingPipesINTEL = 5945,
     SpvCapabilityBlockingPipesINTEL = 5945,
     SpvCapabilityFPGARegINTEL = 5948,
     SpvCapabilityFPGARegINTEL = 5948,
+    SpvCapabilityDotProductInputAllKHR = 6016,
+    SpvCapabilityDotProductInput4x8BitKHR = 6017,
+    SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
+    SpvCapabilityDotProductKHR = 6019,
+    SpvCapabilityBitInstructions = 6025,
     SpvCapabilityAtomicFloat32AddEXT = 6033,
     SpvCapabilityAtomicFloat32AddEXT = 6033,
     SpvCapabilityAtomicFloat64AddEXT = 6034,
     SpvCapabilityAtomicFloat64AddEXT = 6034,
     SpvCapabilityLongConstantCompositeINTEL = 6089,
     SpvCapabilityLongConstantCompositeINTEL = 6089,
+    SpvCapabilityAtomicFloat16AddEXT = 6095,
+    SpvCapabilityDebugInfoModuleINTEL = 6114,
     SpvCapabilityMax = 0x7fffffff,
     SpvCapabilityMax = 0x7fffffff,
 } SpvCapability;
 } SpvCapability;
 
 
@@ -1122,6 +1133,31 @@ typedef enum SpvFPOperationMode_ {
     SpvFPOperationModeMax = 0x7fffffff,
     SpvFPOperationModeMax = 0x7fffffff,
 } SpvFPOperationMode;
 } SpvFPOperationMode;
 
 
+typedef enum SpvQuantizationModes_ {
+    SpvQuantizationModesTRN = 0,
+    SpvQuantizationModesTRN_ZERO = 1,
+    SpvQuantizationModesRND = 2,
+    SpvQuantizationModesRND_ZERO = 3,
+    SpvQuantizationModesRND_INF = 4,
+    SpvQuantizationModesRND_MIN_INF = 5,
+    SpvQuantizationModesRND_CONV = 6,
+    SpvQuantizationModesRND_CONV_ODD = 7,
+    SpvQuantizationModesMax = 0x7fffffff,
+} SpvQuantizationModes;
+
+typedef enum SpvOverflowModes_ {
+    SpvOverflowModesWRAP = 0,
+    SpvOverflowModesSAT = 1,
+    SpvOverflowModesSAT_ZERO = 2,
+    SpvOverflowModesSAT_SYM = 3,
+    SpvOverflowModesMax = 0x7fffffff,
+} SpvOverflowModes;
+
+typedef enum SpvPackedVectorFormat_ {
+    SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+    SpvPackedVectorFormatMax = 0x7fffffff,
+} SpvPackedVectorFormat;
+
 typedef enum SpvOp_ {
 typedef enum SpvOp_ {
     SpvOpNop = 0,
     SpvOpNop = 0,
     SpvOpUndef = 1,
     SpvOpUndef = 1,
@@ -1479,6 +1515,12 @@ typedef enum SpvOp_ {
     SpvOpConvertUToAccelerationStructureKHR = 4447,
     SpvOpConvertUToAccelerationStructureKHR = 4447,
     SpvOpIgnoreIntersectionKHR = 4448,
     SpvOpIgnoreIntersectionKHR = 4448,
     SpvOpTerminateRayKHR = 4449,
     SpvOpTerminateRayKHR = 4449,
+    SpvOpSDotKHR = 4450,
+    SpvOpUDotKHR = 4451,
+    SpvOpSUDotKHR = 4452,
+    SpvOpSDotAccSatKHR = 4453,
+    SpvOpUDotAccSatKHR = 4454,
+    SpvOpSUDotAccSatKHR = 4455,
     SpvOpTypeRayQueryKHR = 4472,
     SpvOpTypeRayQueryKHR = 4472,
     SpvOpRayQueryInitializeKHR = 4473,
     SpvOpRayQueryInitializeKHR = 4473,
     SpvOpRayQueryTerminateKHR = 4474,
     SpvOpRayQueryTerminateKHR = 4474,
@@ -1675,7 +1717,59 @@ typedef enum SpvOp_ {
     SpvOpVariableLengthArrayINTEL = 5818,
     SpvOpVariableLengthArrayINTEL = 5818,
     SpvOpSaveMemoryINTEL = 5819,
     SpvOpSaveMemoryINTEL = 5819,
     SpvOpRestoreMemoryINTEL = 5820,
     SpvOpRestoreMemoryINTEL = 5820,
+    SpvOpArbitraryFloatSinCosPiINTEL = 5840,
+    SpvOpArbitraryFloatCastINTEL = 5841,
+    SpvOpArbitraryFloatCastFromIntINTEL = 5842,
+    SpvOpArbitraryFloatCastToIntINTEL = 5843,
+    SpvOpArbitraryFloatAddINTEL = 5846,
+    SpvOpArbitraryFloatSubINTEL = 5847,
+    SpvOpArbitraryFloatMulINTEL = 5848,
+    SpvOpArbitraryFloatDivINTEL = 5849,
+    SpvOpArbitraryFloatGTINTEL = 5850,
+    SpvOpArbitraryFloatGEINTEL = 5851,
+    SpvOpArbitraryFloatLTINTEL = 5852,
+    SpvOpArbitraryFloatLEINTEL = 5853,
+    SpvOpArbitraryFloatEQINTEL = 5854,
+    SpvOpArbitraryFloatRecipINTEL = 5855,
+    SpvOpArbitraryFloatRSqrtINTEL = 5856,
+    SpvOpArbitraryFloatCbrtINTEL = 5857,
+    SpvOpArbitraryFloatHypotINTEL = 5858,
+    SpvOpArbitraryFloatSqrtINTEL = 5859,
+    SpvOpArbitraryFloatLogINTEL = 5860,
+    SpvOpArbitraryFloatLog2INTEL = 5861,
+    SpvOpArbitraryFloatLog10INTEL = 5862,
+    SpvOpArbitraryFloatLog1pINTEL = 5863,
+    SpvOpArbitraryFloatExpINTEL = 5864,
+    SpvOpArbitraryFloatExp2INTEL = 5865,
+    SpvOpArbitraryFloatExp10INTEL = 5866,
+    SpvOpArbitraryFloatExpm1INTEL = 5867,
+    SpvOpArbitraryFloatSinINTEL = 5868,
+    SpvOpArbitraryFloatCosINTEL = 5869,
+    SpvOpArbitraryFloatSinCosINTEL = 5870,
+    SpvOpArbitraryFloatSinPiINTEL = 5871,
+    SpvOpArbitraryFloatCosPiINTEL = 5872,
+    SpvOpArbitraryFloatASinINTEL = 5873,
+    SpvOpArbitraryFloatASinPiINTEL = 5874,
+    SpvOpArbitraryFloatACosINTEL = 5875,
+    SpvOpArbitraryFloatACosPiINTEL = 5876,
+    SpvOpArbitraryFloatATanINTEL = 5877,
+    SpvOpArbitraryFloatATanPiINTEL = 5878,
+    SpvOpArbitraryFloatATan2INTEL = 5879,
+    SpvOpArbitraryFloatPowINTEL = 5880,
+    SpvOpArbitraryFloatPowRINTEL = 5881,
+    SpvOpArbitraryFloatPowNINTEL = 5882,
     SpvOpLoopControlINTEL = 5887,
     SpvOpLoopControlINTEL = 5887,
+    SpvOpFixedSqrtINTEL = 5923,
+    SpvOpFixedRecipINTEL = 5924,
+    SpvOpFixedRsqrtINTEL = 5925,
+    SpvOpFixedSinINTEL = 5926,
+    SpvOpFixedCosINTEL = 5927,
+    SpvOpFixedSinCosINTEL = 5928,
+    SpvOpFixedSinPiINTEL = 5929,
+    SpvOpFixedCosPiINTEL = 5930,
+    SpvOpFixedSinCosPiINTEL = 5931,
+    SpvOpFixedLogINTEL = 5932,
+    SpvOpFixedExpINTEL = 5933,
     SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
     SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
     SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
     SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
     SpvOpReadPipeBlockingINTEL = 5946,
     SpvOpReadPipeBlockingINTEL = 5946,
@@ -2067,6 +2161,12 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
     case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+    case SpvOpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2259,7 +2359,59 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
     case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+    case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;

+ 152 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp

@@ -65,6 +65,7 @@ enum SourceLanguage {
     SourceLanguageOpenCL_C = 3,
     SourceLanguageOpenCL_C = 3,
     SourceLanguageOpenCL_CPP = 4,
     SourceLanguageOpenCL_CPP = 4,
     SourceLanguageHLSL = 5,
     SourceLanguageHLSL = 5,
+    SourceLanguageCPP_for_OpenCL = 6,
     SourceLanguageMax = 0x7fffffff,
     SourceLanguageMax = 0x7fffffff,
 };
 };
 
 
@@ -150,6 +151,7 @@ enum ExecutionMode {
     ExecutionModeSubgroupsPerWorkgroupId = 37,
     ExecutionModeSubgroupsPerWorkgroupId = 37,
     ExecutionModeLocalSizeId = 38,
     ExecutionModeLocalSizeId = 38,
     ExecutionModeLocalSizeHintId = 39,
     ExecutionModeLocalSizeHintId = 39,
+    ExecutionModeSubgroupUniformControlFlowKHR = 4421,
     ExecutionModePostDepthCoverage = 4446,
     ExecutionModePostDepthCoverage = 4446,
     ExecutionModeDenormPreserve = 4459,
     ExecutionModeDenormPreserve = 4459,
     ExecutionModeDenormFlushToZero = 4460,
     ExecutionModeDenormFlushToZero = 4460,
@@ -1025,6 +1027,7 @@ enum Capability {
     CapabilityFPGAMemoryAttributesINTEL = 5824,
     CapabilityFPGAMemoryAttributesINTEL = 5824,
     CapabilityFPFastMathModeINTEL = 5837,
     CapabilityFPFastMathModeINTEL = 5837,
     CapabilityArbitraryPrecisionIntegersINTEL = 5844,
     CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+    CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
     CapabilityUnstructuredLoopControlsINTEL = 5886,
     CapabilityUnstructuredLoopControlsINTEL = 5886,
     CapabilityFPGALoopControlsINTEL = 5888,
     CapabilityFPGALoopControlsINTEL = 5888,
     CapabilityKernelAttributesINTEL = 5892,
     CapabilityKernelAttributesINTEL = 5892,
@@ -1033,13 +1036,21 @@ enum Capability {
     CapabilityFPGAClusterAttributesINTEL = 5904,
     CapabilityFPGAClusterAttributesINTEL = 5904,
     CapabilityLoopFuseINTEL = 5906,
     CapabilityLoopFuseINTEL = 5906,
     CapabilityFPGABufferLocationINTEL = 5920,
     CapabilityFPGABufferLocationINTEL = 5920,
+    CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     CapabilityUSMStorageClassesINTEL = 5935,
     CapabilityUSMStorageClassesINTEL = 5935,
     CapabilityIOPipesINTEL = 5943,
     CapabilityIOPipesINTEL = 5943,
     CapabilityBlockingPipesINTEL = 5945,
     CapabilityBlockingPipesINTEL = 5945,
     CapabilityFPGARegINTEL = 5948,
     CapabilityFPGARegINTEL = 5948,
+    CapabilityDotProductInputAllKHR = 6016,
+    CapabilityDotProductInput4x8BitKHR = 6017,
+    CapabilityDotProductInput4x8BitPackedKHR = 6018,
+    CapabilityDotProductKHR = 6019,
+    CapabilityBitInstructions = 6025,
     CapabilityAtomicFloat32AddEXT = 6033,
     CapabilityAtomicFloat32AddEXT = 6033,
     CapabilityAtomicFloat64AddEXT = 6034,
     CapabilityAtomicFloat64AddEXT = 6034,
     CapabilityLongConstantCompositeINTEL = 6089,
     CapabilityLongConstantCompositeINTEL = 6089,
+    CapabilityAtomicFloat16AddEXT = 6095,
+    CapabilityDebugInfoModuleINTEL = 6114,
     CapabilityMax = 0x7fffffff,
     CapabilityMax = 0x7fffffff,
 };
 };
 
 
@@ -1118,6 +1129,31 @@ enum FPOperationMode {
     FPOperationModeMax = 0x7fffffff,
     FPOperationModeMax = 0x7fffffff,
 };
 };
 
 
+enum QuantizationModes {
+    QuantizationModesTRN = 0,
+    QuantizationModesTRN_ZERO = 1,
+    QuantizationModesRND = 2,
+    QuantizationModesRND_ZERO = 3,
+    QuantizationModesRND_INF = 4,
+    QuantizationModesRND_MIN_INF = 5,
+    QuantizationModesRND_CONV = 6,
+    QuantizationModesRND_CONV_ODD = 7,
+    QuantizationModesMax = 0x7fffffff,
+};
+
+enum OverflowModes {
+    OverflowModesWRAP = 0,
+    OverflowModesSAT = 1,
+    OverflowModesSAT_ZERO = 2,
+    OverflowModesSAT_SYM = 3,
+    OverflowModesMax = 0x7fffffff,
+};
+
+enum PackedVectorFormat {
+    PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
+    PackedVectorFormatMax = 0x7fffffff,
+};
+
 enum Op {
 enum Op {
     OpNop = 0,
     OpNop = 0,
     OpUndef = 1,
     OpUndef = 1,
@@ -1475,6 +1511,12 @@ enum Op {
     OpConvertUToAccelerationStructureKHR = 4447,
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
     OpTerminateRayKHR = 4449,
+    OpSDotKHR = 4450,
+    OpUDotKHR = 4451,
+    OpSUDotKHR = 4452,
+    OpSDotAccSatKHR = 4453,
+    OpUDotAccSatKHR = 4454,
+    OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
     OpRayQueryTerminateKHR = 4474,
@@ -1671,7 +1713,59 @@ enum Op {
     OpVariableLengthArrayINTEL = 5818,
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
     OpReadPipeBlockingINTEL = 5946,
@@ -2063,6 +2157,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
     case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+    case OpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case OpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2255,7 +2355,59 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
     case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+    case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;

+ 152 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.hpp11

@@ -65,6 +65,7 @@ enum class SourceLanguage : unsigned {
     OpenCL_C = 3,
     OpenCL_C = 3,
     OpenCL_CPP = 4,
     OpenCL_CPP = 4,
     HLSL = 5,
     HLSL = 5,
+    CPP_for_OpenCL = 6,
     Max = 0x7fffffff,
     Max = 0x7fffffff,
 };
 };
 
 
@@ -150,6 +151,7 @@ enum class ExecutionMode : unsigned {
     SubgroupsPerWorkgroupId = 37,
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
     LocalSizeHintId = 39,
+    SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
     DenormPreserve = 4459,
     DenormFlushToZero = 4460,
     DenormFlushToZero = 4460,
@@ -1025,6 +1027,7 @@ enum class Capability : unsigned {
     FPGAMemoryAttributesINTEL = 5824,
     FPGAMemoryAttributesINTEL = 5824,
     FPFastMathModeINTEL = 5837,
     FPFastMathModeINTEL = 5837,
     ArbitraryPrecisionIntegersINTEL = 5844,
     ArbitraryPrecisionIntegersINTEL = 5844,
+    ArbitraryPrecisionFloatingPointINTEL = 5845,
     UnstructuredLoopControlsINTEL = 5886,
     UnstructuredLoopControlsINTEL = 5886,
     FPGALoopControlsINTEL = 5888,
     FPGALoopControlsINTEL = 5888,
     KernelAttributesINTEL = 5892,
     KernelAttributesINTEL = 5892,
@@ -1033,13 +1036,21 @@ enum class Capability : unsigned {
     FPGAClusterAttributesINTEL = 5904,
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
     LoopFuseINTEL = 5906,
     FPGABufferLocationINTEL = 5920,
     FPGABufferLocationINTEL = 5920,
+    ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
     USMStorageClassesINTEL = 5935,
     IOPipesINTEL = 5943,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
     FPGARegINTEL = 5948,
+    DotProductInputAllKHR = 6016,
+    DotProductInput4x8BitKHR = 6017,
+    DotProductInput4x8BitPackedKHR = 6018,
+    DotProductKHR = 6019,
+    BitInstructions = 6025,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
     AtomicFloat64AddEXT = 6034,
     LongConstantCompositeINTEL = 6089,
     LongConstantCompositeINTEL = 6089,
+    AtomicFloat16AddEXT = 6095,
+    DebugInfoModuleINTEL = 6114,
     Max = 0x7fffffff,
     Max = 0x7fffffff,
 };
 };
 
 
@@ -1118,6 +1129,31 @@ enum class FPOperationMode : unsigned {
     Max = 0x7fffffff,
     Max = 0x7fffffff,
 };
 };
 
 
+enum class QuantizationModes : unsigned {
+    TRN = 0,
+    TRN_ZERO = 1,
+    RND = 2,
+    RND_ZERO = 3,
+    RND_INF = 4,
+    RND_MIN_INF = 5,
+    RND_CONV = 6,
+    RND_CONV_ODD = 7,
+    Max = 0x7fffffff,
+};
+
+enum class OverflowModes : unsigned {
+    WRAP = 0,
+    SAT = 1,
+    SAT_ZERO = 2,
+    SAT_SYM = 3,
+    Max = 0x7fffffff,
+};
+
+enum class PackedVectorFormat : unsigned {
+    PackedVectorFormat4x8BitKHR = 0,
+    Max = 0x7fffffff,
+};
+
 enum class Op : unsigned {
 enum class Op : unsigned {
     OpNop = 0,
     OpNop = 0,
     OpUndef = 1,
     OpUndef = 1,
@@ -1475,6 +1511,12 @@ enum class Op : unsigned {
     OpConvertUToAccelerationStructureKHR = 4447,
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
     OpTerminateRayKHR = 4449,
+    OpSDotKHR = 4450,
+    OpUDotKHR = 4451,
+    OpSUDotKHR = 4452,
+    OpSDotAccSatKHR = 4453,
+    OpUDotAccSatKHR = 4454,
+    OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
     OpRayQueryTerminateKHR = 4474,
@@ -1671,7 +1713,59 @@ enum class Op : unsigned {
     OpVariableLengthArrayINTEL = 5818,
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
     OpReadPipeBlockingINTEL = 5946,
@@ -2063,6 +2157,12 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
+    case Op::OpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2255,7 +2355,59 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
+    case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;

+ 105 - 2
3rdparty/spirv-headers/include/spirv/unified1/spirv.json

@@ -71,7 +71,8 @@
                     "GLSL": 2,
                     "GLSL": 2,
                     "OpenCL_C": 3,
                     "OpenCL_C": 3,
                     "OpenCL_CPP": 4,
                     "OpenCL_CPP": 4,
-                    "HLSL": 5
+                    "HLSL": 5,
+                    "CPP_for_OpenCL": 6
                 }
                 }
             },
             },
             {
             {
@@ -169,6 +170,7 @@
                     "SubgroupsPerWorkgroupId": 37,
                     "SubgroupsPerWorkgroupId": 37,
                     "LocalSizeId": 38,
                     "LocalSizeId": 38,
                     "LocalSizeHintId": 39,
                     "LocalSizeHintId": 39,
+                    "SubgroupUniformControlFlowKHR": 4421,
                     "PostDepthCoverage": 4446,
                     "PostDepthCoverage": 4446,
                     "DenormPreserve": 4459,
                     "DenormPreserve": 4459,
                     "DenormFlushToZero": 4460,
                     "DenormFlushToZero": 4460,
@@ -1012,6 +1014,7 @@
                     "FPGAMemoryAttributesINTEL": 5824,
                     "FPGAMemoryAttributesINTEL": 5824,
                     "FPFastMathModeINTEL": 5837,
                     "FPFastMathModeINTEL": 5837,
                     "ArbitraryPrecisionIntegersINTEL": 5844,
                     "ArbitraryPrecisionIntegersINTEL": 5844,
+                    "ArbitraryPrecisionFloatingPointINTEL": 5845,
                     "UnstructuredLoopControlsINTEL": 5886,
                     "UnstructuredLoopControlsINTEL": 5886,
                     "FPGALoopControlsINTEL": 5888,
                     "FPGALoopControlsINTEL": 5888,
                     "KernelAttributesINTEL": 5892,
                     "KernelAttributesINTEL": 5892,
@@ -1020,13 +1023,21 @@
                     "FPGAClusterAttributesINTEL": 5904,
                     "FPGAClusterAttributesINTEL": 5904,
                     "LoopFuseINTEL": 5906,
                     "LoopFuseINTEL": 5906,
                     "FPGABufferLocationINTEL": 5920,
                     "FPGABufferLocationINTEL": 5920,
+                    "ArbitraryPrecisionFixedPointINTEL": 5922,
                     "USMStorageClassesINTEL": 5935,
                     "USMStorageClassesINTEL": 5935,
                     "IOPipesINTEL": 5943,
                     "IOPipesINTEL": 5943,
                     "BlockingPipesINTEL": 5945,
                     "BlockingPipesINTEL": 5945,
                     "FPGARegINTEL": 5948,
                     "FPGARegINTEL": 5948,
+                    "DotProductInputAllKHR": 6016,
+                    "DotProductInput4x8BitKHR": 6017,
+                    "DotProductInput4x8BitPackedKHR": 6018,
+                    "DotProductKHR": 6019,
+                    "BitInstructions": 6025,
                     "AtomicFloat32AddEXT": 6033,
                     "AtomicFloat32AddEXT": 6033,
                     "AtomicFloat64AddEXT": 6034,
                     "AtomicFloat64AddEXT": 6034,
-                    "LongConstantCompositeINTEL": 6089
+                    "LongConstantCompositeINTEL": 6089,
+                    "AtomicFloat16AddEXT": 6095,
+                    "DebugInfoModuleINTEL": 6114
                 }
                 }
             },
             },
             {
             {
@@ -1103,6 +1114,40 @@
                     "ALT": 1
                     "ALT": 1
                 }
                 }
             },
             },
+            {
+                "Name": "QuantizationModes",
+                "Type": "Value",
+                "Values":
+                {
+                    "TRN": 0,
+                    "TRN_ZERO": 1,
+                    "RND": 2,
+                    "RND_ZERO": 3,
+                    "RND_INF": 4,
+                    "RND_MIN_INF": 5,
+                    "RND_CONV": 6,
+                    "RND_CONV_ODD": 7
+                }
+            },
+            {
+                "Name": "OverflowModes",
+                "Type": "Value",
+                "Values":
+                {
+                    "WRAP": 0,
+                    "SAT": 1,
+                    "SAT_ZERO": 2,
+                    "SAT_SYM": 3
+                }
+            },
+            {
+                "Name": "PackedVectorFormat",
+                "Type": "Value",
+                "Values":
+                {
+                    "PackedVectorFormat4x8BitKHR": 0
+                }
+            },
             {
             {
                 "Name": "Op",
                 "Name": "Op",
                 "Type": "Value",
                 "Type": "Value",
@@ -1464,6 +1509,12 @@
                     "OpConvertUToAccelerationStructureKHR": 4447,
                     "OpConvertUToAccelerationStructureKHR": 4447,
                     "OpIgnoreIntersectionKHR": 4448,
                     "OpIgnoreIntersectionKHR": 4448,
                     "OpTerminateRayKHR": 4449,
                     "OpTerminateRayKHR": 4449,
+                    "OpSDotKHR": 4450,
+                    "OpUDotKHR": 4451,
+                    "OpSUDotKHR": 4452,
+                    "OpSDotAccSatKHR": 4453,
+                    "OpUDotAccSatKHR": 4454,
+                    "OpSUDotAccSatKHR": 4455,
                     "OpTypeRayQueryKHR": 4472,
                     "OpTypeRayQueryKHR": 4472,
                     "OpRayQueryInitializeKHR": 4473,
                     "OpRayQueryInitializeKHR": 4473,
                     "OpRayQueryTerminateKHR": 4474,
                     "OpRayQueryTerminateKHR": 4474,
@@ -1660,7 +1711,59 @@
                     "OpVariableLengthArrayINTEL": 5818,
                     "OpVariableLengthArrayINTEL": 5818,
                     "OpSaveMemoryINTEL": 5819,
                     "OpSaveMemoryINTEL": 5819,
                     "OpRestoreMemoryINTEL": 5820,
                     "OpRestoreMemoryINTEL": 5820,
+                    "OpArbitraryFloatSinCosPiINTEL": 5840,
+                    "OpArbitraryFloatCastINTEL": 5841,
+                    "OpArbitraryFloatCastFromIntINTEL": 5842,
+                    "OpArbitraryFloatCastToIntINTEL": 5843,
+                    "OpArbitraryFloatAddINTEL": 5846,
+                    "OpArbitraryFloatSubINTEL": 5847,
+                    "OpArbitraryFloatMulINTEL": 5848,
+                    "OpArbitraryFloatDivINTEL": 5849,
+                    "OpArbitraryFloatGTINTEL": 5850,
+                    "OpArbitraryFloatGEINTEL": 5851,
+                    "OpArbitraryFloatLTINTEL": 5852,
+                    "OpArbitraryFloatLEINTEL": 5853,
+                    "OpArbitraryFloatEQINTEL": 5854,
+                    "OpArbitraryFloatRecipINTEL": 5855,
+                    "OpArbitraryFloatRSqrtINTEL": 5856,
+                    "OpArbitraryFloatCbrtINTEL": 5857,
+                    "OpArbitraryFloatHypotINTEL": 5858,
+                    "OpArbitraryFloatSqrtINTEL": 5859,
+                    "OpArbitraryFloatLogINTEL": 5860,
+                    "OpArbitraryFloatLog2INTEL": 5861,
+                    "OpArbitraryFloatLog10INTEL": 5862,
+                    "OpArbitraryFloatLog1pINTEL": 5863,
+                    "OpArbitraryFloatExpINTEL": 5864,
+                    "OpArbitraryFloatExp2INTEL": 5865,
+                    "OpArbitraryFloatExp10INTEL": 5866,
+                    "OpArbitraryFloatExpm1INTEL": 5867,
+                    "OpArbitraryFloatSinINTEL": 5868,
+                    "OpArbitraryFloatCosINTEL": 5869,
+                    "OpArbitraryFloatSinCosINTEL": 5870,
+                    "OpArbitraryFloatSinPiINTEL": 5871,
+                    "OpArbitraryFloatCosPiINTEL": 5872,
+                    "OpArbitraryFloatASinINTEL": 5873,
+                    "OpArbitraryFloatASinPiINTEL": 5874,
+                    "OpArbitraryFloatACosINTEL": 5875,
+                    "OpArbitraryFloatACosPiINTEL": 5876,
+                    "OpArbitraryFloatATanINTEL": 5877,
+                    "OpArbitraryFloatATanPiINTEL": 5878,
+                    "OpArbitraryFloatATan2INTEL": 5879,
+                    "OpArbitraryFloatPowINTEL": 5880,
+                    "OpArbitraryFloatPowRINTEL": 5881,
+                    "OpArbitraryFloatPowNINTEL": 5882,
                     "OpLoopControlINTEL": 5887,
                     "OpLoopControlINTEL": 5887,
+                    "OpFixedSqrtINTEL": 5923,
+                    "OpFixedRecipINTEL": 5924,
+                    "OpFixedRsqrtINTEL": 5925,
+                    "OpFixedSinINTEL": 5926,
+                    "OpFixedCosINTEL": 5927,
+                    "OpFixedSinCosINTEL": 5928,
+                    "OpFixedSinPiINTEL": 5929,
+                    "OpFixedCosPiINTEL": 5930,
+                    "OpFixedSinCosPiINTEL": 5931,
+                    "OpFixedLogINTEL": 5932,
+                    "OpFixedExpINTEL": 5933,
                     "OpPtrCastToCrossWorkgroupINTEL": 5934,
                     "OpPtrCastToCrossWorkgroupINTEL": 5934,
                     "OpCrossWorkgroupCastToPtrINTEL": 5938,
                     "OpCrossWorkgroupCastToPtrINTEL": 5938,
                     "OpReadPipeBlockingINTEL": 5946,
                     "OpReadPipeBlockingINTEL": 5946,

+ 91 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.lua

@@ -56,6 +56,7 @@ spv = {
         OpenCL_C = 3,
         OpenCL_C = 3,
         OpenCL_CPP = 4,
         OpenCL_CPP = 4,
         HLSL = 5,
         HLSL = 5,
+        CPP_for_OpenCL = 6,
     },
     },
 
 
     ExecutionModel = {
     ExecutionModel = {
@@ -137,6 +138,7 @@ spv = {
         SubgroupsPerWorkgroupId = 37,
         SubgroupsPerWorkgroupId = 37,
         LocalSizeId = 38,
         LocalSizeId = 38,
         LocalSizeHintId = 39,
         LocalSizeHintId = 39,
+        SubgroupUniformControlFlowKHR = 4421,
         PostDepthCoverage = 4446,
         PostDepthCoverage = 4446,
         DenormPreserve = 4459,
         DenormPreserve = 4459,
         DenormFlushToZero = 4460,
         DenormFlushToZero = 4460,
@@ -987,6 +989,7 @@ spv = {
         FPGAMemoryAttributesINTEL = 5824,
         FPGAMemoryAttributesINTEL = 5824,
         FPFastMathModeINTEL = 5837,
         FPFastMathModeINTEL = 5837,
         ArbitraryPrecisionIntegersINTEL = 5844,
         ArbitraryPrecisionIntegersINTEL = 5844,
+        ArbitraryPrecisionFloatingPointINTEL = 5845,
         UnstructuredLoopControlsINTEL = 5886,
         UnstructuredLoopControlsINTEL = 5886,
         FPGALoopControlsINTEL = 5888,
         FPGALoopControlsINTEL = 5888,
         KernelAttributesINTEL = 5892,
         KernelAttributesINTEL = 5892,
@@ -995,13 +998,21 @@ spv = {
         FPGAClusterAttributesINTEL = 5904,
         FPGAClusterAttributesINTEL = 5904,
         LoopFuseINTEL = 5906,
         LoopFuseINTEL = 5906,
         FPGABufferLocationINTEL = 5920,
         FPGABufferLocationINTEL = 5920,
+        ArbitraryPrecisionFixedPointINTEL = 5922,
         USMStorageClassesINTEL = 5935,
         USMStorageClassesINTEL = 5935,
         IOPipesINTEL = 5943,
         IOPipesINTEL = 5943,
         BlockingPipesINTEL = 5945,
         BlockingPipesINTEL = 5945,
         FPGARegINTEL = 5948,
         FPGARegINTEL = 5948,
+        DotProductInputAllKHR = 6016,
+        DotProductInput4x8BitKHR = 6017,
+        DotProductInput4x8BitPackedKHR = 6018,
+        DotProductKHR = 6019,
+        BitInstructions = 6025,
         AtomicFloat32AddEXT = 6033,
         AtomicFloat32AddEXT = 6033,
         AtomicFloat64AddEXT = 6034,
         AtomicFloat64AddEXT = 6034,
         LongConstantCompositeINTEL = 6089,
         LongConstantCompositeINTEL = 6089,
+        AtomicFloat16AddEXT = 6095,
+        DebugInfoModuleINTEL = 6114,
     },
     },
 
 
     RayFlagsShift = {
     RayFlagsShift = {
@@ -1072,6 +1083,28 @@ spv = {
         ALT = 1,
         ALT = 1,
     },
     },
 
 
+    QuantizationModes = {
+        TRN = 0,
+        TRN_ZERO = 1,
+        RND = 2,
+        RND_ZERO = 3,
+        RND_INF = 4,
+        RND_MIN_INF = 5,
+        RND_CONV = 6,
+        RND_CONV_ODD = 7,
+    },
+
+    OverflowModes = {
+        WRAP = 0,
+        SAT = 1,
+        SAT_ZERO = 2,
+        SAT_SYM = 3,
+    },
+
+    PackedVectorFormat = {
+        PackedVectorFormat4x8BitKHR = 0,
+    },
+
     Op = {
     Op = {
         OpNop = 0,
         OpNop = 0,
         OpUndef = 1,
         OpUndef = 1,
@@ -1429,6 +1462,12 @@ spv = {
         OpConvertUToAccelerationStructureKHR = 4447,
         OpConvertUToAccelerationStructureKHR = 4447,
         OpIgnoreIntersectionKHR = 4448,
         OpIgnoreIntersectionKHR = 4448,
         OpTerminateRayKHR = 4449,
         OpTerminateRayKHR = 4449,
+        OpSDotKHR = 4450,
+        OpUDotKHR = 4451,
+        OpSUDotKHR = 4452,
+        OpSDotAccSatKHR = 4453,
+        OpUDotAccSatKHR = 4454,
+        OpSUDotAccSatKHR = 4455,
         OpTypeRayQueryKHR = 4472,
         OpTypeRayQueryKHR = 4472,
         OpRayQueryInitializeKHR = 4473,
         OpRayQueryInitializeKHR = 4473,
         OpRayQueryTerminateKHR = 4474,
         OpRayQueryTerminateKHR = 4474,
@@ -1625,7 +1664,59 @@ spv = {
         OpVariableLengthArrayINTEL = 5818,
         OpVariableLengthArrayINTEL = 5818,
         OpSaveMemoryINTEL = 5819,
         OpSaveMemoryINTEL = 5819,
         OpRestoreMemoryINTEL = 5820,
         OpRestoreMemoryINTEL = 5820,
+        OpArbitraryFloatSinCosPiINTEL = 5840,
+        OpArbitraryFloatCastINTEL = 5841,
+        OpArbitraryFloatCastFromIntINTEL = 5842,
+        OpArbitraryFloatCastToIntINTEL = 5843,
+        OpArbitraryFloatAddINTEL = 5846,
+        OpArbitraryFloatSubINTEL = 5847,
+        OpArbitraryFloatMulINTEL = 5848,
+        OpArbitraryFloatDivINTEL = 5849,
+        OpArbitraryFloatGTINTEL = 5850,
+        OpArbitraryFloatGEINTEL = 5851,
+        OpArbitraryFloatLTINTEL = 5852,
+        OpArbitraryFloatLEINTEL = 5853,
+        OpArbitraryFloatEQINTEL = 5854,
+        OpArbitraryFloatRecipINTEL = 5855,
+        OpArbitraryFloatRSqrtINTEL = 5856,
+        OpArbitraryFloatCbrtINTEL = 5857,
+        OpArbitraryFloatHypotINTEL = 5858,
+        OpArbitraryFloatSqrtINTEL = 5859,
+        OpArbitraryFloatLogINTEL = 5860,
+        OpArbitraryFloatLog2INTEL = 5861,
+        OpArbitraryFloatLog10INTEL = 5862,
+        OpArbitraryFloatLog1pINTEL = 5863,
+        OpArbitraryFloatExpINTEL = 5864,
+        OpArbitraryFloatExp2INTEL = 5865,
+        OpArbitraryFloatExp10INTEL = 5866,
+        OpArbitraryFloatExpm1INTEL = 5867,
+        OpArbitraryFloatSinINTEL = 5868,
+        OpArbitraryFloatCosINTEL = 5869,
+        OpArbitraryFloatSinCosINTEL = 5870,
+        OpArbitraryFloatSinPiINTEL = 5871,
+        OpArbitraryFloatCosPiINTEL = 5872,
+        OpArbitraryFloatASinINTEL = 5873,
+        OpArbitraryFloatASinPiINTEL = 5874,
+        OpArbitraryFloatACosINTEL = 5875,
+        OpArbitraryFloatACosPiINTEL = 5876,
+        OpArbitraryFloatATanINTEL = 5877,
+        OpArbitraryFloatATanPiINTEL = 5878,
+        OpArbitraryFloatATan2INTEL = 5879,
+        OpArbitraryFloatPowINTEL = 5880,
+        OpArbitraryFloatPowRINTEL = 5881,
+        OpArbitraryFloatPowNINTEL = 5882,
         OpLoopControlINTEL = 5887,
         OpLoopControlINTEL = 5887,
+        OpFixedSqrtINTEL = 5923,
+        OpFixedRecipINTEL = 5924,
+        OpFixedRsqrtINTEL = 5925,
+        OpFixedSinINTEL = 5926,
+        OpFixedCosINTEL = 5927,
+        OpFixedSinCosINTEL = 5928,
+        OpFixedSinPiINTEL = 5929,
+        OpFixedCosPiINTEL = 5930,
+        OpFixedSinCosPiINTEL = 5931,
+        OpFixedLogINTEL = 5932,
+        OpFixedExpINTEL = 5933,
         OpPtrCastToCrossWorkgroupINTEL = 5934,
         OpPtrCastToCrossWorkgroupINTEL = 5934,
         OpCrossWorkgroupCastToPtrINTEL = 5938,
         OpCrossWorkgroupCastToPtrINTEL = 5938,
         OpReadPipeBlockingINTEL = 5946,
         OpReadPipeBlockingINTEL = 5946,

+ 91 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.py

@@ -56,6 +56,7 @@ spv = {
         'OpenCL_C' : 3,
         'OpenCL_C' : 3,
         'OpenCL_CPP' : 4,
         'OpenCL_CPP' : 4,
         'HLSL' : 5,
         'HLSL' : 5,
+        'CPP_for_OpenCL' : 6,
     },
     },
 
 
     'ExecutionModel' : {
     'ExecutionModel' : {
@@ -137,6 +138,7 @@ spv = {
         'SubgroupsPerWorkgroupId' : 37,
         'SubgroupsPerWorkgroupId' : 37,
         'LocalSizeId' : 38,
         'LocalSizeId' : 38,
         'LocalSizeHintId' : 39,
         'LocalSizeHintId' : 39,
+        'SubgroupUniformControlFlowKHR' : 4421,
         'PostDepthCoverage' : 4446,
         'PostDepthCoverage' : 4446,
         'DenormPreserve' : 4459,
         'DenormPreserve' : 4459,
         'DenormFlushToZero' : 4460,
         'DenormFlushToZero' : 4460,
@@ -987,6 +989,7 @@ spv = {
         'FPGAMemoryAttributesINTEL' : 5824,
         'FPGAMemoryAttributesINTEL' : 5824,
         'FPFastMathModeINTEL' : 5837,
         'FPFastMathModeINTEL' : 5837,
         'ArbitraryPrecisionIntegersINTEL' : 5844,
         'ArbitraryPrecisionIntegersINTEL' : 5844,
+        'ArbitraryPrecisionFloatingPointINTEL' : 5845,
         'UnstructuredLoopControlsINTEL' : 5886,
         'UnstructuredLoopControlsINTEL' : 5886,
         'FPGALoopControlsINTEL' : 5888,
         'FPGALoopControlsINTEL' : 5888,
         'KernelAttributesINTEL' : 5892,
         'KernelAttributesINTEL' : 5892,
@@ -995,13 +998,21 @@ spv = {
         'FPGAClusterAttributesINTEL' : 5904,
         'FPGAClusterAttributesINTEL' : 5904,
         'LoopFuseINTEL' : 5906,
         'LoopFuseINTEL' : 5906,
         'FPGABufferLocationINTEL' : 5920,
         'FPGABufferLocationINTEL' : 5920,
+        'ArbitraryPrecisionFixedPointINTEL' : 5922,
         'USMStorageClassesINTEL' : 5935,
         'USMStorageClassesINTEL' : 5935,
         'IOPipesINTEL' : 5943,
         'IOPipesINTEL' : 5943,
         'BlockingPipesINTEL' : 5945,
         'BlockingPipesINTEL' : 5945,
         'FPGARegINTEL' : 5948,
         'FPGARegINTEL' : 5948,
+        'DotProductInputAllKHR' : 6016,
+        'DotProductInput4x8BitKHR' : 6017,
+        'DotProductInput4x8BitPackedKHR' : 6018,
+        'DotProductKHR' : 6019,
+        'BitInstructions' : 6025,
         'AtomicFloat32AddEXT' : 6033,
         'AtomicFloat32AddEXT' : 6033,
         'AtomicFloat64AddEXT' : 6034,
         'AtomicFloat64AddEXT' : 6034,
         'LongConstantCompositeINTEL' : 6089,
         'LongConstantCompositeINTEL' : 6089,
+        'AtomicFloat16AddEXT' : 6095,
+        'DebugInfoModuleINTEL' : 6114,
     },
     },
 
 
     'RayFlagsShift' : {
     'RayFlagsShift' : {
@@ -1072,6 +1083,28 @@ spv = {
         'ALT' : 1,
         'ALT' : 1,
     },
     },
 
 
+    'QuantizationModes' : {
+        'TRN' : 0,
+        'TRN_ZERO' : 1,
+        'RND' : 2,
+        'RND_ZERO' : 3,
+        'RND_INF' : 4,
+        'RND_MIN_INF' : 5,
+        'RND_CONV' : 6,
+        'RND_CONV_ODD' : 7,
+    },
+
+    'OverflowModes' : {
+        'WRAP' : 0,
+        'SAT' : 1,
+        'SAT_ZERO' : 2,
+        'SAT_SYM' : 3,
+    },
+
+    'PackedVectorFormat' : {
+        'PackedVectorFormat4x8BitKHR' : 0,
+    },
+
     'Op' : {
     'Op' : {
         'OpNop' : 0,
         'OpNop' : 0,
         'OpUndef' : 1,
         'OpUndef' : 1,
@@ -1429,6 +1462,12 @@ spv = {
         'OpConvertUToAccelerationStructureKHR' : 4447,
         'OpConvertUToAccelerationStructureKHR' : 4447,
         'OpIgnoreIntersectionKHR' : 4448,
         'OpIgnoreIntersectionKHR' : 4448,
         'OpTerminateRayKHR' : 4449,
         'OpTerminateRayKHR' : 4449,
+        'OpSDotKHR' : 4450,
+        'OpUDotKHR' : 4451,
+        'OpSUDotKHR' : 4452,
+        'OpSDotAccSatKHR' : 4453,
+        'OpUDotAccSatKHR' : 4454,
+        'OpSUDotAccSatKHR' : 4455,
         'OpTypeRayQueryKHR' : 4472,
         'OpTypeRayQueryKHR' : 4472,
         'OpRayQueryInitializeKHR' : 4473,
         'OpRayQueryInitializeKHR' : 4473,
         'OpRayQueryTerminateKHR' : 4474,
         'OpRayQueryTerminateKHR' : 4474,
@@ -1625,7 +1664,59 @@ spv = {
         'OpVariableLengthArrayINTEL' : 5818,
         'OpVariableLengthArrayINTEL' : 5818,
         'OpSaveMemoryINTEL' : 5819,
         'OpSaveMemoryINTEL' : 5819,
         'OpRestoreMemoryINTEL' : 5820,
         'OpRestoreMemoryINTEL' : 5820,
+        'OpArbitraryFloatSinCosPiINTEL' : 5840,
+        'OpArbitraryFloatCastINTEL' : 5841,
+        'OpArbitraryFloatCastFromIntINTEL' : 5842,
+        'OpArbitraryFloatCastToIntINTEL' : 5843,
+        'OpArbitraryFloatAddINTEL' : 5846,
+        'OpArbitraryFloatSubINTEL' : 5847,
+        'OpArbitraryFloatMulINTEL' : 5848,
+        'OpArbitraryFloatDivINTEL' : 5849,
+        'OpArbitraryFloatGTINTEL' : 5850,
+        'OpArbitraryFloatGEINTEL' : 5851,
+        'OpArbitraryFloatLTINTEL' : 5852,
+        'OpArbitraryFloatLEINTEL' : 5853,
+        'OpArbitraryFloatEQINTEL' : 5854,
+        'OpArbitraryFloatRecipINTEL' : 5855,
+        'OpArbitraryFloatRSqrtINTEL' : 5856,
+        'OpArbitraryFloatCbrtINTEL' : 5857,
+        'OpArbitraryFloatHypotINTEL' : 5858,
+        'OpArbitraryFloatSqrtINTEL' : 5859,
+        'OpArbitraryFloatLogINTEL' : 5860,
+        'OpArbitraryFloatLog2INTEL' : 5861,
+        'OpArbitraryFloatLog10INTEL' : 5862,
+        'OpArbitraryFloatLog1pINTEL' : 5863,
+        'OpArbitraryFloatExpINTEL' : 5864,
+        'OpArbitraryFloatExp2INTEL' : 5865,
+        'OpArbitraryFloatExp10INTEL' : 5866,
+        'OpArbitraryFloatExpm1INTEL' : 5867,
+        'OpArbitraryFloatSinINTEL' : 5868,
+        'OpArbitraryFloatCosINTEL' : 5869,
+        'OpArbitraryFloatSinCosINTEL' : 5870,
+        'OpArbitraryFloatSinPiINTEL' : 5871,
+        'OpArbitraryFloatCosPiINTEL' : 5872,
+        'OpArbitraryFloatASinINTEL' : 5873,
+        'OpArbitraryFloatASinPiINTEL' : 5874,
+        'OpArbitraryFloatACosINTEL' : 5875,
+        'OpArbitraryFloatACosPiINTEL' : 5876,
+        'OpArbitraryFloatATanINTEL' : 5877,
+        'OpArbitraryFloatATanPiINTEL' : 5878,
+        'OpArbitraryFloatATan2INTEL' : 5879,
+        'OpArbitraryFloatPowINTEL' : 5880,
+        'OpArbitraryFloatPowRINTEL' : 5881,
+        'OpArbitraryFloatPowNINTEL' : 5882,
         'OpLoopControlINTEL' : 5887,
         'OpLoopControlINTEL' : 5887,
+        'OpFixedSqrtINTEL' : 5923,
+        'OpFixedRecipINTEL' : 5924,
+        'OpFixedRsqrtINTEL' : 5925,
+        'OpFixedSinINTEL' : 5926,
+        'OpFixedCosINTEL' : 5927,
+        'OpFixedSinCosINTEL' : 5928,
+        'OpFixedSinPiINTEL' : 5929,
+        'OpFixedCosPiINTEL' : 5930,
+        'OpFixedSinCosPiINTEL' : 5931,
+        'OpFixedLogINTEL' : 5932,
+        'OpFixedExpINTEL' : 5933,
         'OpPtrCastToCrossWorkgroupINTEL' : 5934,
         'OpPtrCastToCrossWorkgroupINTEL' : 5934,
         'OpCrossWorkgroupCastToPtrINTEL' : 5938,
         'OpCrossWorkgroupCastToPtrINTEL' : 5938,
         'OpReadPipeBlockingINTEL' : 5946,
         'OpReadPipeBlockingINTEL' : 5946,

+ 94 - 0
3rdparty/spirv-headers/include/spirv/unified1/spv.d

@@ -64,6 +64,7 @@ enum SourceLanguage : uint
     OpenCL_C = 3,
     OpenCL_C = 3,
     OpenCL_CPP = 4,
     OpenCL_CPP = 4,
     HLSL = 5,
     HLSL = 5,
+    CPP_for_OpenCL = 6,
 }
 }
 
 
 enum ExecutionModel : uint
 enum ExecutionModel : uint
@@ -149,6 +150,7 @@ enum ExecutionMode : uint
     SubgroupsPerWorkgroupId = 37,
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
     LocalSizeHintId = 39,
+    SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
     DenormPreserve = 4459,
     DenormFlushToZero = 4460,
     DenormFlushToZero = 4460,
@@ -1032,6 +1034,7 @@ enum Capability : uint
     FPGAMemoryAttributesINTEL = 5824,
     FPGAMemoryAttributesINTEL = 5824,
     FPFastMathModeINTEL = 5837,
     FPFastMathModeINTEL = 5837,
     ArbitraryPrecisionIntegersINTEL = 5844,
     ArbitraryPrecisionIntegersINTEL = 5844,
+    ArbitraryPrecisionFloatingPointINTEL = 5845,
     UnstructuredLoopControlsINTEL = 5886,
     UnstructuredLoopControlsINTEL = 5886,
     FPGALoopControlsINTEL = 5888,
     FPGALoopControlsINTEL = 5888,
     KernelAttributesINTEL = 5892,
     KernelAttributesINTEL = 5892,
@@ -1040,13 +1043,21 @@ enum Capability : uint
     FPGAClusterAttributesINTEL = 5904,
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
     LoopFuseINTEL = 5906,
     FPGABufferLocationINTEL = 5920,
     FPGABufferLocationINTEL = 5920,
+    ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
     USMStorageClassesINTEL = 5935,
     IOPipesINTEL = 5943,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
     FPGARegINTEL = 5948,
+    DotProductInputAllKHR = 6016,
+    DotProductInput4x8BitKHR = 6017,
+    DotProductInput4x8BitPackedKHR = 6018,
+    DotProductKHR = 6019,
+    BitInstructions = 6025,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
     AtomicFloat64AddEXT = 6034,
     LongConstantCompositeINTEL = 6089,
     LongConstantCompositeINTEL = 6089,
+    AtomicFloat16AddEXT = 6095,
+    DebugInfoModuleINTEL = 6114,
 }
 }
 
 
 enum RayFlagsShift : uint
 enum RayFlagsShift : uint
@@ -1126,6 +1137,31 @@ enum FPOperationMode : uint
     ALT = 1,
     ALT = 1,
 }
 }
 
 
+enum QuantizationModes : uint
+{
+    TRN = 0,
+    TRN_ZERO = 1,
+    RND = 2,
+    RND_ZERO = 3,
+    RND_INF = 4,
+    RND_MIN_INF = 5,
+    RND_CONV = 6,
+    RND_CONV_ODD = 7,
+}
+
+enum OverflowModes : uint
+{
+    WRAP = 0,
+    SAT = 1,
+    SAT_ZERO = 2,
+    SAT_SYM = 3,
+}
+
+enum PackedVectorFormat : uint
+{
+    PackedVectorFormat4x8BitKHR = 0,
+}
+
 enum Op : uint
 enum Op : uint
 {
 {
     OpNop = 0,
     OpNop = 0,
@@ -1484,6 +1520,12 @@ enum Op : uint
     OpConvertUToAccelerationStructureKHR = 4447,
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
     OpTerminateRayKHR = 4449,
+    OpSDotKHR = 4450,
+    OpUDotKHR = 4451,
+    OpSUDotKHR = 4452,
+    OpSDotAccSatKHR = 4453,
+    OpUDotAccSatKHR = 4454,
+    OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
     OpRayQueryTerminateKHR = 4474,
@@ -1680,7 +1722,59 @@ enum Op : uint
     OpVariableLengthArrayINTEL = 5818,
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
     OpReadPipeBlockingINTEL = 5946,

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff