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