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