Procházet zdrojové kódy

Updated spirv-headers.

Бранимир Караџић před 8 měsíci
rodič
revize
2c99e5f623

+ 126 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.core.grammar.json

@@ -128,6 +128,10 @@
       "tag"     : "Non-Uniform",
       "heading" : "Non-Uniform Instructions"
     },
+    {
+      "tag"     : "Tensor",
+      "heading" : "Tensor Instructions"
+    },
     {
       "tag"     : "Reserved",
       "heading" : "Reserved Instructions"
@@ -4433,6 +4437,59 @@
       "capabilities" : [ "TileImageStencilReadAccessEXT" ],
       "version" : "None"
     },
+    {
+      "opname" : "OpTypeTensorARM",
+      "class"  : "Type-Declaration",
+      "opcode" : 4163,
+      "operands" : [
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "Element Type" },
+        { "kind" : "IdRef",        "name" : "Rank",  "quantifier" : "?" },
+        { "kind" : "IdRef",        "name" : "Shape", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TensorsARM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpTensorReadARM",
+      "class"  : "Tensor",
+      "opcode" : 4164,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "Tensor" },
+        { "kind" : "IdRef",        "name" : "Coordinates" },
+        { "kind" : "TensorOperands", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TensorsARM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpTensorWriteARM",
+      "class"  : "Tensor",
+      "opcode" : 4165,
+      "operands" : [
+        { "kind" : "IdRef",        "name" : "Tensor" },
+        { "kind" : "IdRef",        "name" : "Coordinates" },
+        { "kind" : "IdRef",        "name" : "Object" },
+        { "kind" : "TensorOperands", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TensorsARM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpTensorQuerySizeARM",
+      "class"  : "Tensor",
+      "opcode" : 4166,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "Tensor" },
+        { "kind" : "IdRef",        "name" : "Dimension" }
+      ],
+      "capabilities" : [ "TensorsARM" ],
+      "version" : "None"
+    },
     {
       "opname" : "OpTerminateInvocation",
       "class"  : "Control-Flow",
@@ -16148,6 +16205,24 @@
           "extensions" : [ "SPV_EXT_shader_tile_image" ],
           "version" : "None"
         },
+        {
+          "enumerant" : "TensorsARM",
+          "value" : 4174,
+          "extensions" : [ "SPV_ARM_tensors"],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StorageTensorArrayDynamicIndexingARM",
+          "value" : 4175,
+          "extensions" : [ "SPV_ARM_tensors"],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StorageTensorArrayNonUniformIndexingARM",
+          "value" : 4176,
+          "extensions" : [ "SPV_ARM_tensors"],
+          "version" : "None"
+        },
         {
           "enumerant" : "CooperativeMatrixLayoutsARM",
           "value" : 4201,
@@ -17991,6 +18066,57 @@
       "category" : "Composite",
       "kind" : "PairIdRefIdRef",
       "bases" : [ "IdRef", "IdRef" ]
+    },
+    {
+      "category" : "BitEnum",
+      "kind" : "TensorOperands",
+      "enumerants" : [
+        {
+          "enumerant" : "NoneARM",
+          "value" : "0x0000",
+          "capabilities" : [ "TensorsARM" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NontemporalARM",
+          "value" : "0x0001",
+          "capabilities" : [ "TensorsARM" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "OutOfBoundsValueARM",
+          "value" : "0x0002",
+          "capabilities" : [ "TensorsARM" ],
+          "parameters" : [
+            { "kind" : "IdRef" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MakeElementAvailableARM",
+          "value" : "0x0004",
+          "capabilities" : [ "TensorsARM" ],
+          "parameters" : [
+            { "kind" : "IdRef" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MakeElementVisibleARM",
+          "value" : "0x0008",
+          "capabilities" : [ "TensorsARM" ],
+          "parameters" : [
+            { "kind" : "IdRef" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NonPrivateElementARM",
+          "value" : "0x0010",
+          "capabilities" : [ "TensorsARM" ],
+          "version" : "None"
+        }
+      ]
     }
   ]
 }

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

@@ -1079,6 +1079,9 @@ typedef enum SpvCapability_ {
     SpvCapabilityTileImageColorReadAccessEXT = 4166,
     SpvCapabilityTileImageDepthReadAccessEXT = 4167,
     SpvCapabilityTileImageStencilReadAccessEXT = 4168,
+    SpvCapabilityTensorsARM = 4174,
+    SpvCapabilityStorageTensorArrayDynamicIndexingARM = 4175,
+    SpvCapabilityStorageTensorArrayNonUniformIndexingARM = 4176,
     SpvCapabilityCooperativeMatrixLayoutsARM = 4201,
     SpvCapabilityFragmentShadingRateKHR = 4422,
     SpvCapabilitySubgroupBallotKHR = 4423,
@@ -1472,6 +1475,24 @@ typedef enum SpvTensorAddressingOperandsMask_ {
     SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
 } SpvTensorAddressingOperandsMask;
 
+typedef enum SpvTensorOperandsShift_ {
+    SpvTensorOperandsNontemporalARMShift = 0,
+    SpvTensorOperandsOutOfBoundsValueARMShift = 1,
+    SpvTensorOperandsMakeElementAvailableARMShift = 2,
+    SpvTensorOperandsMakeElementVisibleARMShift = 3,
+    SpvTensorOperandsNonPrivateElementARMShift = 4,
+    SpvTensorOperandsMax = 0x7fffffff,
+} SpvTensorOperandsShift;
+
+typedef enum SpvTensorOperandsMask_ {
+    SpvTensorOperandsMaskNone = 0,
+    SpvTensorOperandsNontemporalARMMask = 0x00000001,
+    SpvTensorOperandsOutOfBoundsValueARMMask = 0x00000002,
+    SpvTensorOperandsMakeElementAvailableARMMask = 0x00000004,
+    SpvTensorOperandsMakeElementVisibleARMMask = 0x00000008,
+    SpvTensorOperandsNonPrivateElementARMMask = 0x00000010,
+} SpvTensorOperandsMask;
+
 typedef enum SpvInitializationModeQualifier_ {
     SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
     SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
@@ -1936,6 +1957,10 @@ typedef enum SpvOp_ {
     SpvOpColorAttachmentReadEXT = 4160,
     SpvOpDepthAttachmentReadEXT = 4161,
     SpvOpStencilAttachmentReadEXT = 4162,
+    SpvOpTypeTensorARM = 4163,
+    SpvOpTensorReadARM = 4164,
+    SpvOpTensorWriteARM = 4165,
+    SpvOpTensorQuerySizeARM = 4166,
     SpvOpTerminateInvocation = 4416,
     SpvOpTypeUntypedPointerKHR = 4417,
     SpvOpUntypedVariableKHR = 4418,
@@ -2752,6 +2777,10 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
     case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case SpvOpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
+    case SpvOpTensorReadARM: *hasResult = true; *hasResultType = true; break;
+    case SpvOpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
+    case SpvOpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
     case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
     case SpvOpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
     case SpvOpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
@@ -3973,6 +4002,9 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
     case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
     case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
     case SpvCapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
+    case SpvCapabilityTensorsARM: return "TensorsARM";
+    case SpvCapabilityStorageTensorArrayDynamicIndexingARM: return "StorageTensorArrayDynamicIndexingARM";
+    case SpvCapabilityStorageTensorArrayNonUniformIndexingARM: return "StorageTensorArrayNonUniformIndexingARM";
     case SpvCapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
     case SpvCapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
     case SpvCapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
@@ -4701,6 +4733,10 @@ inline const char* SpvOpToString(SpvOp value) {
     case SpvOpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
     case SpvOpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
     case SpvOpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
+    case SpvOpTypeTensorARM: return "OpTypeTensorARM";
+    case SpvOpTensorReadARM: return "OpTensorReadARM";
+    case SpvOpTensorWriteARM: return "OpTensorWriteARM";
+    case SpvOpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
     case SpvOpTerminateInvocation: return "OpTerminateInvocation";
     case SpvOpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
     case SpvOpUntypedVariableKHR: return "OpUntypedVariableKHR";

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

@@ -1075,6 +1075,9 @@ enum class Capability : unsigned {
     TileImageColorReadAccessEXT = 4166,
     TileImageDepthReadAccessEXT = 4167,
     TileImageStencilReadAccessEXT = 4168,
+    TensorsARM = 4174,
+    StorageTensorArrayDynamicIndexingARM = 4175,
+    StorageTensorArrayNonUniformIndexingARM = 4176,
     CooperativeMatrixLayoutsARM = 4201,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
@@ -1468,6 +1471,24 @@ enum class TensorAddressingOperandsMask : unsigned {
     DecodeFunc = 0x00000002,
 };
 
+enum class TensorOperandsShift : unsigned {
+    NontemporalARM = 0,
+    OutOfBoundsValueARM = 1,
+    MakeElementAvailableARM = 2,
+    MakeElementVisibleARM = 3,
+    NonPrivateElementARM = 4,
+    Max = 0x7fffffff,
+};
+
+enum class TensorOperandsMask : unsigned {
+    MaskNone = 0,
+    NontemporalARM = 0x00000001,
+    OutOfBoundsValueARM = 0x00000002,
+    MakeElementAvailableARM = 0x00000004,
+    MakeElementVisibleARM = 0x00000008,
+    NonPrivateElementARM = 0x00000010,
+};
+
 enum class InitializationModeQualifier : unsigned {
     InitOnDeviceReprogramINTEL = 0,
     InitOnDeviceResetINTEL = 1,
@@ -1932,6 +1953,10 @@ enum class Op : unsigned {
     OpColorAttachmentReadEXT = 4160,
     OpDepthAttachmentReadEXT = 4161,
     OpStencilAttachmentReadEXT = 4162,
+    OpTypeTensorARM = 4163,
+    OpTensorReadARM = 4164,
+    OpTensorWriteARM = 4165,
+    OpTensorQuerySizeARM = 4166,
     OpTerminateInvocation = 4416,
     OpTypeUntypedPointerKHR = 4417,
     OpUntypedVariableKHR = 4418,
@@ -2748,6 +2773,10 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case Op::OpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
+    case Op::OpTensorReadARM: *hasResult = true; *hasResultType = true; break;
+    case Op::OpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
+    case Op::OpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
     case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
     case Op::OpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
     case Op::OpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
@@ -3969,6 +3998,9 @@ inline const char* CapabilityToString(Capability value) {
     case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
     case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
     case Capability::TileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
+    case Capability::TensorsARM: return "TensorsARM";
+    case Capability::StorageTensorArrayDynamicIndexingARM: return "StorageTensorArrayDynamicIndexingARM";
+    case Capability::StorageTensorArrayNonUniformIndexingARM: return "StorageTensorArrayNonUniformIndexingARM";
     case Capability::CooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
     case Capability::FragmentShadingRateKHR: return "FragmentShadingRateKHR";
     case Capability::SubgroupBallotKHR: return "SubgroupBallotKHR";
@@ -4697,6 +4729,10 @@ inline const char* OpToString(Op value) {
     case Op::OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
     case Op::OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
     case Op::OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
+    case Op::OpTypeTensorARM: return "OpTypeTensorARM";
+    case Op::OpTensorReadARM: return "OpTensorReadARM";
+    case Op::OpTensorWriteARM: return "OpTensorWriteARM";
+    case Op::OpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
     case Op::OpTerminateInvocation: return "OpTerminateInvocation";
     case Op::OpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
     case Op::OpUntypedVariableKHR: return "OpUntypedVariableKHR";
@@ -5204,6 +5240,10 @@ constexpr TensorAddressingOperandsMask operator|(TensorAddressingOperandsMask a,
 constexpr TensorAddressingOperandsMask operator&(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) & unsigned(b)); }
 constexpr TensorAddressingOperandsMask operator^(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) ^ unsigned(b)); }
 constexpr TensorAddressingOperandsMask operator~(TensorAddressingOperandsMask a) { return TensorAddressingOperandsMask(~unsigned(a)); }
+constexpr TensorOperandsMask operator|(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) | unsigned(b)); }
+constexpr TensorOperandsMask operator&(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) & unsigned(b)); }
+constexpr TensorOperandsMask operator^(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) ^ unsigned(b)); }
+constexpr TensorOperandsMask operator~(TensorOperandsMask a) { return TensorOperandsMask(~unsigned(a)); }
 constexpr MatrixMultiplyAccumulateOperandsMask operator|(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) | unsigned(b)); }
 constexpr MatrixMultiplyAccumulateOperandsMask operator&(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) & unsigned(b)); }
 constexpr MatrixMultiplyAccumulateOperandsMask operator^(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) ^ unsigned(b)); }

+ 19 - 0
3rdparty/spirv-headers/include/spirv/unified1/spirv.json

@@ -1051,6 +1051,9 @@
                     "TileImageColorReadAccessEXT": 4166,
                     "TileImageDepthReadAccessEXT": 4167,
                     "TileImageStencilReadAccessEXT": 4168,
+                    "TensorsARM": 4174,
+                    "StorageTensorArrayDynamicIndexingARM": 4175,
+                    "StorageTensorArrayNonUniformIndexingARM": 4176,
                     "CooperativeMatrixLayoutsARM": 4201,
                     "FragmentShadingRateKHR": 4422,
                     "SubgroupBallotKHR": 4423,
@@ -1445,6 +1448,18 @@
                     "DecodeFunc": 1
                 }
             },
+            {
+                "Name": "TensorOperands",
+                "Type": "Bit",
+                "Values":
+                {
+                    "NontemporalARM": 0,
+                    "OutOfBoundsValueARM": 1,
+                    "MakeElementAvailableARM": 2,
+                    "MakeElementVisibleARM": 3,
+                    "NonPrivateElementARM": 4
+                }
+            },
             {
                 "Name": "InitializationModeQualifier",
                 "Type": "Value",
@@ -1919,6 +1934,10 @@
                     "OpColorAttachmentReadEXT": 4160,
                     "OpDepthAttachmentReadEXT": 4161,
                     "OpStencilAttachmentReadEXT": 4162,
+                    "OpTypeTensorARM": 4163,
+                    "OpTensorReadARM": 4164,
+                    "OpTensorWriteARM": 4165,
+                    "OpTensorQuerySizeARM": 4166,
                     "OpTerminateInvocation": 4416,
                     "OpTypeUntypedPointerKHR": 4417,
                     "OpUntypedVariableKHR": 4418,