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