1 /* 2 ** Copyright (c) 2014-2018 The Khronos Group Inc. 3 ** 4 ** Permission is hereby granted, free of charge, to any person obtaining a copy 5 ** of this software and/or associated documentation files (the "Materials"), 6 ** to deal in the Materials without restriction, including without limitation 7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 ** and/or sell copies of the Materials, and to permit persons to whom the 9 ** Materials are furnished to do so, subject to the following conditions: 10 ** 11 ** The above copyright notice and this permission notice shall be included in 12 ** all copies or substantial portions of the Materials. 13 ** 14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 17 ** 18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 24 ** IN THE MATERIALS. 25 */ 26 27 /* 28 ** This header is automatically generated by the same tool that creates 29 ** the Binary Section of the SPIR-V specification. 30 */ 31 32 /* 33 ** Enumeration tokens for SPIR-V, in various styles: 34 ** C, C++, C++11, JSON, Lua, Python, C# 35 ** 36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL 37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL 38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL 39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL 40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] 41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace, e.g.: Spv.Specification.SourceLanguage.GLSL 42 ** 43 ** Some tokens act like mask values, which can be OR'd together, 44 ** while others are mutually exclusive. The mask-like ones have 45 ** "Mask" in their name, and a parallel enum that has the shift 46 ** amount (1 << x) for each corresponding enumerant. 47 */ 48 49 #ifndef spirv_H 50 #define spirv_H 51 52 typedef unsigned int SpvId; 53 54 #define SPV_VERSION 0x10300 55 #define SPV_REVISION 6 56 57 static const unsigned int SpvMagicNumber = 0x07230203; 58 static const unsigned int SpvVersion = 0x00010300; 59 static const unsigned int SpvRevision = 6; 60 static const unsigned int SpvOpCodeMask = 0xffff; 61 static const unsigned int SpvWordCountShift = 16; 62 63 typedef enum SpvSourceLanguage_ { 64 SpvSourceLanguageUnknown = 0, 65 SpvSourceLanguageESSL = 1, 66 SpvSourceLanguageGLSL = 2, 67 SpvSourceLanguageOpenCL_C = 3, 68 SpvSourceLanguageOpenCL_CPP = 4, 69 SpvSourceLanguageHLSL = 5, 70 SpvSourceLanguageMax = 0x7fffffff, 71 } SpvSourceLanguage; 72 73 typedef enum SpvExecutionModel_ { 74 SpvExecutionModelVertex = 0, 75 SpvExecutionModelTessellationControl = 1, 76 SpvExecutionModelTessellationEvaluation = 2, 77 SpvExecutionModelGeometry = 3, 78 SpvExecutionModelFragment = 4, 79 SpvExecutionModelGLCompute = 5, 80 SpvExecutionModelKernel = 6, 81 SpvExecutionModelTaskNV = 5267, 82 SpvExecutionModelMeshNV = 5268, 83 SpvExecutionModelRayGenerationNV = 5313, 84 SpvExecutionModelIntersectionNV = 5314, 85 SpvExecutionModelAnyHitNV = 5315, 86 SpvExecutionModelClosestHitNV = 5316, 87 SpvExecutionModelMissNV = 5317, 88 SpvExecutionModelCallableNV = 5318, 89 SpvExecutionModelMax = 0x7fffffff, 90 } SpvExecutionModel; 91 92 typedef enum SpvAddressingModel_ { 93 SpvAddressingModelLogical = 0, 94 SpvAddressingModelPhysical32 = 1, 95 SpvAddressingModelPhysical64 = 2, 96 SpvAddressingModelMax = 0x7fffffff, 97 } SpvAddressingModel; 98 99 typedef enum SpvMemoryModel_ { 100 SpvMemoryModelSimple = 0, 101 SpvMemoryModelGLSL450 = 1, 102 SpvMemoryModelOpenCL = 2, 103 SpvMemoryModelVulkanKHR = 3, 104 SpvMemoryModelMax = 0x7fffffff, 105 } SpvMemoryModel; 106 107 typedef enum SpvExecutionMode_ { 108 SpvExecutionModeInvocations = 0, 109 SpvExecutionModeSpacingEqual = 1, 110 SpvExecutionModeSpacingFractionalEven = 2, 111 SpvExecutionModeSpacingFractionalOdd = 3, 112 SpvExecutionModeVertexOrderCw = 4, 113 SpvExecutionModeVertexOrderCcw = 5, 114 SpvExecutionModePixelCenterInteger = 6, 115 SpvExecutionModeOriginUpperLeft = 7, 116 SpvExecutionModeOriginLowerLeft = 8, 117 SpvExecutionModeEarlyFragmentTests = 9, 118 SpvExecutionModePointMode = 10, 119 SpvExecutionModeXfb = 11, 120 SpvExecutionModeDepthReplacing = 12, 121 SpvExecutionModeDepthGreater = 14, 122 SpvExecutionModeDepthLess = 15, 123 SpvExecutionModeDepthUnchanged = 16, 124 SpvExecutionModeLocalSize = 17, 125 SpvExecutionModeLocalSizeHint = 18, 126 SpvExecutionModeInputPoints = 19, 127 SpvExecutionModeInputLines = 20, 128 SpvExecutionModeInputLinesAdjacency = 21, 129 SpvExecutionModeTriangles = 22, 130 SpvExecutionModeInputTrianglesAdjacency = 23, 131 SpvExecutionModeQuads = 24, 132 SpvExecutionModeIsolines = 25, 133 SpvExecutionModeOutputVertices = 26, 134 SpvExecutionModeOutputPoints = 27, 135 SpvExecutionModeOutputLineStrip = 28, 136 SpvExecutionModeOutputTriangleStrip = 29, 137 SpvExecutionModeVecTypeHint = 30, 138 SpvExecutionModeContractionOff = 31, 139 SpvExecutionModeInitializer = 33, 140 SpvExecutionModeFinalizer = 34, 141 SpvExecutionModeSubgroupSize = 35, 142 SpvExecutionModeSubgroupsPerWorkgroup = 36, 143 SpvExecutionModeSubgroupsPerWorkgroupId = 37, 144 SpvExecutionModeLocalSizeId = 38, 145 SpvExecutionModeLocalSizeHintId = 39, 146 SpvExecutionModePostDepthCoverage = 4446, 147 SpvExecutionModeDenormPreserve = 4459, 148 SpvExecutionModeDenormFlushToZero = 4460, 149 SpvExecutionModeSignedZeroInfNanPreserve = 4461, 150 SpvExecutionModeRoundingModeRTE = 4462, 151 SpvExecutionModeRoundingModeRTZ = 4463, 152 SpvExecutionModeStencilRefReplacingEXT = 5027, 153 SpvExecutionModeOutputLinesNV = 5269, 154 SpvExecutionModeOutputPrimitivesNV = 5270, 155 SpvExecutionModeDerivativeGroupQuadsNV = 5289, 156 SpvExecutionModeDerivativeGroupLinearNV = 5290, 157 SpvExecutionModeOutputTrianglesNV = 5298, 158 SpvExecutionModeMax = 0x7fffffff, 159 } SpvExecutionMode; 160 161 typedef enum SpvStorageClass_ { 162 SpvStorageClassUniformConstant = 0, 163 SpvStorageClassInput = 1, 164 SpvStorageClassUniform = 2, 165 SpvStorageClassOutput = 3, 166 SpvStorageClassWorkgroup = 4, 167 SpvStorageClassCrossWorkgroup = 5, 168 SpvStorageClassPrivate = 6, 169 SpvStorageClassFunction = 7, 170 SpvStorageClassGeneric = 8, 171 SpvStorageClassPushConstant = 9, 172 SpvStorageClassAtomicCounter = 10, 173 SpvStorageClassImage = 11, 174 SpvStorageClassStorageBuffer = 12, 175 SpvStorageClassCallableDataNV = 5328, 176 SpvStorageClassIncomingCallableDataNV = 5329, 177 SpvStorageClassRayPayloadNV = 5338, 178 SpvStorageClassHitAttributeNV = 5339, 179 SpvStorageClassIncomingRayPayloadNV = 5342, 180 SpvStorageClassShaderRecordBufferNV = 5343, 181 SpvStorageClassMax = 0x7fffffff, 182 } SpvStorageClass; 183 184 typedef enum SpvDim_ { 185 SpvDim1D = 0, 186 SpvDim2D = 1, 187 SpvDim3D = 2, 188 SpvDimCube = 3, 189 SpvDimRect = 4, 190 SpvDimBuffer = 5, 191 SpvDimSubpassData = 6, 192 SpvDimMax = 0x7fffffff, 193 } SpvDim; 194 195 typedef enum SpvSamplerAddressingMode_ { 196 SpvSamplerAddressingModeNone = 0, 197 SpvSamplerAddressingModeClampToEdge = 1, 198 SpvSamplerAddressingModeClamp = 2, 199 SpvSamplerAddressingModeRepeat = 3, 200 SpvSamplerAddressingModeRepeatMirrored = 4, 201 SpvSamplerAddressingModeMax = 0x7fffffff, 202 } SpvSamplerAddressingMode; 203 204 typedef enum SpvSamplerFilterMode_ { 205 SpvSamplerFilterModeNearest = 0, 206 SpvSamplerFilterModeLinear = 1, 207 SpvSamplerFilterModeMax = 0x7fffffff, 208 } SpvSamplerFilterMode; 209 210 typedef enum SpvImageFormat_ { 211 SpvImageFormatUnknown = 0, 212 SpvImageFormatRgba32f = 1, 213 SpvImageFormatRgba16f = 2, 214 SpvImageFormatR32f = 3, 215 SpvImageFormatRgba8 = 4, 216 SpvImageFormatRgba8Snorm = 5, 217 SpvImageFormatRg32f = 6, 218 SpvImageFormatRg16f = 7, 219 SpvImageFormatR11fG11fB10f = 8, 220 SpvImageFormatR16f = 9, 221 SpvImageFormatRgba16 = 10, 222 SpvImageFormatRgb10A2 = 11, 223 SpvImageFormatRg16 = 12, 224 SpvImageFormatRg8 = 13, 225 SpvImageFormatR16 = 14, 226 SpvImageFormatR8 = 15, 227 SpvImageFormatRgba16Snorm = 16, 228 SpvImageFormatRg16Snorm = 17, 229 SpvImageFormatRg8Snorm = 18, 230 SpvImageFormatR16Snorm = 19, 231 SpvImageFormatR8Snorm = 20, 232 SpvImageFormatRgba32i = 21, 233 SpvImageFormatRgba16i = 22, 234 SpvImageFormatRgba8i = 23, 235 SpvImageFormatR32i = 24, 236 SpvImageFormatRg32i = 25, 237 SpvImageFormatRg16i = 26, 238 SpvImageFormatRg8i = 27, 239 SpvImageFormatR16i = 28, 240 SpvImageFormatR8i = 29, 241 SpvImageFormatRgba32ui = 30, 242 SpvImageFormatRgba16ui = 31, 243 SpvImageFormatRgba8ui = 32, 244 SpvImageFormatR32ui = 33, 245 SpvImageFormatRgb10a2ui = 34, 246 SpvImageFormatRg32ui = 35, 247 SpvImageFormatRg16ui = 36, 248 SpvImageFormatRg8ui = 37, 249 SpvImageFormatR16ui = 38, 250 SpvImageFormatR8ui = 39, 251 SpvImageFormatMax = 0x7fffffff, 252 } SpvImageFormat; 253 254 typedef enum SpvImageChannelOrder_ { 255 SpvImageChannelOrderR = 0, 256 SpvImageChannelOrderA = 1, 257 SpvImageChannelOrderRG = 2, 258 SpvImageChannelOrderRA = 3, 259 SpvImageChannelOrderRGB = 4, 260 SpvImageChannelOrderRGBA = 5, 261 SpvImageChannelOrderBGRA = 6, 262 SpvImageChannelOrderARGB = 7, 263 SpvImageChannelOrderIntensity = 8, 264 SpvImageChannelOrderLuminance = 9, 265 SpvImageChannelOrderRx = 10, 266 SpvImageChannelOrderRGx = 11, 267 SpvImageChannelOrderRGBx = 12, 268 SpvImageChannelOrderDepth = 13, 269 SpvImageChannelOrderDepthStencil = 14, 270 SpvImageChannelOrdersRGB = 15, 271 SpvImageChannelOrdersRGBx = 16, 272 SpvImageChannelOrdersRGBA = 17, 273 SpvImageChannelOrdersBGRA = 18, 274 SpvImageChannelOrderABGR = 19, 275 SpvImageChannelOrderMax = 0x7fffffff, 276 } SpvImageChannelOrder; 277 278 typedef enum SpvImageChannelDataType_ { 279 SpvImageChannelDataTypeSnormInt8 = 0, 280 SpvImageChannelDataTypeSnormInt16 = 1, 281 SpvImageChannelDataTypeUnormInt8 = 2, 282 SpvImageChannelDataTypeUnormInt16 = 3, 283 SpvImageChannelDataTypeUnormShort565 = 4, 284 SpvImageChannelDataTypeUnormShort555 = 5, 285 SpvImageChannelDataTypeUnormInt101010 = 6, 286 SpvImageChannelDataTypeSignedInt8 = 7, 287 SpvImageChannelDataTypeSignedInt16 = 8, 288 SpvImageChannelDataTypeSignedInt32 = 9, 289 SpvImageChannelDataTypeUnsignedInt8 = 10, 290 SpvImageChannelDataTypeUnsignedInt16 = 11, 291 SpvImageChannelDataTypeUnsignedInt32 = 12, 292 SpvImageChannelDataTypeHalfFloat = 13, 293 SpvImageChannelDataTypeFloat = 14, 294 SpvImageChannelDataTypeUnormInt24 = 15, 295 SpvImageChannelDataTypeUnormInt101010_2 = 16, 296 SpvImageChannelDataTypeMax = 0x7fffffff, 297 } SpvImageChannelDataType; 298 299 typedef enum SpvImageOperandsShift_ { 300 SpvImageOperandsBiasShift = 0, 301 SpvImageOperandsLodShift = 1, 302 SpvImageOperandsGradShift = 2, 303 SpvImageOperandsConstOffsetShift = 3, 304 SpvImageOperandsOffsetShift = 4, 305 SpvImageOperandsConstOffsetsShift = 5, 306 SpvImageOperandsSampleShift = 6, 307 SpvImageOperandsMinLodShift = 7, 308 SpvImageOperandsMakeTexelAvailableKHRShift = 8, 309 SpvImageOperandsMakeTexelVisibleKHRShift = 9, 310 SpvImageOperandsNonPrivateTexelKHRShift = 10, 311 SpvImageOperandsVolatileTexelKHRShift = 11, 312 SpvImageOperandsMax = 0x7fffffff, 313 } SpvImageOperandsShift; 314 315 typedef enum SpvImageOperandsMask_ { 316 SpvImageOperandsMaskNone = 0, 317 SpvImageOperandsBiasMask = 0x00000001, 318 SpvImageOperandsLodMask = 0x00000002, 319 SpvImageOperandsGradMask = 0x00000004, 320 SpvImageOperandsConstOffsetMask = 0x00000008, 321 SpvImageOperandsOffsetMask = 0x00000010, 322 SpvImageOperandsConstOffsetsMask = 0x00000020, 323 SpvImageOperandsSampleMask = 0x00000040, 324 SpvImageOperandsMinLodMask = 0x00000080, 325 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100, 326 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200, 327 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400, 328 SpvImageOperandsVolatileTexelKHRMask = 0x00000800, 329 } SpvImageOperandsMask; 330 331 typedef enum SpvFPFastMathModeShift_ { 332 SpvFPFastMathModeNotNaNShift = 0, 333 SpvFPFastMathModeNotInfShift = 1, 334 SpvFPFastMathModeNSZShift = 2, 335 SpvFPFastMathModeAllowRecipShift = 3, 336 SpvFPFastMathModeFastShift = 4, 337 SpvFPFastMathModeMax = 0x7fffffff, 338 } SpvFPFastMathModeShift; 339 340 typedef enum SpvFPFastMathModeMask_ { 341 SpvFPFastMathModeMaskNone = 0, 342 SpvFPFastMathModeNotNaNMask = 0x00000001, 343 SpvFPFastMathModeNotInfMask = 0x00000002, 344 SpvFPFastMathModeNSZMask = 0x00000004, 345 SpvFPFastMathModeAllowRecipMask = 0x00000008, 346 SpvFPFastMathModeFastMask = 0x00000010, 347 } SpvFPFastMathModeMask; 348 349 typedef enum SpvFPRoundingMode_ { 350 SpvFPRoundingModeRTE = 0, 351 SpvFPRoundingModeRTZ = 1, 352 SpvFPRoundingModeRTP = 2, 353 SpvFPRoundingModeRTN = 3, 354 SpvFPRoundingModeMax = 0x7fffffff, 355 } SpvFPRoundingMode; 356 357 typedef enum SpvLinkageType_ { 358 SpvLinkageTypeExport = 0, 359 SpvLinkageTypeImport = 1, 360 SpvLinkageTypeMax = 0x7fffffff, 361 } SpvLinkageType; 362 363 typedef enum SpvAccessQualifier_ { 364 SpvAccessQualifierReadOnly = 0, 365 SpvAccessQualifierWriteOnly = 1, 366 SpvAccessQualifierReadWrite = 2, 367 SpvAccessQualifierMax = 0x7fffffff, 368 } SpvAccessQualifier; 369 370 typedef enum SpvFunctionParameterAttribute_ { 371 SpvFunctionParameterAttributeZext = 0, 372 SpvFunctionParameterAttributeSext = 1, 373 SpvFunctionParameterAttributeByVal = 2, 374 SpvFunctionParameterAttributeSret = 3, 375 SpvFunctionParameterAttributeNoAlias = 4, 376 SpvFunctionParameterAttributeNoCapture = 5, 377 SpvFunctionParameterAttributeNoWrite = 6, 378 SpvFunctionParameterAttributeNoReadWrite = 7, 379 SpvFunctionParameterAttributeMax = 0x7fffffff, 380 } SpvFunctionParameterAttribute; 381 382 typedef enum SpvDecoration_ { 383 SpvDecorationRelaxedPrecision = 0, 384 SpvDecorationSpecId = 1, 385 SpvDecorationBlock = 2, 386 SpvDecorationBufferBlock = 3, 387 SpvDecorationRowMajor = 4, 388 SpvDecorationColMajor = 5, 389 SpvDecorationArrayStride = 6, 390 SpvDecorationMatrixStride = 7, 391 SpvDecorationGLSLShared = 8, 392 SpvDecorationGLSLPacked = 9, 393 SpvDecorationCPacked = 10, 394 SpvDecorationBuiltIn = 11, 395 SpvDecorationNoPerspective = 13, 396 SpvDecorationFlat = 14, 397 SpvDecorationPatch = 15, 398 SpvDecorationCentroid = 16, 399 SpvDecorationSample = 17, 400 SpvDecorationInvariant = 18, 401 SpvDecorationRestrict = 19, 402 SpvDecorationAliased = 20, 403 SpvDecorationVolatile = 21, 404 SpvDecorationConstant = 22, 405 SpvDecorationCoherent = 23, 406 SpvDecorationNonWritable = 24, 407 SpvDecorationNonReadable = 25, 408 SpvDecorationUniform = 26, 409 SpvDecorationSaturatedConversion = 28, 410 SpvDecorationStream = 29, 411 SpvDecorationLocation = 30, 412 SpvDecorationComponent = 31, 413 SpvDecorationIndex = 32, 414 SpvDecorationBinding = 33, 415 SpvDecorationDescriptorSet = 34, 416 SpvDecorationOffset = 35, 417 SpvDecorationXfbBuffer = 36, 418 SpvDecorationXfbStride = 37, 419 SpvDecorationFuncParamAttr = 38, 420 SpvDecorationFPRoundingMode = 39, 421 SpvDecorationFPFastMathMode = 40, 422 SpvDecorationLinkageAttributes = 41, 423 SpvDecorationNoContraction = 42, 424 SpvDecorationInputAttachmentIndex = 43, 425 SpvDecorationAlignment = 44, 426 SpvDecorationMaxByteOffset = 45, 427 SpvDecorationAlignmentId = 46, 428 SpvDecorationMaxByteOffsetId = 47, 429 SpvDecorationNoSignedWrap = 4469, 430 SpvDecorationNoUnsignedWrap = 4470, 431 SpvDecorationExplicitInterpAMD = 4999, 432 SpvDecorationOverrideCoverageNV = 5248, 433 SpvDecorationPassthroughNV = 5250, 434 SpvDecorationViewportRelativeNV = 5252, 435 SpvDecorationSecondaryViewportRelativeNV = 5256, 436 SpvDecorationPerPrimitiveNV = 5271, 437 SpvDecorationPerViewNV = 5272, 438 SpvDecorationPerTaskNV = 5273, 439 SpvDecorationPerVertexNV = 5285, 440 SpvDecorationNonUniformEXT = 5300, 441 SpvDecorationHlslCounterBufferGOOGLE = 5634, 442 SpvDecorationHlslSemanticGOOGLE = 5635, 443 SpvDecorationMax = 0x7fffffff, 444 } SpvDecoration; 445 446 typedef enum SpvBuiltIn_ { 447 SpvBuiltInPosition = 0, 448 SpvBuiltInPointSize = 1, 449 SpvBuiltInClipDistance = 3, 450 SpvBuiltInCullDistance = 4, 451 SpvBuiltInVertexId = 5, 452 SpvBuiltInInstanceId = 6, 453 SpvBuiltInPrimitiveId = 7, 454 SpvBuiltInInvocationId = 8, 455 SpvBuiltInLayer = 9, 456 SpvBuiltInViewportIndex = 10, 457 SpvBuiltInTessLevelOuter = 11, 458 SpvBuiltInTessLevelInner = 12, 459 SpvBuiltInTessCoord = 13, 460 SpvBuiltInPatchVertices = 14, 461 SpvBuiltInFragCoord = 15, 462 SpvBuiltInPointCoord = 16, 463 SpvBuiltInFrontFacing = 17, 464 SpvBuiltInSampleId = 18, 465 SpvBuiltInSamplePosition = 19, 466 SpvBuiltInSampleMask = 20, 467 SpvBuiltInFragDepth = 22, 468 SpvBuiltInHelperInvocation = 23, 469 SpvBuiltInNumWorkgroups = 24, 470 SpvBuiltInWorkgroupSize = 25, 471 SpvBuiltInWorkgroupId = 26, 472 SpvBuiltInLocalInvocationId = 27, 473 SpvBuiltInGlobalInvocationId = 28, 474 SpvBuiltInLocalInvocationIndex = 29, 475 SpvBuiltInWorkDim = 30, 476 SpvBuiltInGlobalSize = 31, 477 SpvBuiltInEnqueuedWorkgroupSize = 32, 478 SpvBuiltInGlobalOffset = 33, 479 SpvBuiltInGlobalLinearId = 34, 480 SpvBuiltInSubgroupSize = 36, 481 SpvBuiltInSubgroupMaxSize = 37, 482 SpvBuiltInNumSubgroups = 38, 483 SpvBuiltInNumEnqueuedSubgroups = 39, 484 SpvBuiltInSubgroupId = 40, 485 SpvBuiltInSubgroupLocalInvocationId = 41, 486 SpvBuiltInVertexIndex = 42, 487 SpvBuiltInInstanceIndex = 43, 488 SpvBuiltInSubgroupEqMask = 4416, 489 SpvBuiltInSubgroupEqMaskKHR = 4416, 490 SpvBuiltInSubgroupGeMask = 4417, 491 SpvBuiltInSubgroupGeMaskKHR = 4417, 492 SpvBuiltInSubgroupGtMask = 4418, 493 SpvBuiltInSubgroupGtMaskKHR = 4418, 494 SpvBuiltInSubgroupLeMask = 4419, 495 SpvBuiltInSubgroupLeMaskKHR = 4419, 496 SpvBuiltInSubgroupLtMask = 4420, 497 SpvBuiltInSubgroupLtMaskKHR = 4420, 498 SpvBuiltInBaseVertex = 4424, 499 SpvBuiltInBaseInstance = 4425, 500 SpvBuiltInDrawIndex = 4426, 501 SpvBuiltInDeviceIndex = 4438, 502 SpvBuiltInViewIndex = 4440, 503 SpvBuiltInBaryCoordNoPerspAMD = 4992, 504 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, 505 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, 506 SpvBuiltInBaryCoordSmoothAMD = 4995, 507 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, 508 SpvBuiltInBaryCoordSmoothSampleAMD = 4997, 509 SpvBuiltInBaryCoordPullModelAMD = 4998, 510 SpvBuiltInFragStencilRefEXT = 5014, 511 SpvBuiltInViewportMaskNV = 5253, 512 SpvBuiltInSecondaryPositionNV = 5257, 513 SpvBuiltInSecondaryViewportMaskNV = 5258, 514 SpvBuiltInPositionPerViewNV = 5261, 515 SpvBuiltInViewportMaskPerViewNV = 5262, 516 SpvBuiltInFullyCoveredEXT = 5264, 517 SpvBuiltInTaskCountNV = 5274, 518 SpvBuiltInPrimitiveCountNV = 5275, 519 SpvBuiltInPrimitiveIndicesNV = 5276, 520 SpvBuiltInClipDistancePerViewNV = 5277, 521 SpvBuiltInCullDistancePerViewNV = 5278, 522 SpvBuiltInLayerPerViewNV = 5279, 523 SpvBuiltInMeshViewCountNV = 5280, 524 SpvBuiltInMeshViewIndicesNV = 5281, 525 SpvBuiltInBaryCoordNV = 5286, 526 SpvBuiltInBaryCoordNoPerspNV = 5287, 527 SpvBuiltInFragSizeEXT = 5292, 528 SpvBuiltInFragmentSizeNV = 5292, 529 SpvBuiltInFragInvocationCountEXT = 5293, 530 SpvBuiltInInvocationsPerPixelNV = 5293, 531 SpvBuiltInLaunchIdNV = 5319, 532 SpvBuiltInLaunchSizeNV = 5320, 533 SpvBuiltInWorldRayOriginNV = 5321, 534 SpvBuiltInWorldRayDirectionNV = 5322, 535 SpvBuiltInObjectRayOriginNV = 5323, 536 SpvBuiltInObjectRayDirectionNV = 5324, 537 SpvBuiltInRayTminNV = 5325, 538 SpvBuiltInRayTmaxNV = 5326, 539 SpvBuiltInInstanceCustomIndexNV = 5327, 540 SpvBuiltInObjectToWorldNV = 5330, 541 SpvBuiltInWorldToObjectNV = 5331, 542 SpvBuiltInHitTNV = 5332, 543 SpvBuiltInHitKindNV = 5333, 544 SpvBuiltInIncomingRayFlagsNV = 5351, 545 SpvBuiltInMax = 0x7fffffff, 546 } SpvBuiltIn; 547 548 typedef enum SpvSelectionControlShift_ { 549 SpvSelectionControlFlattenShift = 0, 550 SpvSelectionControlDontFlattenShift = 1, 551 SpvSelectionControlMax = 0x7fffffff, 552 } SpvSelectionControlShift; 553 554 typedef enum SpvSelectionControlMask_ { 555 SpvSelectionControlMaskNone = 0, 556 SpvSelectionControlFlattenMask = 0x00000001, 557 SpvSelectionControlDontFlattenMask = 0x00000002, 558 } SpvSelectionControlMask; 559 560 typedef enum SpvLoopControlShift_ { 561 SpvLoopControlUnrollShift = 0, 562 SpvLoopControlDontUnrollShift = 1, 563 SpvLoopControlDependencyInfiniteShift = 2, 564 SpvLoopControlDependencyLengthShift = 3, 565 SpvLoopControlMax = 0x7fffffff, 566 } SpvLoopControlShift; 567 568 typedef enum SpvLoopControlMask_ { 569 SpvLoopControlMaskNone = 0, 570 SpvLoopControlUnrollMask = 0x00000001, 571 SpvLoopControlDontUnrollMask = 0x00000002, 572 SpvLoopControlDependencyInfiniteMask = 0x00000004, 573 SpvLoopControlDependencyLengthMask = 0x00000008, 574 } SpvLoopControlMask; 575 576 typedef enum SpvFunctionControlShift_ { 577 SpvFunctionControlInlineShift = 0, 578 SpvFunctionControlDontInlineShift = 1, 579 SpvFunctionControlPureShift = 2, 580 SpvFunctionControlConstShift = 3, 581 SpvFunctionControlMax = 0x7fffffff, 582 } SpvFunctionControlShift; 583 584 typedef enum SpvFunctionControlMask_ { 585 SpvFunctionControlMaskNone = 0, 586 SpvFunctionControlInlineMask = 0x00000001, 587 SpvFunctionControlDontInlineMask = 0x00000002, 588 SpvFunctionControlPureMask = 0x00000004, 589 SpvFunctionControlConstMask = 0x00000008, 590 } SpvFunctionControlMask; 591 592 typedef enum SpvMemorySemanticsShift_ { 593 SpvMemorySemanticsAcquireShift = 1, 594 SpvMemorySemanticsReleaseShift = 2, 595 SpvMemorySemanticsAcquireReleaseShift = 3, 596 SpvMemorySemanticsSequentiallyConsistentShift = 4, 597 SpvMemorySemanticsUniformMemoryShift = 6, 598 SpvMemorySemanticsSubgroupMemoryShift = 7, 599 SpvMemorySemanticsWorkgroupMemoryShift = 8, 600 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, 601 SpvMemorySemanticsAtomicCounterMemoryShift = 10, 602 SpvMemorySemanticsImageMemoryShift = 11, 603 SpvMemorySemanticsOutputMemoryKHRShift = 12, 604 SpvMemorySemanticsMakeAvailableKHRShift = 13, 605 SpvMemorySemanticsMakeVisibleKHRShift = 14, 606 SpvMemorySemanticsMax = 0x7fffffff, 607 } SpvMemorySemanticsShift; 608 609 typedef enum SpvMemorySemanticsMask_ { 610 SpvMemorySemanticsMaskNone = 0, 611 SpvMemorySemanticsAcquireMask = 0x00000002, 612 SpvMemorySemanticsReleaseMask = 0x00000004, 613 SpvMemorySemanticsAcquireReleaseMask = 0x00000008, 614 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, 615 SpvMemorySemanticsUniformMemoryMask = 0x00000040, 616 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, 617 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, 618 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, 619 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, 620 SpvMemorySemanticsImageMemoryMask = 0x00000800, 621 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000, 622 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000, 623 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000, 624 } SpvMemorySemanticsMask; 625 626 typedef enum SpvMemoryAccessShift_ { 627 SpvMemoryAccessVolatileShift = 0, 628 SpvMemoryAccessAlignedShift = 1, 629 SpvMemoryAccessNontemporalShift = 2, 630 SpvMemoryAccessMakePointerAvailableKHRShift = 3, 631 SpvMemoryAccessMakePointerVisibleKHRShift = 4, 632 SpvMemoryAccessNonPrivatePointerKHRShift = 5, 633 SpvMemoryAccessMax = 0x7fffffff, 634 } SpvMemoryAccessShift; 635 636 typedef enum SpvMemoryAccessMask_ { 637 SpvMemoryAccessMaskNone = 0, 638 SpvMemoryAccessVolatileMask = 0x00000001, 639 SpvMemoryAccessAlignedMask = 0x00000002, 640 SpvMemoryAccessNontemporalMask = 0x00000004, 641 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008, 642 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010, 643 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020, 644 } SpvMemoryAccessMask; 645 646 typedef enum SpvScope_ { 647 SpvScopeCrossDevice = 0, 648 SpvScopeDevice = 1, 649 SpvScopeWorkgroup = 2, 650 SpvScopeSubgroup = 3, 651 SpvScopeInvocation = 4, 652 SpvScopeQueueFamilyKHR = 5, 653 SpvScopeMax = 0x7fffffff, 654 } SpvScope; 655 656 typedef enum SpvGroupOperation_ { 657 SpvGroupOperationReduce = 0, 658 SpvGroupOperationInclusiveScan = 1, 659 SpvGroupOperationExclusiveScan = 2, 660 SpvGroupOperationClusteredReduce = 3, 661 SpvGroupOperationPartitionedReduceNV = 6, 662 SpvGroupOperationPartitionedInclusiveScanNV = 7, 663 SpvGroupOperationPartitionedExclusiveScanNV = 8, 664 SpvGroupOperationMax = 0x7fffffff, 665 } SpvGroupOperation; 666 667 typedef enum SpvKernelEnqueueFlags_ { 668 SpvKernelEnqueueFlagsNoWait = 0, 669 SpvKernelEnqueueFlagsWaitKernel = 1, 670 SpvKernelEnqueueFlagsWaitWorkGroup = 2, 671 SpvKernelEnqueueFlagsMax = 0x7fffffff, 672 } SpvKernelEnqueueFlags; 673 674 typedef enum SpvKernelProfilingInfoShift_ { 675 SpvKernelProfilingInfoCmdExecTimeShift = 0, 676 SpvKernelProfilingInfoMax = 0x7fffffff, 677 } SpvKernelProfilingInfoShift; 678 679 typedef enum SpvKernelProfilingInfoMask_ { 680 SpvKernelProfilingInfoMaskNone = 0, 681 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, 682 } SpvKernelProfilingInfoMask; 683 684 typedef enum SpvCapability_ { 685 SpvCapabilityMatrix = 0, 686 SpvCapabilityShader = 1, 687 SpvCapabilityGeometry = 2, 688 SpvCapabilityTessellation = 3, 689 SpvCapabilityAddresses = 4, 690 SpvCapabilityLinkage = 5, 691 SpvCapabilityKernel = 6, 692 SpvCapabilityVector16 = 7, 693 SpvCapabilityFloat16Buffer = 8, 694 SpvCapabilityFloat16 = 9, 695 SpvCapabilityFloat64 = 10, 696 SpvCapabilityInt64 = 11, 697 SpvCapabilityInt64Atomics = 12, 698 SpvCapabilityImageBasic = 13, 699 SpvCapabilityImageReadWrite = 14, 700 SpvCapabilityImageMipmap = 15, 701 SpvCapabilityPipes = 17, 702 SpvCapabilityGroups = 18, 703 SpvCapabilityDeviceEnqueue = 19, 704 SpvCapabilityLiteralSampler = 20, 705 SpvCapabilityAtomicStorage = 21, 706 SpvCapabilityInt16 = 22, 707 SpvCapabilityTessellationPointSize = 23, 708 SpvCapabilityGeometryPointSize = 24, 709 SpvCapabilityImageGatherExtended = 25, 710 SpvCapabilityStorageImageMultisample = 27, 711 SpvCapabilityUniformBufferArrayDynamicIndexing = 28, 712 SpvCapabilitySampledImageArrayDynamicIndexing = 29, 713 SpvCapabilityStorageBufferArrayDynamicIndexing = 30, 714 SpvCapabilityStorageImageArrayDynamicIndexing = 31, 715 SpvCapabilityClipDistance = 32, 716 SpvCapabilityCullDistance = 33, 717 SpvCapabilityImageCubeArray = 34, 718 SpvCapabilitySampleRateShading = 35, 719 SpvCapabilityImageRect = 36, 720 SpvCapabilitySampledRect = 37, 721 SpvCapabilityGenericPointer = 38, 722 SpvCapabilityInt8 = 39, 723 SpvCapabilityInputAttachment = 40, 724 SpvCapabilitySparseResidency = 41, 725 SpvCapabilityMinLod = 42, 726 SpvCapabilitySampled1D = 43, 727 SpvCapabilityImage1D = 44, 728 SpvCapabilitySampledCubeArray = 45, 729 SpvCapabilitySampledBuffer = 46, 730 SpvCapabilityImageBuffer = 47, 731 SpvCapabilityImageMSArray = 48, 732 SpvCapabilityStorageImageExtendedFormats = 49, 733 SpvCapabilityImageQuery = 50, 734 SpvCapabilityDerivativeControl = 51, 735 SpvCapabilityInterpolationFunction = 52, 736 SpvCapabilityTransformFeedback = 53, 737 SpvCapabilityGeometryStreams = 54, 738 SpvCapabilityStorageImageReadWithoutFormat = 55, 739 SpvCapabilityStorageImageWriteWithoutFormat = 56, 740 SpvCapabilityMultiViewport = 57, 741 SpvCapabilitySubgroupDispatch = 58, 742 SpvCapabilityNamedBarrier = 59, 743 SpvCapabilityPipeStorage = 60, 744 SpvCapabilityGroupNonUniform = 61, 745 SpvCapabilityGroupNonUniformVote = 62, 746 SpvCapabilityGroupNonUniformArithmetic = 63, 747 SpvCapabilityGroupNonUniformBallot = 64, 748 SpvCapabilityGroupNonUniformShuffle = 65, 749 SpvCapabilityGroupNonUniformShuffleRelative = 66, 750 SpvCapabilityGroupNonUniformClustered = 67, 751 SpvCapabilityGroupNonUniformQuad = 68, 752 SpvCapabilitySubgroupBallotKHR = 4423, 753 SpvCapabilityDrawParameters = 4427, 754 SpvCapabilitySubgroupVoteKHR = 4431, 755 SpvCapabilityStorageBuffer16BitAccess = 4433, 756 SpvCapabilityStorageUniformBufferBlock16 = 4433, 757 SpvCapabilityStorageUniform16 = 4434, 758 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, 759 SpvCapabilityStoragePushConstant16 = 4435, 760 SpvCapabilityStorageInputOutput16 = 4436, 761 SpvCapabilityDeviceGroup = 4437, 762 SpvCapabilityMultiView = 4439, 763 SpvCapabilityVariablePointersStorageBuffer = 4441, 764 SpvCapabilityVariablePointers = 4442, 765 SpvCapabilityAtomicStorageOps = 4445, 766 SpvCapabilitySampleMaskPostDepthCoverage = 4447, 767 SpvCapabilityStorageBuffer8BitAccess = 4448, 768 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449, 769 SpvCapabilityStoragePushConstant8 = 4450, 770 SpvCapabilityDenormPreserve = 4464, 771 SpvCapabilityDenormFlushToZero = 4465, 772 SpvCapabilitySignedZeroInfNanPreserve = 4466, 773 SpvCapabilityRoundingModeRTE = 4467, 774 SpvCapabilityRoundingModeRTZ = 4468, 775 SpvCapabilityFloat16ImageAMD = 5008, 776 SpvCapabilityImageGatherBiasLodAMD = 5009, 777 SpvCapabilityFragmentMaskAMD = 5010, 778 SpvCapabilityStencilExportEXT = 5013, 779 SpvCapabilityImageReadWriteLodAMD = 5015, 780 SpvCapabilitySampleMaskOverrideCoverageNV = 5249, 781 SpvCapabilityGeometryShaderPassthroughNV = 5251, 782 SpvCapabilityShaderViewportIndexLayerEXT = 5254, 783 SpvCapabilityShaderViewportIndexLayerNV = 5254, 784 SpvCapabilityShaderViewportMaskNV = 5255, 785 SpvCapabilityShaderStereoViewNV = 5259, 786 SpvCapabilityPerViewAttributesNV = 5260, 787 SpvCapabilityFragmentFullyCoveredEXT = 5265, 788 SpvCapabilityMeshShadingNV = 5266, 789 SpvCapabilityImageFootprintNV = 5282, 790 SpvCapabilityFragmentBarycentricNV = 5284, 791 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288, 792 SpvCapabilityFragmentDensityEXT = 5291, 793 SpvCapabilityShadingRateNV = 5291, 794 SpvCapabilityGroupNonUniformPartitionedNV = 5297, 795 SpvCapabilityShaderNonUniformEXT = 5301, 796 SpvCapabilityRuntimeDescriptorArrayEXT = 5302, 797 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, 798 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, 799 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, 800 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, 801 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307, 802 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, 803 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309, 804 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, 805 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, 806 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, 807 SpvCapabilityRayTracingNV = 5340, 808 SpvCapabilityVulkanMemoryModelKHR = 5345, 809 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346, 810 SpvCapabilityComputeDerivativeGroupLinearNV = 5350, 811 SpvCapabilitySubgroupShuffleINTEL = 5568, 812 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, 813 SpvCapabilitySubgroupImageBlockIOINTEL = 5570, 814 SpvCapabilityMax = 0x7fffffff, 815 } SpvCapability; 816 817 typedef enum SpvOp_ { 818 SpvOpNop = 0, 819 SpvOpUndef = 1, 820 SpvOpSourceContinued = 2, 821 SpvOpSource = 3, 822 SpvOpSourceExtension = 4, 823 SpvOpName = 5, 824 SpvOpMemberName = 6, 825 SpvOpString = 7, 826 SpvOpLine = 8, 827 SpvOpExtension = 10, 828 SpvOpExtInstImport = 11, 829 SpvOpExtInst = 12, 830 SpvOpMemoryModel = 14, 831 SpvOpEntryPoint = 15, 832 SpvOpExecutionMode = 16, 833 SpvOpCapability = 17, 834 SpvOpTypeVoid = 19, 835 SpvOpTypeBool = 20, 836 SpvOpTypeInt = 21, 837 SpvOpTypeFloat = 22, 838 SpvOpTypeVector = 23, 839 SpvOpTypeMatrix = 24, 840 SpvOpTypeImage = 25, 841 SpvOpTypeSampler = 26, 842 SpvOpTypeSampledImage = 27, 843 SpvOpTypeArray = 28, 844 SpvOpTypeRuntimeArray = 29, 845 SpvOpTypeStruct = 30, 846 SpvOpTypeOpaque = 31, 847 SpvOpTypePointer = 32, 848 SpvOpTypeFunction = 33, 849 SpvOpTypeEvent = 34, 850 SpvOpTypeDeviceEvent = 35, 851 SpvOpTypeReserveId = 36, 852 SpvOpTypeQueue = 37, 853 SpvOpTypePipe = 38, 854 SpvOpTypeForwardPointer = 39, 855 SpvOpConstantTrue = 41, 856 SpvOpConstantFalse = 42, 857 SpvOpConstant = 43, 858 SpvOpConstantComposite = 44, 859 SpvOpConstantSampler = 45, 860 SpvOpConstantNull = 46, 861 SpvOpSpecConstantTrue = 48, 862 SpvOpSpecConstantFalse = 49, 863 SpvOpSpecConstant = 50, 864 SpvOpSpecConstantComposite = 51, 865 SpvOpSpecConstantOp = 52, 866 SpvOpFunction = 54, 867 SpvOpFunctionParameter = 55, 868 SpvOpFunctionEnd = 56, 869 SpvOpFunctionCall = 57, 870 SpvOpVariable = 59, 871 SpvOpImageTexelPointer = 60, 872 SpvOpLoad = 61, 873 SpvOpStore = 62, 874 SpvOpCopyMemory = 63, 875 SpvOpCopyMemorySized = 64, 876 SpvOpAccessChain = 65, 877 SpvOpInBoundsAccessChain = 66, 878 SpvOpPtrAccessChain = 67, 879 SpvOpArrayLength = 68, 880 SpvOpGenericPtrMemSemantics = 69, 881 SpvOpInBoundsPtrAccessChain = 70, 882 SpvOpDecorate = 71, 883 SpvOpMemberDecorate = 72, 884 SpvOpDecorationGroup = 73, 885 SpvOpGroupDecorate = 74, 886 SpvOpGroupMemberDecorate = 75, 887 SpvOpVectorExtractDynamic = 77, 888 SpvOpVectorInsertDynamic = 78, 889 SpvOpVectorShuffle = 79, 890 SpvOpCompositeConstruct = 80, 891 SpvOpCompositeExtract = 81, 892 SpvOpCompositeInsert = 82, 893 SpvOpCopyObject = 83, 894 SpvOpTranspose = 84, 895 SpvOpSampledImage = 86, 896 SpvOpImageSampleImplicitLod = 87, 897 SpvOpImageSampleExplicitLod = 88, 898 SpvOpImageSampleDrefImplicitLod = 89, 899 SpvOpImageSampleDrefExplicitLod = 90, 900 SpvOpImageSampleProjImplicitLod = 91, 901 SpvOpImageSampleProjExplicitLod = 92, 902 SpvOpImageSampleProjDrefImplicitLod = 93, 903 SpvOpImageSampleProjDrefExplicitLod = 94, 904 SpvOpImageFetch = 95, 905 SpvOpImageGather = 96, 906 SpvOpImageDrefGather = 97, 907 SpvOpImageRead = 98, 908 SpvOpImageWrite = 99, 909 SpvOpImage = 100, 910 SpvOpImageQueryFormat = 101, 911 SpvOpImageQueryOrder = 102, 912 SpvOpImageQuerySizeLod = 103, 913 SpvOpImageQuerySize = 104, 914 SpvOpImageQueryLod = 105, 915 SpvOpImageQueryLevels = 106, 916 SpvOpImageQuerySamples = 107, 917 SpvOpConvertFToU = 109, 918 SpvOpConvertFToS = 110, 919 SpvOpConvertSToF = 111, 920 SpvOpConvertUToF = 112, 921 SpvOpUConvert = 113, 922 SpvOpSConvert = 114, 923 SpvOpFConvert = 115, 924 SpvOpQuantizeToF16 = 116, 925 SpvOpConvertPtrToU = 117, 926 SpvOpSatConvertSToU = 118, 927 SpvOpSatConvertUToS = 119, 928 SpvOpConvertUToPtr = 120, 929 SpvOpPtrCastToGeneric = 121, 930 SpvOpGenericCastToPtr = 122, 931 SpvOpGenericCastToPtrExplicit = 123, 932 SpvOpBitcast = 124, 933 SpvOpSNegate = 126, 934 SpvOpFNegate = 127, 935 SpvOpIAdd = 128, 936 SpvOpFAdd = 129, 937 SpvOpISub = 130, 938 SpvOpFSub = 131, 939 SpvOpIMul = 132, 940 SpvOpFMul = 133, 941 SpvOpUDiv = 134, 942 SpvOpSDiv = 135, 943 SpvOpFDiv = 136, 944 SpvOpUMod = 137, 945 SpvOpSRem = 138, 946 SpvOpSMod = 139, 947 SpvOpFRem = 140, 948 SpvOpFMod = 141, 949 SpvOpVectorTimesScalar = 142, 950 SpvOpMatrixTimesScalar = 143, 951 SpvOpVectorTimesMatrix = 144, 952 SpvOpMatrixTimesVector = 145, 953 SpvOpMatrixTimesMatrix = 146, 954 SpvOpOuterProduct = 147, 955 SpvOpDot = 148, 956 SpvOpIAddCarry = 149, 957 SpvOpISubBorrow = 150, 958 SpvOpUMulExtended = 151, 959 SpvOpSMulExtended = 152, 960 SpvOpAny = 154, 961 SpvOpAll = 155, 962 SpvOpIsNan = 156, 963 SpvOpIsInf = 157, 964 SpvOpIsFinite = 158, 965 SpvOpIsNormal = 159, 966 SpvOpSignBitSet = 160, 967 SpvOpLessOrGreater = 161, 968 SpvOpOrdered = 162, 969 SpvOpUnordered = 163, 970 SpvOpLogicalEqual = 164, 971 SpvOpLogicalNotEqual = 165, 972 SpvOpLogicalOr = 166, 973 SpvOpLogicalAnd = 167, 974 SpvOpLogicalNot = 168, 975 SpvOpSelect = 169, 976 SpvOpIEqual = 170, 977 SpvOpINotEqual = 171, 978 SpvOpUGreaterThan = 172, 979 SpvOpSGreaterThan = 173, 980 SpvOpUGreaterThanEqual = 174, 981 SpvOpSGreaterThanEqual = 175, 982 SpvOpULessThan = 176, 983 SpvOpSLessThan = 177, 984 SpvOpULessThanEqual = 178, 985 SpvOpSLessThanEqual = 179, 986 SpvOpFOrdEqual = 180, 987 SpvOpFUnordEqual = 181, 988 SpvOpFOrdNotEqual = 182, 989 SpvOpFUnordNotEqual = 183, 990 SpvOpFOrdLessThan = 184, 991 SpvOpFUnordLessThan = 185, 992 SpvOpFOrdGreaterThan = 186, 993 SpvOpFUnordGreaterThan = 187, 994 SpvOpFOrdLessThanEqual = 188, 995 SpvOpFUnordLessThanEqual = 189, 996 SpvOpFOrdGreaterThanEqual = 190, 997 SpvOpFUnordGreaterThanEqual = 191, 998 SpvOpShiftRightLogical = 194, 999 SpvOpShiftRightArithmetic = 195, 1000 SpvOpShiftLeftLogical = 196, 1001 SpvOpBitwiseOr = 197, 1002 SpvOpBitwiseXor = 198, 1003 SpvOpBitwiseAnd = 199, 1004 SpvOpNot = 200, 1005 SpvOpBitFieldInsert = 201, 1006 SpvOpBitFieldSExtract = 202, 1007 SpvOpBitFieldUExtract = 203, 1008 SpvOpBitReverse = 204, 1009 SpvOpBitCount = 205, 1010 SpvOpDPdx = 207, 1011 SpvOpDPdy = 208, 1012 SpvOpFwidth = 209, 1013 SpvOpDPdxFine = 210, 1014 SpvOpDPdyFine = 211, 1015 SpvOpFwidthFine = 212, 1016 SpvOpDPdxCoarse = 213, 1017 SpvOpDPdyCoarse = 214, 1018 SpvOpFwidthCoarse = 215, 1019 SpvOpEmitVertex = 218, 1020 SpvOpEndPrimitive = 219, 1021 SpvOpEmitStreamVertex = 220, 1022 SpvOpEndStreamPrimitive = 221, 1023 SpvOpControlBarrier = 224, 1024 SpvOpMemoryBarrier = 225, 1025 SpvOpAtomicLoad = 227, 1026 SpvOpAtomicStore = 228, 1027 SpvOpAtomicExchange = 229, 1028 SpvOpAtomicCompareExchange = 230, 1029 SpvOpAtomicCompareExchangeWeak = 231, 1030 SpvOpAtomicIIncrement = 232, 1031 SpvOpAtomicIDecrement = 233, 1032 SpvOpAtomicIAdd = 234, 1033 SpvOpAtomicISub = 235, 1034 SpvOpAtomicSMin = 236, 1035 SpvOpAtomicUMin = 237, 1036 SpvOpAtomicSMax = 238, 1037 SpvOpAtomicUMax = 239, 1038 SpvOpAtomicAnd = 240, 1039 SpvOpAtomicOr = 241, 1040 SpvOpAtomicXor = 242, 1041 SpvOpPhi = 245, 1042 SpvOpLoopMerge = 246, 1043 SpvOpSelectionMerge = 247, 1044 SpvOpLabel = 248, 1045 SpvOpBranch = 249, 1046 SpvOpBranchConditional = 250, 1047 SpvOpSwitch = 251, 1048 SpvOpKill = 252, 1049 SpvOpReturn = 253, 1050 SpvOpReturnValue = 254, 1051 SpvOpUnreachable = 255, 1052 SpvOpLifetimeStart = 256, 1053 SpvOpLifetimeStop = 257, 1054 SpvOpGroupAsyncCopy = 259, 1055 SpvOpGroupWaitEvents = 260, 1056 SpvOpGroupAll = 261, 1057 SpvOpGroupAny = 262, 1058 SpvOpGroupBroadcast = 263, 1059 SpvOpGroupIAdd = 264, 1060 SpvOpGroupFAdd = 265, 1061 SpvOpGroupFMin = 266, 1062 SpvOpGroupUMin = 267, 1063 SpvOpGroupSMin = 268, 1064 SpvOpGroupFMax = 269, 1065 SpvOpGroupUMax = 270, 1066 SpvOpGroupSMax = 271, 1067 SpvOpReadPipe = 274, 1068 SpvOpWritePipe = 275, 1069 SpvOpReservedReadPipe = 276, 1070 SpvOpReservedWritePipe = 277, 1071 SpvOpReserveReadPipePackets = 278, 1072 SpvOpReserveWritePipePackets = 279, 1073 SpvOpCommitReadPipe = 280, 1074 SpvOpCommitWritePipe = 281, 1075 SpvOpIsValidReserveId = 282, 1076 SpvOpGetNumPipePackets = 283, 1077 SpvOpGetMaxPipePackets = 284, 1078 SpvOpGroupReserveReadPipePackets = 285, 1079 SpvOpGroupReserveWritePipePackets = 286, 1080 SpvOpGroupCommitReadPipe = 287, 1081 SpvOpGroupCommitWritePipe = 288, 1082 SpvOpEnqueueMarker = 291, 1083 SpvOpEnqueueKernel = 292, 1084 SpvOpGetKernelNDrangeSubGroupCount = 293, 1085 SpvOpGetKernelNDrangeMaxSubGroupSize = 294, 1086 SpvOpGetKernelWorkGroupSize = 295, 1087 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, 1088 SpvOpRetainEvent = 297, 1089 SpvOpReleaseEvent = 298, 1090 SpvOpCreateUserEvent = 299, 1091 SpvOpIsValidEvent = 300, 1092 SpvOpSetUserEventStatus = 301, 1093 SpvOpCaptureEventProfilingInfo = 302, 1094 SpvOpGetDefaultQueue = 303, 1095 SpvOpBuildNDRange = 304, 1096 SpvOpImageSparseSampleImplicitLod = 305, 1097 SpvOpImageSparseSampleExplicitLod = 306, 1098 SpvOpImageSparseSampleDrefImplicitLod = 307, 1099 SpvOpImageSparseSampleDrefExplicitLod = 308, 1100 SpvOpImageSparseSampleProjImplicitLod = 309, 1101 SpvOpImageSparseSampleProjExplicitLod = 310, 1102 SpvOpImageSparseSampleProjDrefImplicitLod = 311, 1103 SpvOpImageSparseSampleProjDrefExplicitLod = 312, 1104 SpvOpImageSparseFetch = 313, 1105 SpvOpImageSparseGather = 314, 1106 SpvOpImageSparseDrefGather = 315, 1107 SpvOpImageSparseTexelsResident = 316, 1108 SpvOpNoLine = 317, 1109 SpvOpAtomicFlagTestAndSet = 318, 1110 SpvOpAtomicFlagClear = 319, 1111 SpvOpImageSparseRead = 320, 1112 SpvOpSizeOf = 321, 1113 SpvOpTypePipeStorage = 322, 1114 SpvOpConstantPipeStorage = 323, 1115 SpvOpCreatePipeFromPipeStorage = 324, 1116 SpvOpGetKernelLocalSizeForSubgroupCount = 325, 1117 SpvOpGetKernelMaxNumSubgroups = 326, 1118 SpvOpTypeNamedBarrier = 327, 1119 SpvOpNamedBarrierInitialize = 328, 1120 SpvOpMemoryNamedBarrier = 329, 1121 SpvOpModuleProcessed = 330, 1122 SpvOpExecutionModeId = 331, 1123 SpvOpDecorateId = 332, 1124 SpvOpGroupNonUniformElect = 333, 1125 SpvOpGroupNonUniformAll = 334, 1126 SpvOpGroupNonUniformAny = 335, 1127 SpvOpGroupNonUniformAllEqual = 336, 1128 SpvOpGroupNonUniformBroadcast = 337, 1129 SpvOpGroupNonUniformBroadcastFirst = 338, 1130 SpvOpGroupNonUniformBallot = 339, 1131 SpvOpGroupNonUniformInverseBallot = 340, 1132 SpvOpGroupNonUniformBallotBitExtract = 341, 1133 SpvOpGroupNonUniformBallotBitCount = 342, 1134 SpvOpGroupNonUniformBallotFindLSB = 343, 1135 SpvOpGroupNonUniformBallotFindMSB = 344, 1136 SpvOpGroupNonUniformShuffle = 345, 1137 SpvOpGroupNonUniformShuffleXor = 346, 1138 SpvOpGroupNonUniformShuffleUp = 347, 1139 SpvOpGroupNonUniformShuffleDown = 348, 1140 SpvOpGroupNonUniformIAdd = 349, 1141 SpvOpGroupNonUniformFAdd = 350, 1142 SpvOpGroupNonUniformIMul = 351, 1143 SpvOpGroupNonUniformFMul = 352, 1144 SpvOpGroupNonUniformSMin = 353, 1145 SpvOpGroupNonUniformUMin = 354, 1146 SpvOpGroupNonUniformFMin = 355, 1147 SpvOpGroupNonUniformSMax = 356, 1148 SpvOpGroupNonUniformUMax = 357, 1149 SpvOpGroupNonUniformFMax = 358, 1150 SpvOpGroupNonUniformBitwiseAnd = 359, 1151 SpvOpGroupNonUniformBitwiseOr = 360, 1152 SpvOpGroupNonUniformBitwiseXor = 361, 1153 SpvOpGroupNonUniformLogicalAnd = 362, 1154 SpvOpGroupNonUniformLogicalOr = 363, 1155 SpvOpGroupNonUniformLogicalXor = 364, 1156 SpvOpGroupNonUniformQuadBroadcast = 365, 1157 SpvOpGroupNonUniformQuadSwap = 366, 1158 SpvOpSubgroupBallotKHR = 4421, 1159 SpvOpSubgroupFirstInvocationKHR = 4422, 1160 SpvOpSubgroupAllKHR = 4428, 1161 SpvOpSubgroupAnyKHR = 4429, 1162 SpvOpSubgroupAllEqualKHR = 4430, 1163 SpvOpSubgroupReadInvocationKHR = 4432, 1164 SpvOpGroupIAddNonUniformAMD = 5000, 1165 SpvOpGroupFAddNonUniformAMD = 5001, 1166 SpvOpGroupFMinNonUniformAMD = 5002, 1167 SpvOpGroupUMinNonUniformAMD = 5003, 1168 SpvOpGroupSMinNonUniformAMD = 5004, 1169 SpvOpGroupFMaxNonUniformAMD = 5005, 1170 SpvOpGroupUMaxNonUniformAMD = 5006, 1171 SpvOpGroupSMaxNonUniformAMD = 5007, 1172 SpvOpFragmentMaskFetchAMD = 5011, 1173 SpvOpFragmentFetchAMD = 5012, 1174 SpvOpImageSampleFootprintNV = 5283, 1175 SpvOpGroupNonUniformPartitionNV = 5296, 1176 SpvOpWritePackedPrimitiveIndices4x8NV = 5299, 1177 SpvOpReportIntersectionNV = 5334, 1178 SpvOpIgnoreIntersectionNV = 5335, 1179 SpvOpTerminateRayNV = 5336, 1180 SpvOpTraceNV = 5337, 1181 SpvOpTypeAccelerationStructureNV = 5341, 1182 SpvOpExecuteCallableNV = 5344, 1183 SpvOpSubgroupShuffleINTEL = 5571, 1184 SpvOpSubgroupShuffleDownINTEL = 5572, 1185 SpvOpSubgroupShuffleUpINTEL = 5573, 1186 SpvOpSubgroupShuffleXorINTEL = 5574, 1187 SpvOpSubgroupBlockReadINTEL = 5575, 1188 SpvOpSubgroupBlockWriteINTEL = 5576, 1189 SpvOpSubgroupImageBlockReadINTEL = 5577, 1190 SpvOpSubgroupImageBlockWriteINTEL = 5578, 1191 SpvOpDecorateStringGOOGLE = 5632, 1192 SpvOpMemberDecorateStringGOOGLE = 5633, 1193 SpvOpMax = 0x7fffffff, 1194 } SpvOp; 1195 1196 #endif // #ifndef spirv_H 1197 1198