spirv.hpp (125162B)
1 // Copyright (c) 2014-2020 The Khronos Group Inc. 2 // 3 // Permission is hereby granted, free of charge, to any person obtaining a copy 4 // of this software and/or associated documentation files (the "Materials"), 5 // to deal in the Materials without restriction, including without limitation 6 // the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 // and/or sell copies of the Materials, and to permit persons to whom the 8 // Materials are furnished to do so, subject to the following conditions: 9 // 10 // The above copyright notice and this permission notice shall be included in 11 // all copies or substantial portions of the Materials. 12 // 13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 16 // 17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 23 // IN THE MATERIALS. 24 25 // This header is automatically generated by the same tool that creates 26 // the Binary Section of the SPIR-V specification. 27 28 // Enumeration tokens for SPIR-V, in various styles: 29 // C, C++, C++11, JSON, Lua, Python, C#, D, Beef 30 // 31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL 32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL 33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL 34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL 35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] 36 // - C# will use enum classes in the Specification class located in the "Spv" namespace, 37 // e.g.: Spv.Specification.SourceLanguage.GLSL 38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL 39 // - Beef will use enum classes in the Specification class located in the "Spv" namespace, 40 // e.g.: Spv.Specification.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 #ifndef spirv_HPP 48 #define spirv_HPP 49 50 namespace spv { 51 52 typedef unsigned int Id; 53 54 #define SPV_VERSION 0x10600 55 #define SPV_REVISION 1 56 57 static const unsigned int MagicNumber = 0x07230203; 58 static const unsigned int Version = 0x00010600; 59 static const unsigned int Revision = 1; 60 static const unsigned int OpCodeMask = 0xffff; 61 static const unsigned int WordCountShift = 16; 62 63 enum SourceLanguage { 64 SourceLanguageUnknown = 0, 65 SourceLanguageESSL = 1, 66 SourceLanguageGLSL = 2, 67 SourceLanguageOpenCL_C = 3, 68 SourceLanguageOpenCL_CPP = 4, 69 SourceLanguageHLSL = 5, 70 SourceLanguageCPP_for_OpenCL = 6, 71 SourceLanguageSYCL = 7, 72 SourceLanguageMax = 0x7fffffff, 73 }; 74 75 enum ExecutionModel { 76 ExecutionModelVertex = 0, 77 ExecutionModelTessellationControl = 1, 78 ExecutionModelTessellationEvaluation = 2, 79 ExecutionModelGeometry = 3, 80 ExecutionModelFragment = 4, 81 ExecutionModelGLCompute = 5, 82 ExecutionModelKernel = 6, 83 ExecutionModelTaskNV = 5267, 84 ExecutionModelMeshNV = 5268, 85 ExecutionModelRayGenerationKHR = 5313, 86 ExecutionModelRayGenerationNV = 5313, 87 ExecutionModelIntersectionKHR = 5314, 88 ExecutionModelIntersectionNV = 5314, 89 ExecutionModelAnyHitKHR = 5315, 90 ExecutionModelAnyHitNV = 5315, 91 ExecutionModelClosestHitKHR = 5316, 92 ExecutionModelClosestHitNV = 5316, 93 ExecutionModelMissKHR = 5317, 94 ExecutionModelMissNV = 5317, 95 ExecutionModelCallableKHR = 5318, 96 ExecutionModelCallableNV = 5318, 97 ExecutionModelTaskEXT = 5364, 98 ExecutionModelMeshEXT = 5365, 99 ExecutionModelMax = 0x7fffffff, 100 }; 101 102 enum AddressingModel { 103 AddressingModelLogical = 0, 104 AddressingModelPhysical32 = 1, 105 AddressingModelPhysical64 = 2, 106 AddressingModelPhysicalStorageBuffer64 = 5348, 107 AddressingModelPhysicalStorageBuffer64EXT = 5348, 108 AddressingModelMax = 0x7fffffff, 109 }; 110 111 enum MemoryModel { 112 MemoryModelSimple = 0, 113 MemoryModelGLSL450 = 1, 114 MemoryModelOpenCL = 2, 115 MemoryModelVulkan = 3, 116 MemoryModelVulkanKHR = 3, 117 MemoryModelMax = 0x7fffffff, 118 }; 119 120 enum ExecutionMode { 121 ExecutionModeInvocations = 0, 122 ExecutionModeSpacingEqual = 1, 123 ExecutionModeSpacingFractionalEven = 2, 124 ExecutionModeSpacingFractionalOdd = 3, 125 ExecutionModeVertexOrderCw = 4, 126 ExecutionModeVertexOrderCcw = 5, 127 ExecutionModePixelCenterInteger = 6, 128 ExecutionModeOriginUpperLeft = 7, 129 ExecutionModeOriginLowerLeft = 8, 130 ExecutionModeEarlyFragmentTests = 9, 131 ExecutionModePointMode = 10, 132 ExecutionModeXfb = 11, 133 ExecutionModeDepthReplacing = 12, 134 ExecutionModeDepthGreater = 14, 135 ExecutionModeDepthLess = 15, 136 ExecutionModeDepthUnchanged = 16, 137 ExecutionModeLocalSize = 17, 138 ExecutionModeLocalSizeHint = 18, 139 ExecutionModeInputPoints = 19, 140 ExecutionModeInputLines = 20, 141 ExecutionModeInputLinesAdjacency = 21, 142 ExecutionModeTriangles = 22, 143 ExecutionModeInputTrianglesAdjacency = 23, 144 ExecutionModeQuads = 24, 145 ExecutionModeIsolines = 25, 146 ExecutionModeOutputVertices = 26, 147 ExecutionModeOutputPoints = 27, 148 ExecutionModeOutputLineStrip = 28, 149 ExecutionModeOutputTriangleStrip = 29, 150 ExecutionModeVecTypeHint = 30, 151 ExecutionModeContractionOff = 31, 152 ExecutionModeInitializer = 33, 153 ExecutionModeFinalizer = 34, 154 ExecutionModeSubgroupSize = 35, 155 ExecutionModeSubgroupsPerWorkgroup = 36, 156 ExecutionModeSubgroupsPerWorkgroupId = 37, 157 ExecutionModeLocalSizeId = 38, 158 ExecutionModeLocalSizeHintId = 39, 159 ExecutionModeSubgroupUniformControlFlowKHR = 4421, 160 ExecutionModePostDepthCoverage = 4446, 161 ExecutionModeDenormPreserve = 4459, 162 ExecutionModeDenormFlushToZero = 4460, 163 ExecutionModeSignedZeroInfNanPreserve = 4461, 164 ExecutionModeRoundingModeRTE = 4462, 165 ExecutionModeRoundingModeRTZ = 4463, 166 ExecutionModeEarlyAndLateFragmentTestsAMD = 5017, 167 ExecutionModeStencilRefReplacingEXT = 5027, 168 ExecutionModeStencilRefUnchangedFrontAMD = 5079, 169 ExecutionModeStencilRefGreaterFrontAMD = 5080, 170 ExecutionModeStencilRefLessFrontAMD = 5081, 171 ExecutionModeStencilRefUnchangedBackAMD = 5082, 172 ExecutionModeStencilRefGreaterBackAMD = 5083, 173 ExecutionModeStencilRefLessBackAMD = 5084, 174 ExecutionModeOutputLinesEXT = 5269, 175 ExecutionModeOutputLinesNV = 5269, 176 ExecutionModeOutputPrimitivesEXT = 5270, 177 ExecutionModeOutputPrimitivesNV = 5270, 178 ExecutionModeDerivativeGroupQuadsNV = 5289, 179 ExecutionModeDerivativeGroupLinearNV = 5290, 180 ExecutionModeOutputTrianglesEXT = 5298, 181 ExecutionModeOutputTrianglesNV = 5298, 182 ExecutionModePixelInterlockOrderedEXT = 5366, 183 ExecutionModePixelInterlockUnorderedEXT = 5367, 184 ExecutionModeSampleInterlockOrderedEXT = 5368, 185 ExecutionModeSampleInterlockUnorderedEXT = 5369, 186 ExecutionModeShadingRateInterlockOrderedEXT = 5370, 187 ExecutionModeShadingRateInterlockUnorderedEXT = 5371, 188 ExecutionModeSharedLocalMemorySizeINTEL = 5618, 189 ExecutionModeRoundingModeRTPINTEL = 5620, 190 ExecutionModeRoundingModeRTNINTEL = 5621, 191 ExecutionModeFloatingPointModeALTINTEL = 5622, 192 ExecutionModeFloatingPointModeIEEEINTEL = 5623, 193 ExecutionModeMaxWorkgroupSizeINTEL = 5893, 194 ExecutionModeMaxWorkDimINTEL = 5894, 195 ExecutionModeNoGlobalOffsetINTEL = 5895, 196 ExecutionModeNumSIMDWorkitemsINTEL = 5896, 197 ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, 198 ExecutionModeNamedBarrierCountINTEL = 6417, 199 ExecutionModeMax = 0x7fffffff, 200 }; 201 202 enum StorageClass { 203 StorageClassUniformConstant = 0, 204 StorageClassInput = 1, 205 StorageClassUniform = 2, 206 StorageClassOutput = 3, 207 StorageClassWorkgroup = 4, 208 StorageClassCrossWorkgroup = 5, 209 StorageClassPrivate = 6, 210 StorageClassFunction = 7, 211 StorageClassGeneric = 8, 212 StorageClassPushConstant = 9, 213 StorageClassAtomicCounter = 10, 214 StorageClassImage = 11, 215 StorageClassStorageBuffer = 12, 216 StorageClassCallableDataKHR = 5328, 217 StorageClassCallableDataNV = 5328, 218 StorageClassIncomingCallableDataKHR = 5329, 219 StorageClassIncomingCallableDataNV = 5329, 220 StorageClassRayPayloadKHR = 5338, 221 StorageClassRayPayloadNV = 5338, 222 StorageClassHitAttributeKHR = 5339, 223 StorageClassHitAttributeNV = 5339, 224 StorageClassIncomingRayPayloadKHR = 5342, 225 StorageClassIncomingRayPayloadNV = 5342, 226 StorageClassShaderRecordBufferKHR = 5343, 227 StorageClassShaderRecordBufferNV = 5343, 228 StorageClassPhysicalStorageBuffer = 5349, 229 StorageClassPhysicalStorageBufferEXT = 5349, 230 StorageClassTaskPayloadWorkgroupEXT = 5402, 231 StorageClassCodeSectionINTEL = 5605, 232 StorageClassDeviceOnlyINTEL = 5936, 233 StorageClassHostOnlyINTEL = 5937, 234 StorageClassMax = 0x7fffffff, 235 }; 236 237 enum Dim { 238 Dim1D = 0, 239 Dim2D = 1, 240 Dim3D = 2, 241 DimCube = 3, 242 DimRect = 4, 243 DimBuffer = 5, 244 DimSubpassData = 6, 245 DimMax = 0x7fffffff, 246 }; 247 248 enum SamplerAddressingMode { 249 SamplerAddressingModeNone = 0, 250 SamplerAddressingModeClampToEdge = 1, 251 SamplerAddressingModeClamp = 2, 252 SamplerAddressingModeRepeat = 3, 253 SamplerAddressingModeRepeatMirrored = 4, 254 SamplerAddressingModeMax = 0x7fffffff, 255 }; 256 257 enum SamplerFilterMode { 258 SamplerFilterModeNearest = 0, 259 SamplerFilterModeLinear = 1, 260 SamplerFilterModeMax = 0x7fffffff, 261 }; 262 263 enum ImageFormat { 264 ImageFormatUnknown = 0, 265 ImageFormatRgba32f = 1, 266 ImageFormatRgba16f = 2, 267 ImageFormatR32f = 3, 268 ImageFormatRgba8 = 4, 269 ImageFormatRgba8Snorm = 5, 270 ImageFormatRg32f = 6, 271 ImageFormatRg16f = 7, 272 ImageFormatR11fG11fB10f = 8, 273 ImageFormatR16f = 9, 274 ImageFormatRgba16 = 10, 275 ImageFormatRgb10A2 = 11, 276 ImageFormatRg16 = 12, 277 ImageFormatRg8 = 13, 278 ImageFormatR16 = 14, 279 ImageFormatR8 = 15, 280 ImageFormatRgba16Snorm = 16, 281 ImageFormatRg16Snorm = 17, 282 ImageFormatRg8Snorm = 18, 283 ImageFormatR16Snorm = 19, 284 ImageFormatR8Snorm = 20, 285 ImageFormatRgba32i = 21, 286 ImageFormatRgba16i = 22, 287 ImageFormatRgba8i = 23, 288 ImageFormatR32i = 24, 289 ImageFormatRg32i = 25, 290 ImageFormatRg16i = 26, 291 ImageFormatRg8i = 27, 292 ImageFormatR16i = 28, 293 ImageFormatR8i = 29, 294 ImageFormatRgba32ui = 30, 295 ImageFormatRgba16ui = 31, 296 ImageFormatRgba8ui = 32, 297 ImageFormatR32ui = 33, 298 ImageFormatRgb10a2ui = 34, 299 ImageFormatRg32ui = 35, 300 ImageFormatRg16ui = 36, 301 ImageFormatRg8ui = 37, 302 ImageFormatR16ui = 38, 303 ImageFormatR8ui = 39, 304 ImageFormatR64ui = 40, 305 ImageFormatR64i = 41, 306 ImageFormatMax = 0x7fffffff, 307 }; 308 309 enum ImageChannelOrder { 310 ImageChannelOrderR = 0, 311 ImageChannelOrderA = 1, 312 ImageChannelOrderRG = 2, 313 ImageChannelOrderRA = 3, 314 ImageChannelOrderRGB = 4, 315 ImageChannelOrderRGBA = 5, 316 ImageChannelOrderBGRA = 6, 317 ImageChannelOrderARGB = 7, 318 ImageChannelOrderIntensity = 8, 319 ImageChannelOrderLuminance = 9, 320 ImageChannelOrderRx = 10, 321 ImageChannelOrderRGx = 11, 322 ImageChannelOrderRGBx = 12, 323 ImageChannelOrderDepth = 13, 324 ImageChannelOrderDepthStencil = 14, 325 ImageChannelOrdersRGB = 15, 326 ImageChannelOrdersRGBx = 16, 327 ImageChannelOrdersRGBA = 17, 328 ImageChannelOrdersBGRA = 18, 329 ImageChannelOrderABGR = 19, 330 ImageChannelOrderMax = 0x7fffffff, 331 }; 332 333 enum ImageChannelDataType { 334 ImageChannelDataTypeSnormInt8 = 0, 335 ImageChannelDataTypeSnormInt16 = 1, 336 ImageChannelDataTypeUnormInt8 = 2, 337 ImageChannelDataTypeUnormInt16 = 3, 338 ImageChannelDataTypeUnormShort565 = 4, 339 ImageChannelDataTypeUnormShort555 = 5, 340 ImageChannelDataTypeUnormInt101010 = 6, 341 ImageChannelDataTypeSignedInt8 = 7, 342 ImageChannelDataTypeSignedInt16 = 8, 343 ImageChannelDataTypeSignedInt32 = 9, 344 ImageChannelDataTypeUnsignedInt8 = 10, 345 ImageChannelDataTypeUnsignedInt16 = 11, 346 ImageChannelDataTypeUnsignedInt32 = 12, 347 ImageChannelDataTypeHalfFloat = 13, 348 ImageChannelDataTypeFloat = 14, 349 ImageChannelDataTypeUnormInt24 = 15, 350 ImageChannelDataTypeUnormInt101010_2 = 16, 351 ImageChannelDataTypeMax = 0x7fffffff, 352 }; 353 354 enum ImageOperandsShift { 355 ImageOperandsBiasShift = 0, 356 ImageOperandsLodShift = 1, 357 ImageOperandsGradShift = 2, 358 ImageOperandsConstOffsetShift = 3, 359 ImageOperandsOffsetShift = 4, 360 ImageOperandsConstOffsetsShift = 5, 361 ImageOperandsSampleShift = 6, 362 ImageOperandsMinLodShift = 7, 363 ImageOperandsMakeTexelAvailableShift = 8, 364 ImageOperandsMakeTexelAvailableKHRShift = 8, 365 ImageOperandsMakeTexelVisibleShift = 9, 366 ImageOperandsMakeTexelVisibleKHRShift = 9, 367 ImageOperandsNonPrivateTexelShift = 10, 368 ImageOperandsNonPrivateTexelKHRShift = 10, 369 ImageOperandsVolatileTexelShift = 11, 370 ImageOperandsVolatileTexelKHRShift = 11, 371 ImageOperandsSignExtendShift = 12, 372 ImageOperandsZeroExtendShift = 13, 373 ImageOperandsNontemporalShift = 14, 374 ImageOperandsOffsetsShift = 16, 375 ImageOperandsMax = 0x7fffffff, 376 }; 377 378 enum ImageOperandsMask { 379 ImageOperandsMaskNone = 0, 380 ImageOperandsBiasMask = 0x00000001, 381 ImageOperandsLodMask = 0x00000002, 382 ImageOperandsGradMask = 0x00000004, 383 ImageOperandsConstOffsetMask = 0x00000008, 384 ImageOperandsOffsetMask = 0x00000010, 385 ImageOperandsConstOffsetsMask = 0x00000020, 386 ImageOperandsSampleMask = 0x00000040, 387 ImageOperandsMinLodMask = 0x00000080, 388 ImageOperandsMakeTexelAvailableMask = 0x00000100, 389 ImageOperandsMakeTexelAvailableKHRMask = 0x00000100, 390 ImageOperandsMakeTexelVisibleMask = 0x00000200, 391 ImageOperandsMakeTexelVisibleKHRMask = 0x00000200, 392 ImageOperandsNonPrivateTexelMask = 0x00000400, 393 ImageOperandsNonPrivateTexelKHRMask = 0x00000400, 394 ImageOperandsVolatileTexelMask = 0x00000800, 395 ImageOperandsVolatileTexelKHRMask = 0x00000800, 396 ImageOperandsSignExtendMask = 0x00001000, 397 ImageOperandsZeroExtendMask = 0x00002000, 398 ImageOperandsNontemporalMask = 0x00004000, 399 ImageOperandsOffsetsMask = 0x00010000, 400 }; 401 402 enum FPFastMathModeShift { 403 FPFastMathModeNotNaNShift = 0, 404 FPFastMathModeNotInfShift = 1, 405 FPFastMathModeNSZShift = 2, 406 FPFastMathModeAllowRecipShift = 3, 407 FPFastMathModeFastShift = 4, 408 FPFastMathModeAllowContractFastINTELShift = 16, 409 FPFastMathModeAllowReassocINTELShift = 17, 410 FPFastMathModeMax = 0x7fffffff, 411 }; 412 413 enum FPFastMathModeMask { 414 FPFastMathModeMaskNone = 0, 415 FPFastMathModeNotNaNMask = 0x00000001, 416 FPFastMathModeNotInfMask = 0x00000002, 417 FPFastMathModeNSZMask = 0x00000004, 418 FPFastMathModeAllowRecipMask = 0x00000008, 419 FPFastMathModeFastMask = 0x00000010, 420 FPFastMathModeAllowContractFastINTELMask = 0x00010000, 421 FPFastMathModeAllowReassocINTELMask = 0x00020000, 422 }; 423 424 enum FPRoundingMode { 425 FPRoundingModeRTE = 0, 426 FPRoundingModeRTZ = 1, 427 FPRoundingModeRTP = 2, 428 FPRoundingModeRTN = 3, 429 FPRoundingModeMax = 0x7fffffff, 430 }; 431 432 enum LinkageType { 433 LinkageTypeExport = 0, 434 LinkageTypeImport = 1, 435 LinkageTypeLinkOnceODR = 2, 436 LinkageTypeMax = 0x7fffffff, 437 }; 438 439 enum AccessQualifier { 440 AccessQualifierReadOnly = 0, 441 AccessQualifierWriteOnly = 1, 442 AccessQualifierReadWrite = 2, 443 AccessQualifierMax = 0x7fffffff, 444 }; 445 446 enum FunctionParameterAttribute { 447 FunctionParameterAttributeZext = 0, 448 FunctionParameterAttributeSext = 1, 449 FunctionParameterAttributeByVal = 2, 450 FunctionParameterAttributeSret = 3, 451 FunctionParameterAttributeNoAlias = 4, 452 FunctionParameterAttributeNoCapture = 5, 453 FunctionParameterAttributeNoWrite = 6, 454 FunctionParameterAttributeNoReadWrite = 7, 455 FunctionParameterAttributeMax = 0x7fffffff, 456 }; 457 458 enum Decoration { 459 DecorationRelaxedPrecision = 0, 460 DecorationSpecId = 1, 461 DecorationBlock = 2, 462 DecorationBufferBlock = 3, 463 DecorationRowMajor = 4, 464 DecorationColMajor = 5, 465 DecorationArrayStride = 6, 466 DecorationMatrixStride = 7, 467 DecorationGLSLShared = 8, 468 DecorationGLSLPacked = 9, 469 DecorationCPacked = 10, 470 DecorationBuiltIn = 11, 471 DecorationNoPerspective = 13, 472 DecorationFlat = 14, 473 DecorationPatch = 15, 474 DecorationCentroid = 16, 475 DecorationSample = 17, 476 DecorationInvariant = 18, 477 DecorationRestrict = 19, 478 DecorationAliased = 20, 479 DecorationVolatile = 21, 480 DecorationConstant = 22, 481 DecorationCoherent = 23, 482 DecorationNonWritable = 24, 483 DecorationNonReadable = 25, 484 DecorationUniform = 26, 485 DecorationUniformId = 27, 486 DecorationSaturatedConversion = 28, 487 DecorationStream = 29, 488 DecorationLocation = 30, 489 DecorationComponent = 31, 490 DecorationIndex = 32, 491 DecorationBinding = 33, 492 DecorationDescriptorSet = 34, 493 DecorationOffset = 35, 494 DecorationXfbBuffer = 36, 495 DecorationXfbStride = 37, 496 DecorationFuncParamAttr = 38, 497 DecorationFPRoundingMode = 39, 498 DecorationFPFastMathMode = 40, 499 DecorationLinkageAttributes = 41, 500 DecorationNoContraction = 42, 501 DecorationInputAttachmentIndex = 43, 502 DecorationAlignment = 44, 503 DecorationMaxByteOffset = 45, 504 DecorationAlignmentId = 46, 505 DecorationMaxByteOffsetId = 47, 506 DecorationNoSignedWrap = 4469, 507 DecorationNoUnsignedWrap = 4470, 508 DecorationExplicitInterpAMD = 4999, 509 DecorationOverrideCoverageNV = 5248, 510 DecorationPassthroughNV = 5250, 511 DecorationViewportRelativeNV = 5252, 512 DecorationSecondaryViewportRelativeNV = 5256, 513 DecorationPerPrimitiveEXT = 5271, 514 DecorationPerPrimitiveNV = 5271, 515 DecorationPerViewNV = 5272, 516 DecorationPerTaskNV = 5273, 517 DecorationPerVertexKHR = 5285, 518 DecorationPerVertexNV = 5285, 519 DecorationNonUniform = 5300, 520 DecorationNonUniformEXT = 5300, 521 DecorationRestrictPointer = 5355, 522 DecorationRestrictPointerEXT = 5355, 523 DecorationAliasedPointer = 5356, 524 DecorationAliasedPointerEXT = 5356, 525 DecorationBindlessSamplerNV = 5398, 526 DecorationBindlessImageNV = 5399, 527 DecorationBoundSamplerNV = 5400, 528 DecorationBoundImageNV = 5401, 529 DecorationSIMTCallINTEL = 5599, 530 DecorationReferencedIndirectlyINTEL = 5602, 531 DecorationClobberINTEL = 5607, 532 DecorationSideEffectsINTEL = 5608, 533 DecorationVectorComputeVariableINTEL = 5624, 534 DecorationFuncParamIOKindINTEL = 5625, 535 DecorationVectorComputeFunctionINTEL = 5626, 536 DecorationStackCallINTEL = 5627, 537 DecorationGlobalVariableOffsetINTEL = 5628, 538 DecorationCounterBuffer = 5634, 539 DecorationHlslCounterBufferGOOGLE = 5634, 540 DecorationHlslSemanticGOOGLE = 5635, 541 DecorationUserSemantic = 5635, 542 DecorationUserTypeGOOGLE = 5636, 543 DecorationFunctionRoundingModeINTEL = 5822, 544 DecorationFunctionDenormModeINTEL = 5823, 545 DecorationRegisterINTEL = 5825, 546 DecorationMemoryINTEL = 5826, 547 DecorationNumbanksINTEL = 5827, 548 DecorationBankwidthINTEL = 5828, 549 DecorationMaxPrivateCopiesINTEL = 5829, 550 DecorationSinglepumpINTEL = 5830, 551 DecorationDoublepumpINTEL = 5831, 552 DecorationMaxReplicatesINTEL = 5832, 553 DecorationSimpleDualPortINTEL = 5833, 554 DecorationMergeINTEL = 5834, 555 DecorationBankBitsINTEL = 5835, 556 DecorationForcePow2DepthINTEL = 5836, 557 DecorationBurstCoalesceINTEL = 5899, 558 DecorationCacheSizeINTEL = 5900, 559 DecorationDontStaticallyCoalesceINTEL = 5901, 560 DecorationPrefetchINTEL = 5902, 561 DecorationStallEnableINTEL = 5905, 562 DecorationFuseLoopsInFunctionINTEL = 5907, 563 DecorationAliasScopeINTEL = 5914, 564 DecorationNoAliasINTEL = 5915, 565 DecorationBufferLocationINTEL = 5921, 566 DecorationIOPipeStorageINTEL = 5944, 567 DecorationFunctionFloatingPointModeINTEL = 6080, 568 DecorationSingleElementVectorINTEL = 6085, 569 DecorationVectorComputeCallableFunctionINTEL = 6087, 570 DecorationMediaBlockIOINTEL = 6140, 571 DecorationMax = 0x7fffffff, 572 }; 573 574 enum BuiltIn { 575 BuiltInPosition = 0, 576 BuiltInPointSize = 1, 577 BuiltInClipDistance = 3, 578 BuiltInCullDistance = 4, 579 BuiltInVertexId = 5, 580 BuiltInInstanceId = 6, 581 BuiltInPrimitiveId = 7, 582 BuiltInInvocationId = 8, 583 BuiltInLayer = 9, 584 BuiltInViewportIndex = 10, 585 BuiltInTessLevelOuter = 11, 586 BuiltInTessLevelInner = 12, 587 BuiltInTessCoord = 13, 588 BuiltInPatchVertices = 14, 589 BuiltInFragCoord = 15, 590 BuiltInPointCoord = 16, 591 BuiltInFrontFacing = 17, 592 BuiltInSampleId = 18, 593 BuiltInSamplePosition = 19, 594 BuiltInSampleMask = 20, 595 BuiltInFragDepth = 22, 596 BuiltInHelperInvocation = 23, 597 BuiltInNumWorkgroups = 24, 598 BuiltInWorkgroupSize = 25, 599 BuiltInWorkgroupId = 26, 600 BuiltInLocalInvocationId = 27, 601 BuiltInGlobalInvocationId = 28, 602 BuiltInLocalInvocationIndex = 29, 603 BuiltInWorkDim = 30, 604 BuiltInGlobalSize = 31, 605 BuiltInEnqueuedWorkgroupSize = 32, 606 BuiltInGlobalOffset = 33, 607 BuiltInGlobalLinearId = 34, 608 BuiltInSubgroupSize = 36, 609 BuiltInSubgroupMaxSize = 37, 610 BuiltInNumSubgroups = 38, 611 BuiltInNumEnqueuedSubgroups = 39, 612 BuiltInSubgroupId = 40, 613 BuiltInSubgroupLocalInvocationId = 41, 614 BuiltInVertexIndex = 42, 615 BuiltInInstanceIndex = 43, 616 BuiltInSubgroupEqMask = 4416, 617 BuiltInSubgroupEqMaskKHR = 4416, 618 BuiltInSubgroupGeMask = 4417, 619 BuiltInSubgroupGeMaskKHR = 4417, 620 BuiltInSubgroupGtMask = 4418, 621 BuiltInSubgroupGtMaskKHR = 4418, 622 BuiltInSubgroupLeMask = 4419, 623 BuiltInSubgroupLeMaskKHR = 4419, 624 BuiltInSubgroupLtMask = 4420, 625 BuiltInSubgroupLtMaskKHR = 4420, 626 BuiltInBaseVertex = 4424, 627 BuiltInBaseInstance = 4425, 628 BuiltInDrawIndex = 4426, 629 BuiltInPrimitiveShadingRateKHR = 4432, 630 BuiltInDeviceIndex = 4438, 631 BuiltInViewIndex = 4440, 632 BuiltInShadingRateKHR = 4444, 633 BuiltInBaryCoordNoPerspAMD = 4992, 634 BuiltInBaryCoordNoPerspCentroidAMD = 4993, 635 BuiltInBaryCoordNoPerspSampleAMD = 4994, 636 BuiltInBaryCoordSmoothAMD = 4995, 637 BuiltInBaryCoordSmoothCentroidAMD = 4996, 638 BuiltInBaryCoordSmoothSampleAMD = 4997, 639 BuiltInBaryCoordPullModelAMD = 4998, 640 BuiltInFragStencilRefEXT = 5014, 641 BuiltInViewportMaskNV = 5253, 642 BuiltInSecondaryPositionNV = 5257, 643 BuiltInSecondaryViewportMaskNV = 5258, 644 BuiltInPositionPerViewNV = 5261, 645 BuiltInViewportMaskPerViewNV = 5262, 646 BuiltInFullyCoveredEXT = 5264, 647 BuiltInTaskCountNV = 5274, 648 BuiltInPrimitiveCountNV = 5275, 649 BuiltInPrimitiveIndicesNV = 5276, 650 BuiltInClipDistancePerViewNV = 5277, 651 BuiltInCullDistancePerViewNV = 5278, 652 BuiltInLayerPerViewNV = 5279, 653 BuiltInMeshViewCountNV = 5280, 654 BuiltInMeshViewIndicesNV = 5281, 655 BuiltInBaryCoordKHR = 5286, 656 BuiltInBaryCoordNV = 5286, 657 BuiltInBaryCoordNoPerspKHR = 5287, 658 BuiltInBaryCoordNoPerspNV = 5287, 659 BuiltInFragSizeEXT = 5292, 660 BuiltInFragmentSizeNV = 5292, 661 BuiltInFragInvocationCountEXT = 5293, 662 BuiltInInvocationsPerPixelNV = 5293, 663 BuiltInPrimitivePointIndicesEXT = 5294, 664 BuiltInPrimitiveLineIndicesEXT = 5295, 665 BuiltInPrimitiveTriangleIndicesEXT = 5296, 666 BuiltInCullPrimitiveEXT = 5299, 667 BuiltInLaunchIdKHR = 5319, 668 BuiltInLaunchIdNV = 5319, 669 BuiltInLaunchSizeKHR = 5320, 670 BuiltInLaunchSizeNV = 5320, 671 BuiltInWorldRayOriginKHR = 5321, 672 BuiltInWorldRayOriginNV = 5321, 673 BuiltInWorldRayDirectionKHR = 5322, 674 BuiltInWorldRayDirectionNV = 5322, 675 BuiltInObjectRayOriginKHR = 5323, 676 BuiltInObjectRayOriginNV = 5323, 677 BuiltInObjectRayDirectionKHR = 5324, 678 BuiltInObjectRayDirectionNV = 5324, 679 BuiltInRayTminKHR = 5325, 680 BuiltInRayTminNV = 5325, 681 BuiltInRayTmaxKHR = 5326, 682 BuiltInRayTmaxNV = 5326, 683 BuiltInInstanceCustomIndexKHR = 5327, 684 BuiltInInstanceCustomIndexNV = 5327, 685 BuiltInObjectToWorldKHR = 5330, 686 BuiltInObjectToWorldNV = 5330, 687 BuiltInWorldToObjectKHR = 5331, 688 BuiltInWorldToObjectNV = 5331, 689 BuiltInHitTNV = 5332, 690 BuiltInHitKindKHR = 5333, 691 BuiltInHitKindNV = 5333, 692 BuiltInCurrentRayTimeNV = 5334, 693 BuiltInIncomingRayFlagsKHR = 5351, 694 BuiltInIncomingRayFlagsNV = 5351, 695 BuiltInRayGeometryIndexKHR = 5352, 696 BuiltInWarpsPerSMNV = 5374, 697 BuiltInSMCountNV = 5375, 698 BuiltInWarpIDNV = 5376, 699 BuiltInSMIDNV = 5377, 700 BuiltInCullMaskKHR = 6021, 701 BuiltInMax = 0x7fffffff, 702 }; 703 704 enum SelectionControlShift { 705 SelectionControlFlattenShift = 0, 706 SelectionControlDontFlattenShift = 1, 707 SelectionControlMax = 0x7fffffff, 708 }; 709 710 enum SelectionControlMask { 711 SelectionControlMaskNone = 0, 712 SelectionControlFlattenMask = 0x00000001, 713 SelectionControlDontFlattenMask = 0x00000002, 714 }; 715 716 enum LoopControlShift { 717 LoopControlUnrollShift = 0, 718 LoopControlDontUnrollShift = 1, 719 LoopControlDependencyInfiniteShift = 2, 720 LoopControlDependencyLengthShift = 3, 721 LoopControlMinIterationsShift = 4, 722 LoopControlMaxIterationsShift = 5, 723 LoopControlIterationMultipleShift = 6, 724 LoopControlPeelCountShift = 7, 725 LoopControlPartialCountShift = 8, 726 LoopControlInitiationIntervalINTELShift = 16, 727 LoopControlMaxConcurrencyINTELShift = 17, 728 LoopControlDependencyArrayINTELShift = 18, 729 LoopControlPipelineEnableINTELShift = 19, 730 LoopControlLoopCoalesceINTELShift = 20, 731 LoopControlMaxInterleavingINTELShift = 21, 732 LoopControlSpeculatedIterationsINTELShift = 22, 733 LoopControlNoFusionINTELShift = 23, 734 LoopControlMax = 0x7fffffff, 735 }; 736 737 enum LoopControlMask { 738 LoopControlMaskNone = 0, 739 LoopControlUnrollMask = 0x00000001, 740 LoopControlDontUnrollMask = 0x00000002, 741 LoopControlDependencyInfiniteMask = 0x00000004, 742 LoopControlDependencyLengthMask = 0x00000008, 743 LoopControlMinIterationsMask = 0x00000010, 744 LoopControlMaxIterationsMask = 0x00000020, 745 LoopControlIterationMultipleMask = 0x00000040, 746 LoopControlPeelCountMask = 0x00000080, 747 LoopControlPartialCountMask = 0x00000100, 748 LoopControlInitiationIntervalINTELMask = 0x00010000, 749 LoopControlMaxConcurrencyINTELMask = 0x00020000, 750 LoopControlDependencyArrayINTELMask = 0x00040000, 751 LoopControlPipelineEnableINTELMask = 0x00080000, 752 LoopControlLoopCoalesceINTELMask = 0x00100000, 753 LoopControlMaxInterleavingINTELMask = 0x00200000, 754 LoopControlSpeculatedIterationsINTELMask = 0x00400000, 755 LoopControlNoFusionINTELMask = 0x00800000, 756 }; 757 758 enum FunctionControlShift { 759 FunctionControlInlineShift = 0, 760 FunctionControlDontInlineShift = 1, 761 FunctionControlPureShift = 2, 762 FunctionControlConstShift = 3, 763 FunctionControlOptNoneINTELShift = 16, 764 FunctionControlMax = 0x7fffffff, 765 }; 766 767 enum FunctionControlMask { 768 FunctionControlMaskNone = 0, 769 FunctionControlInlineMask = 0x00000001, 770 FunctionControlDontInlineMask = 0x00000002, 771 FunctionControlPureMask = 0x00000004, 772 FunctionControlConstMask = 0x00000008, 773 FunctionControlOptNoneINTELMask = 0x00010000, 774 }; 775 776 enum MemorySemanticsShift { 777 MemorySemanticsAcquireShift = 1, 778 MemorySemanticsReleaseShift = 2, 779 MemorySemanticsAcquireReleaseShift = 3, 780 MemorySemanticsSequentiallyConsistentShift = 4, 781 MemorySemanticsUniformMemoryShift = 6, 782 MemorySemanticsSubgroupMemoryShift = 7, 783 MemorySemanticsWorkgroupMemoryShift = 8, 784 MemorySemanticsCrossWorkgroupMemoryShift = 9, 785 MemorySemanticsAtomicCounterMemoryShift = 10, 786 MemorySemanticsImageMemoryShift = 11, 787 MemorySemanticsOutputMemoryShift = 12, 788 MemorySemanticsOutputMemoryKHRShift = 12, 789 MemorySemanticsMakeAvailableShift = 13, 790 MemorySemanticsMakeAvailableKHRShift = 13, 791 MemorySemanticsMakeVisibleShift = 14, 792 MemorySemanticsMakeVisibleKHRShift = 14, 793 MemorySemanticsVolatileShift = 15, 794 MemorySemanticsMax = 0x7fffffff, 795 }; 796 797 enum MemorySemanticsMask { 798 MemorySemanticsMaskNone = 0, 799 MemorySemanticsAcquireMask = 0x00000002, 800 MemorySemanticsReleaseMask = 0x00000004, 801 MemorySemanticsAcquireReleaseMask = 0x00000008, 802 MemorySemanticsSequentiallyConsistentMask = 0x00000010, 803 MemorySemanticsUniformMemoryMask = 0x00000040, 804 MemorySemanticsSubgroupMemoryMask = 0x00000080, 805 MemorySemanticsWorkgroupMemoryMask = 0x00000100, 806 MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, 807 MemorySemanticsAtomicCounterMemoryMask = 0x00000400, 808 MemorySemanticsImageMemoryMask = 0x00000800, 809 MemorySemanticsOutputMemoryMask = 0x00001000, 810 MemorySemanticsOutputMemoryKHRMask = 0x00001000, 811 MemorySemanticsMakeAvailableMask = 0x00002000, 812 MemorySemanticsMakeAvailableKHRMask = 0x00002000, 813 MemorySemanticsMakeVisibleMask = 0x00004000, 814 MemorySemanticsMakeVisibleKHRMask = 0x00004000, 815 MemorySemanticsVolatileMask = 0x00008000, 816 }; 817 818 enum MemoryAccessShift { 819 MemoryAccessVolatileShift = 0, 820 MemoryAccessAlignedShift = 1, 821 MemoryAccessNontemporalShift = 2, 822 MemoryAccessMakePointerAvailableShift = 3, 823 MemoryAccessMakePointerAvailableKHRShift = 3, 824 MemoryAccessMakePointerVisibleShift = 4, 825 MemoryAccessMakePointerVisibleKHRShift = 4, 826 MemoryAccessNonPrivatePointerShift = 5, 827 MemoryAccessNonPrivatePointerKHRShift = 5, 828 MemoryAccessAliasScopeINTELMaskShift = 16, 829 MemoryAccessNoAliasINTELMaskShift = 17, 830 MemoryAccessMax = 0x7fffffff, 831 }; 832 833 enum MemoryAccessMask { 834 MemoryAccessMaskNone = 0, 835 MemoryAccessVolatileMask = 0x00000001, 836 MemoryAccessAlignedMask = 0x00000002, 837 MemoryAccessNontemporalMask = 0x00000004, 838 MemoryAccessMakePointerAvailableMask = 0x00000008, 839 MemoryAccessMakePointerAvailableKHRMask = 0x00000008, 840 MemoryAccessMakePointerVisibleMask = 0x00000010, 841 MemoryAccessMakePointerVisibleKHRMask = 0x00000010, 842 MemoryAccessNonPrivatePointerMask = 0x00000020, 843 MemoryAccessNonPrivatePointerKHRMask = 0x00000020, 844 MemoryAccessAliasScopeINTELMaskMask = 0x00010000, 845 MemoryAccessNoAliasINTELMaskMask = 0x00020000, 846 }; 847 848 enum Scope { 849 ScopeCrossDevice = 0, 850 ScopeDevice = 1, 851 ScopeWorkgroup = 2, 852 ScopeSubgroup = 3, 853 ScopeInvocation = 4, 854 ScopeQueueFamily = 5, 855 ScopeQueueFamilyKHR = 5, 856 ScopeShaderCallKHR = 6, 857 ScopeMax = 0x7fffffff, 858 }; 859 860 enum GroupOperation { 861 GroupOperationReduce = 0, 862 GroupOperationInclusiveScan = 1, 863 GroupOperationExclusiveScan = 2, 864 GroupOperationClusteredReduce = 3, 865 GroupOperationPartitionedReduceNV = 6, 866 GroupOperationPartitionedInclusiveScanNV = 7, 867 GroupOperationPartitionedExclusiveScanNV = 8, 868 GroupOperationMax = 0x7fffffff, 869 }; 870 871 enum KernelEnqueueFlags { 872 KernelEnqueueFlagsNoWait = 0, 873 KernelEnqueueFlagsWaitKernel = 1, 874 KernelEnqueueFlagsWaitWorkGroup = 2, 875 KernelEnqueueFlagsMax = 0x7fffffff, 876 }; 877 878 enum KernelProfilingInfoShift { 879 KernelProfilingInfoCmdExecTimeShift = 0, 880 KernelProfilingInfoMax = 0x7fffffff, 881 }; 882 883 enum KernelProfilingInfoMask { 884 KernelProfilingInfoMaskNone = 0, 885 KernelProfilingInfoCmdExecTimeMask = 0x00000001, 886 }; 887 888 enum Capability { 889 CapabilityMatrix = 0, 890 CapabilityShader = 1, 891 CapabilityGeometry = 2, 892 CapabilityTessellation = 3, 893 CapabilityAddresses = 4, 894 CapabilityLinkage = 5, 895 CapabilityKernel = 6, 896 CapabilityVector16 = 7, 897 CapabilityFloat16Buffer = 8, 898 CapabilityFloat16 = 9, 899 CapabilityFloat64 = 10, 900 CapabilityInt64 = 11, 901 CapabilityInt64Atomics = 12, 902 CapabilityImageBasic = 13, 903 CapabilityImageReadWrite = 14, 904 CapabilityImageMipmap = 15, 905 CapabilityPipes = 17, 906 CapabilityGroups = 18, 907 CapabilityDeviceEnqueue = 19, 908 CapabilityLiteralSampler = 20, 909 CapabilityAtomicStorage = 21, 910 CapabilityInt16 = 22, 911 CapabilityTessellationPointSize = 23, 912 CapabilityGeometryPointSize = 24, 913 CapabilityImageGatherExtended = 25, 914 CapabilityStorageImageMultisample = 27, 915 CapabilityUniformBufferArrayDynamicIndexing = 28, 916 CapabilitySampledImageArrayDynamicIndexing = 29, 917 CapabilityStorageBufferArrayDynamicIndexing = 30, 918 CapabilityStorageImageArrayDynamicIndexing = 31, 919 CapabilityClipDistance = 32, 920 CapabilityCullDistance = 33, 921 CapabilityImageCubeArray = 34, 922 CapabilitySampleRateShading = 35, 923 CapabilityImageRect = 36, 924 CapabilitySampledRect = 37, 925 CapabilityGenericPointer = 38, 926 CapabilityInt8 = 39, 927 CapabilityInputAttachment = 40, 928 CapabilitySparseResidency = 41, 929 CapabilityMinLod = 42, 930 CapabilitySampled1D = 43, 931 CapabilityImage1D = 44, 932 CapabilitySampledCubeArray = 45, 933 CapabilitySampledBuffer = 46, 934 CapabilityImageBuffer = 47, 935 CapabilityImageMSArray = 48, 936 CapabilityStorageImageExtendedFormats = 49, 937 CapabilityImageQuery = 50, 938 CapabilityDerivativeControl = 51, 939 CapabilityInterpolationFunction = 52, 940 CapabilityTransformFeedback = 53, 941 CapabilityGeometryStreams = 54, 942 CapabilityStorageImageReadWithoutFormat = 55, 943 CapabilityStorageImageWriteWithoutFormat = 56, 944 CapabilityMultiViewport = 57, 945 CapabilitySubgroupDispatch = 58, 946 CapabilityNamedBarrier = 59, 947 CapabilityPipeStorage = 60, 948 CapabilityGroupNonUniform = 61, 949 CapabilityGroupNonUniformVote = 62, 950 CapabilityGroupNonUniformArithmetic = 63, 951 CapabilityGroupNonUniformBallot = 64, 952 CapabilityGroupNonUniformShuffle = 65, 953 CapabilityGroupNonUniformShuffleRelative = 66, 954 CapabilityGroupNonUniformClustered = 67, 955 CapabilityGroupNonUniformQuad = 68, 956 CapabilityShaderLayer = 69, 957 CapabilityShaderViewportIndex = 70, 958 CapabilityUniformDecoration = 71, 959 CapabilityFragmentShadingRateKHR = 4422, 960 CapabilitySubgroupBallotKHR = 4423, 961 CapabilityDrawParameters = 4427, 962 CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, 963 CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, 964 CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, 965 CapabilitySubgroupVoteKHR = 4431, 966 CapabilityStorageBuffer16BitAccess = 4433, 967 CapabilityStorageUniformBufferBlock16 = 4433, 968 CapabilityStorageUniform16 = 4434, 969 CapabilityUniformAndStorageBuffer16BitAccess = 4434, 970 CapabilityStoragePushConstant16 = 4435, 971 CapabilityStorageInputOutput16 = 4436, 972 CapabilityDeviceGroup = 4437, 973 CapabilityMultiView = 4439, 974 CapabilityVariablePointersStorageBuffer = 4441, 975 CapabilityVariablePointers = 4442, 976 CapabilityAtomicStorageOps = 4445, 977 CapabilitySampleMaskPostDepthCoverage = 4447, 978 CapabilityStorageBuffer8BitAccess = 4448, 979 CapabilityUniformAndStorageBuffer8BitAccess = 4449, 980 CapabilityStoragePushConstant8 = 4450, 981 CapabilityDenormPreserve = 4464, 982 CapabilityDenormFlushToZero = 4465, 983 CapabilitySignedZeroInfNanPreserve = 4466, 984 CapabilityRoundingModeRTE = 4467, 985 CapabilityRoundingModeRTZ = 4468, 986 CapabilityRayQueryProvisionalKHR = 4471, 987 CapabilityRayQueryKHR = 4472, 988 CapabilityRayTraversalPrimitiveCullingKHR = 4478, 989 CapabilityRayTracingKHR = 4479, 990 CapabilityFloat16ImageAMD = 5008, 991 CapabilityImageGatherBiasLodAMD = 5009, 992 CapabilityFragmentMaskAMD = 5010, 993 CapabilityStencilExportEXT = 5013, 994 CapabilityImageReadWriteLodAMD = 5015, 995 CapabilityInt64ImageEXT = 5016, 996 CapabilityShaderClockKHR = 5055, 997 CapabilitySampleMaskOverrideCoverageNV = 5249, 998 CapabilityGeometryShaderPassthroughNV = 5251, 999 CapabilityShaderViewportIndexLayerEXT = 5254, 1000 CapabilityShaderViewportIndexLayerNV = 5254, 1001 CapabilityShaderViewportMaskNV = 5255, 1002 CapabilityShaderStereoViewNV = 5259, 1003 CapabilityPerViewAttributesNV = 5260, 1004 CapabilityFragmentFullyCoveredEXT = 5265, 1005 CapabilityMeshShadingNV = 5266, 1006 CapabilityImageFootprintNV = 5282, 1007 CapabilityMeshShadingEXT = 5283, 1008 CapabilityFragmentBarycentricKHR = 5284, 1009 CapabilityFragmentBarycentricNV = 5284, 1010 CapabilityComputeDerivativeGroupQuadsNV = 5288, 1011 CapabilityFragmentDensityEXT = 5291, 1012 CapabilityShadingRateNV = 5291, 1013 CapabilityGroupNonUniformPartitionedNV = 5297, 1014 CapabilityShaderNonUniform = 5301, 1015 CapabilityShaderNonUniformEXT = 5301, 1016 CapabilityRuntimeDescriptorArray = 5302, 1017 CapabilityRuntimeDescriptorArrayEXT = 5302, 1018 CapabilityInputAttachmentArrayDynamicIndexing = 5303, 1019 CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, 1020 CapabilityUniformTexelBufferArrayDynamicIndexing = 5304, 1021 CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, 1022 CapabilityStorageTexelBufferArrayDynamicIndexing = 5305, 1023 CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, 1024 CapabilityUniformBufferArrayNonUniformIndexing = 5306, 1025 CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, 1026 CapabilitySampledImageArrayNonUniformIndexing = 5307, 1027 CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, 1028 CapabilityStorageBufferArrayNonUniformIndexing = 5308, 1029 CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, 1030 CapabilityStorageImageArrayNonUniformIndexing = 5309, 1031 CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, 1032 CapabilityInputAttachmentArrayNonUniformIndexing = 5310, 1033 CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, 1034 CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, 1035 CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, 1036 CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, 1037 CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, 1038 CapabilityRayTracingNV = 5340, 1039 CapabilityRayTracingMotionBlurNV = 5341, 1040 CapabilityVulkanMemoryModel = 5345, 1041 CapabilityVulkanMemoryModelKHR = 5345, 1042 CapabilityVulkanMemoryModelDeviceScope = 5346, 1043 CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, 1044 CapabilityPhysicalStorageBufferAddresses = 5347, 1045 CapabilityPhysicalStorageBufferAddressesEXT = 5347, 1046 CapabilityComputeDerivativeGroupLinearNV = 5350, 1047 CapabilityRayTracingProvisionalKHR = 5353, 1048 CapabilityCooperativeMatrixNV = 5357, 1049 CapabilityFragmentShaderSampleInterlockEXT = 5363, 1050 CapabilityFragmentShaderShadingRateInterlockEXT = 5372, 1051 CapabilityShaderSMBuiltinsNV = 5373, 1052 CapabilityFragmentShaderPixelInterlockEXT = 5378, 1053 CapabilityDemoteToHelperInvocation = 5379, 1054 CapabilityDemoteToHelperInvocationEXT = 5379, 1055 CapabilityBindlessTextureNV = 5390, 1056 CapabilitySubgroupShuffleINTEL = 5568, 1057 CapabilitySubgroupBufferBlockIOINTEL = 5569, 1058 CapabilitySubgroupImageBlockIOINTEL = 5570, 1059 CapabilitySubgroupImageMediaBlockIOINTEL = 5579, 1060 CapabilityRoundToInfinityINTEL = 5582, 1061 CapabilityFloatingPointModeINTEL = 5583, 1062 CapabilityIntegerFunctions2INTEL = 5584, 1063 CapabilityFunctionPointersINTEL = 5603, 1064 CapabilityIndirectReferencesINTEL = 5604, 1065 CapabilityAsmINTEL = 5606, 1066 CapabilityAtomicFloat32MinMaxEXT = 5612, 1067 CapabilityAtomicFloat64MinMaxEXT = 5613, 1068 CapabilityAtomicFloat16MinMaxEXT = 5616, 1069 CapabilityVectorComputeINTEL = 5617, 1070 CapabilityVectorAnyINTEL = 5619, 1071 CapabilityExpectAssumeKHR = 5629, 1072 CapabilitySubgroupAvcMotionEstimationINTEL = 5696, 1073 CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, 1074 CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, 1075 CapabilityVariableLengthArrayINTEL = 5817, 1076 CapabilityFunctionFloatControlINTEL = 5821, 1077 CapabilityFPGAMemoryAttributesINTEL = 5824, 1078 CapabilityFPFastMathModeINTEL = 5837, 1079 CapabilityArbitraryPrecisionIntegersINTEL = 5844, 1080 CapabilityArbitraryPrecisionFloatingPointINTEL = 5845, 1081 CapabilityUnstructuredLoopControlsINTEL = 5886, 1082 CapabilityFPGALoopControlsINTEL = 5888, 1083 CapabilityKernelAttributesINTEL = 5892, 1084 CapabilityFPGAKernelAttributesINTEL = 5897, 1085 CapabilityFPGAMemoryAccessesINTEL = 5898, 1086 CapabilityFPGAClusterAttributesINTEL = 5904, 1087 CapabilityLoopFuseINTEL = 5906, 1088 CapabilityMemoryAccessAliasingINTEL = 5910, 1089 CapabilityFPGABufferLocationINTEL = 5920, 1090 CapabilityArbitraryPrecisionFixedPointINTEL = 5922, 1091 CapabilityUSMStorageClassesINTEL = 5935, 1092 CapabilityIOPipesINTEL = 5943, 1093 CapabilityBlockingPipesINTEL = 5945, 1094 CapabilityFPGARegINTEL = 5948, 1095 CapabilityDotProductInputAll = 6016, 1096 CapabilityDotProductInputAllKHR = 6016, 1097 CapabilityDotProductInput4x8Bit = 6017, 1098 CapabilityDotProductInput4x8BitKHR = 6017, 1099 CapabilityDotProductInput4x8BitPacked = 6018, 1100 CapabilityDotProductInput4x8BitPackedKHR = 6018, 1101 CapabilityDotProduct = 6019, 1102 CapabilityDotProductKHR = 6019, 1103 CapabilityRayCullMaskKHR = 6020, 1104 CapabilityBitInstructions = 6025, 1105 CapabilityGroupNonUniformRotateKHR = 6026, 1106 CapabilityAtomicFloat32AddEXT = 6033, 1107 CapabilityAtomicFloat64AddEXT = 6034, 1108 CapabilityLongConstantCompositeINTEL = 6089, 1109 CapabilityOptNoneINTEL = 6094, 1110 CapabilityAtomicFloat16AddEXT = 6095, 1111 CapabilityDebugInfoModuleINTEL = 6114, 1112 CapabilitySplitBarrierINTEL = 6141, 1113 CapabilityGroupUniformArithmeticKHR = 6400, 1114 CapabilityMax = 0x7fffffff, 1115 }; 1116 1117 enum RayFlagsShift { 1118 RayFlagsOpaqueKHRShift = 0, 1119 RayFlagsNoOpaqueKHRShift = 1, 1120 RayFlagsTerminateOnFirstHitKHRShift = 2, 1121 RayFlagsSkipClosestHitShaderKHRShift = 3, 1122 RayFlagsCullBackFacingTrianglesKHRShift = 4, 1123 RayFlagsCullFrontFacingTrianglesKHRShift = 5, 1124 RayFlagsCullOpaqueKHRShift = 6, 1125 RayFlagsCullNoOpaqueKHRShift = 7, 1126 RayFlagsSkipTrianglesKHRShift = 8, 1127 RayFlagsSkipAABBsKHRShift = 9, 1128 RayFlagsMax = 0x7fffffff, 1129 }; 1130 1131 enum RayFlagsMask { 1132 RayFlagsMaskNone = 0, 1133 RayFlagsOpaqueKHRMask = 0x00000001, 1134 RayFlagsNoOpaqueKHRMask = 0x00000002, 1135 RayFlagsTerminateOnFirstHitKHRMask = 0x00000004, 1136 RayFlagsSkipClosestHitShaderKHRMask = 0x00000008, 1137 RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010, 1138 RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020, 1139 RayFlagsCullOpaqueKHRMask = 0x00000040, 1140 RayFlagsCullNoOpaqueKHRMask = 0x00000080, 1141 RayFlagsSkipTrianglesKHRMask = 0x00000100, 1142 RayFlagsSkipAABBsKHRMask = 0x00000200, 1143 }; 1144 1145 enum RayQueryIntersection { 1146 RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0, 1147 RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1, 1148 RayQueryIntersectionMax = 0x7fffffff, 1149 }; 1150 1151 enum RayQueryCommittedIntersectionType { 1152 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0, 1153 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1, 1154 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2, 1155 RayQueryCommittedIntersectionTypeMax = 0x7fffffff, 1156 }; 1157 1158 enum RayQueryCandidateIntersectionType { 1159 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0, 1160 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1, 1161 RayQueryCandidateIntersectionTypeMax = 0x7fffffff, 1162 }; 1163 1164 enum FragmentShadingRateShift { 1165 FragmentShadingRateVertical2PixelsShift = 0, 1166 FragmentShadingRateVertical4PixelsShift = 1, 1167 FragmentShadingRateHorizontal2PixelsShift = 2, 1168 FragmentShadingRateHorizontal4PixelsShift = 3, 1169 FragmentShadingRateMax = 0x7fffffff, 1170 }; 1171 1172 enum FragmentShadingRateMask { 1173 FragmentShadingRateMaskNone = 0, 1174 FragmentShadingRateVertical2PixelsMask = 0x00000001, 1175 FragmentShadingRateVertical4PixelsMask = 0x00000002, 1176 FragmentShadingRateHorizontal2PixelsMask = 0x00000004, 1177 FragmentShadingRateHorizontal4PixelsMask = 0x00000008, 1178 }; 1179 1180 enum FPDenormMode { 1181 FPDenormModePreserve = 0, 1182 FPDenormModeFlushToZero = 1, 1183 FPDenormModeMax = 0x7fffffff, 1184 }; 1185 1186 enum FPOperationMode { 1187 FPOperationModeIEEE = 0, 1188 FPOperationModeALT = 1, 1189 FPOperationModeMax = 0x7fffffff, 1190 }; 1191 1192 enum QuantizationModes { 1193 QuantizationModesTRN = 0, 1194 QuantizationModesTRN_ZERO = 1, 1195 QuantizationModesRND = 2, 1196 QuantizationModesRND_ZERO = 3, 1197 QuantizationModesRND_INF = 4, 1198 QuantizationModesRND_MIN_INF = 5, 1199 QuantizationModesRND_CONV = 6, 1200 QuantizationModesRND_CONV_ODD = 7, 1201 QuantizationModesMax = 0x7fffffff, 1202 }; 1203 1204 enum OverflowModes { 1205 OverflowModesWRAP = 0, 1206 OverflowModesSAT = 1, 1207 OverflowModesSAT_ZERO = 2, 1208 OverflowModesSAT_SYM = 3, 1209 OverflowModesMax = 0x7fffffff, 1210 }; 1211 1212 enum PackedVectorFormat { 1213 PackedVectorFormatPackedVectorFormat4x8Bit = 0, 1214 PackedVectorFormatPackedVectorFormat4x8BitKHR = 0, 1215 PackedVectorFormatMax = 0x7fffffff, 1216 }; 1217 1218 enum Op { 1219 OpNop = 0, 1220 OpUndef = 1, 1221 OpSourceContinued = 2, 1222 OpSource = 3, 1223 OpSourceExtension = 4, 1224 OpName = 5, 1225 OpMemberName = 6, 1226 OpString = 7, 1227 OpLine = 8, 1228 OpExtension = 10, 1229 OpExtInstImport = 11, 1230 OpExtInst = 12, 1231 OpMemoryModel = 14, 1232 OpEntryPoint = 15, 1233 OpExecutionMode = 16, 1234 OpCapability = 17, 1235 OpTypeVoid = 19, 1236 OpTypeBool = 20, 1237 OpTypeInt = 21, 1238 OpTypeFloat = 22, 1239 OpTypeVector = 23, 1240 OpTypeMatrix = 24, 1241 OpTypeImage = 25, 1242 OpTypeSampler = 26, 1243 OpTypeSampledImage = 27, 1244 OpTypeArray = 28, 1245 OpTypeRuntimeArray = 29, 1246 OpTypeStruct = 30, 1247 OpTypeOpaque = 31, 1248 OpTypePointer = 32, 1249 OpTypeFunction = 33, 1250 OpTypeEvent = 34, 1251 OpTypeDeviceEvent = 35, 1252 OpTypeReserveId = 36, 1253 OpTypeQueue = 37, 1254 OpTypePipe = 38, 1255 OpTypeForwardPointer = 39, 1256 OpConstantTrue = 41, 1257 OpConstantFalse = 42, 1258 OpConstant = 43, 1259 OpConstantComposite = 44, 1260 OpConstantSampler = 45, 1261 OpConstantNull = 46, 1262 OpSpecConstantTrue = 48, 1263 OpSpecConstantFalse = 49, 1264 OpSpecConstant = 50, 1265 OpSpecConstantComposite = 51, 1266 OpSpecConstantOp = 52, 1267 OpFunction = 54, 1268 OpFunctionParameter = 55, 1269 OpFunctionEnd = 56, 1270 OpFunctionCall = 57, 1271 OpVariable = 59, 1272 OpImageTexelPointer = 60, 1273 OpLoad = 61, 1274 OpStore = 62, 1275 OpCopyMemory = 63, 1276 OpCopyMemorySized = 64, 1277 OpAccessChain = 65, 1278 OpInBoundsAccessChain = 66, 1279 OpPtrAccessChain = 67, 1280 OpArrayLength = 68, 1281 OpGenericPtrMemSemantics = 69, 1282 OpInBoundsPtrAccessChain = 70, 1283 OpDecorate = 71, 1284 OpMemberDecorate = 72, 1285 OpDecorationGroup = 73, 1286 OpGroupDecorate = 74, 1287 OpGroupMemberDecorate = 75, 1288 OpVectorExtractDynamic = 77, 1289 OpVectorInsertDynamic = 78, 1290 OpVectorShuffle = 79, 1291 OpCompositeConstruct = 80, 1292 OpCompositeExtract = 81, 1293 OpCompositeInsert = 82, 1294 OpCopyObject = 83, 1295 OpTranspose = 84, 1296 OpSampledImage = 86, 1297 OpImageSampleImplicitLod = 87, 1298 OpImageSampleExplicitLod = 88, 1299 OpImageSampleDrefImplicitLod = 89, 1300 OpImageSampleDrefExplicitLod = 90, 1301 OpImageSampleProjImplicitLod = 91, 1302 OpImageSampleProjExplicitLod = 92, 1303 OpImageSampleProjDrefImplicitLod = 93, 1304 OpImageSampleProjDrefExplicitLod = 94, 1305 OpImageFetch = 95, 1306 OpImageGather = 96, 1307 OpImageDrefGather = 97, 1308 OpImageRead = 98, 1309 OpImageWrite = 99, 1310 OpImage = 100, 1311 OpImageQueryFormat = 101, 1312 OpImageQueryOrder = 102, 1313 OpImageQuerySizeLod = 103, 1314 OpImageQuerySize = 104, 1315 OpImageQueryLod = 105, 1316 OpImageQueryLevels = 106, 1317 OpImageQuerySamples = 107, 1318 OpConvertFToU = 109, 1319 OpConvertFToS = 110, 1320 OpConvertSToF = 111, 1321 OpConvertUToF = 112, 1322 OpUConvert = 113, 1323 OpSConvert = 114, 1324 OpFConvert = 115, 1325 OpQuantizeToF16 = 116, 1326 OpConvertPtrToU = 117, 1327 OpSatConvertSToU = 118, 1328 OpSatConvertUToS = 119, 1329 OpConvertUToPtr = 120, 1330 OpPtrCastToGeneric = 121, 1331 OpGenericCastToPtr = 122, 1332 OpGenericCastToPtrExplicit = 123, 1333 OpBitcast = 124, 1334 OpSNegate = 126, 1335 OpFNegate = 127, 1336 OpIAdd = 128, 1337 OpFAdd = 129, 1338 OpISub = 130, 1339 OpFSub = 131, 1340 OpIMul = 132, 1341 OpFMul = 133, 1342 OpUDiv = 134, 1343 OpSDiv = 135, 1344 OpFDiv = 136, 1345 OpUMod = 137, 1346 OpSRem = 138, 1347 OpSMod = 139, 1348 OpFRem = 140, 1349 OpFMod = 141, 1350 OpVectorTimesScalar = 142, 1351 OpMatrixTimesScalar = 143, 1352 OpVectorTimesMatrix = 144, 1353 OpMatrixTimesVector = 145, 1354 OpMatrixTimesMatrix = 146, 1355 OpOuterProduct = 147, 1356 OpDot = 148, 1357 OpIAddCarry = 149, 1358 OpISubBorrow = 150, 1359 OpUMulExtended = 151, 1360 OpSMulExtended = 152, 1361 OpAny = 154, 1362 OpAll = 155, 1363 OpIsNan = 156, 1364 OpIsInf = 157, 1365 OpIsFinite = 158, 1366 OpIsNormal = 159, 1367 OpSignBitSet = 160, 1368 OpLessOrGreater = 161, 1369 OpOrdered = 162, 1370 OpUnordered = 163, 1371 OpLogicalEqual = 164, 1372 OpLogicalNotEqual = 165, 1373 OpLogicalOr = 166, 1374 OpLogicalAnd = 167, 1375 OpLogicalNot = 168, 1376 OpSelect = 169, 1377 OpIEqual = 170, 1378 OpINotEqual = 171, 1379 OpUGreaterThan = 172, 1380 OpSGreaterThan = 173, 1381 OpUGreaterThanEqual = 174, 1382 OpSGreaterThanEqual = 175, 1383 OpULessThan = 176, 1384 OpSLessThan = 177, 1385 OpULessThanEqual = 178, 1386 OpSLessThanEqual = 179, 1387 OpFOrdEqual = 180, 1388 OpFUnordEqual = 181, 1389 OpFOrdNotEqual = 182, 1390 OpFUnordNotEqual = 183, 1391 OpFOrdLessThan = 184, 1392 OpFUnordLessThan = 185, 1393 OpFOrdGreaterThan = 186, 1394 OpFUnordGreaterThan = 187, 1395 OpFOrdLessThanEqual = 188, 1396 OpFUnordLessThanEqual = 189, 1397 OpFOrdGreaterThanEqual = 190, 1398 OpFUnordGreaterThanEqual = 191, 1399 OpShiftRightLogical = 194, 1400 OpShiftRightArithmetic = 195, 1401 OpShiftLeftLogical = 196, 1402 OpBitwiseOr = 197, 1403 OpBitwiseXor = 198, 1404 OpBitwiseAnd = 199, 1405 OpNot = 200, 1406 OpBitFieldInsert = 201, 1407 OpBitFieldSExtract = 202, 1408 OpBitFieldUExtract = 203, 1409 OpBitReverse = 204, 1410 OpBitCount = 205, 1411 OpDPdx = 207, 1412 OpDPdy = 208, 1413 OpFwidth = 209, 1414 OpDPdxFine = 210, 1415 OpDPdyFine = 211, 1416 OpFwidthFine = 212, 1417 OpDPdxCoarse = 213, 1418 OpDPdyCoarse = 214, 1419 OpFwidthCoarse = 215, 1420 OpEmitVertex = 218, 1421 OpEndPrimitive = 219, 1422 OpEmitStreamVertex = 220, 1423 OpEndStreamPrimitive = 221, 1424 OpControlBarrier = 224, 1425 OpMemoryBarrier = 225, 1426 OpAtomicLoad = 227, 1427 OpAtomicStore = 228, 1428 OpAtomicExchange = 229, 1429 OpAtomicCompareExchange = 230, 1430 OpAtomicCompareExchangeWeak = 231, 1431 OpAtomicIIncrement = 232, 1432 OpAtomicIDecrement = 233, 1433 OpAtomicIAdd = 234, 1434 OpAtomicISub = 235, 1435 OpAtomicSMin = 236, 1436 OpAtomicUMin = 237, 1437 OpAtomicSMax = 238, 1438 OpAtomicUMax = 239, 1439 OpAtomicAnd = 240, 1440 OpAtomicOr = 241, 1441 OpAtomicXor = 242, 1442 OpPhi = 245, 1443 OpLoopMerge = 246, 1444 OpSelectionMerge = 247, 1445 OpLabel = 248, 1446 OpBranch = 249, 1447 OpBranchConditional = 250, 1448 OpSwitch = 251, 1449 OpKill = 252, 1450 OpReturn = 253, 1451 OpReturnValue = 254, 1452 OpUnreachable = 255, 1453 OpLifetimeStart = 256, 1454 OpLifetimeStop = 257, 1455 OpGroupAsyncCopy = 259, 1456 OpGroupWaitEvents = 260, 1457 OpGroupAll = 261, 1458 OpGroupAny = 262, 1459 OpGroupBroadcast = 263, 1460 OpGroupIAdd = 264, 1461 OpGroupFAdd = 265, 1462 OpGroupFMin = 266, 1463 OpGroupUMin = 267, 1464 OpGroupSMin = 268, 1465 OpGroupFMax = 269, 1466 OpGroupUMax = 270, 1467 OpGroupSMax = 271, 1468 OpReadPipe = 274, 1469 OpWritePipe = 275, 1470 OpReservedReadPipe = 276, 1471 OpReservedWritePipe = 277, 1472 OpReserveReadPipePackets = 278, 1473 OpReserveWritePipePackets = 279, 1474 OpCommitReadPipe = 280, 1475 OpCommitWritePipe = 281, 1476 OpIsValidReserveId = 282, 1477 OpGetNumPipePackets = 283, 1478 OpGetMaxPipePackets = 284, 1479 OpGroupReserveReadPipePackets = 285, 1480 OpGroupReserveWritePipePackets = 286, 1481 OpGroupCommitReadPipe = 287, 1482 OpGroupCommitWritePipe = 288, 1483 OpEnqueueMarker = 291, 1484 OpEnqueueKernel = 292, 1485 OpGetKernelNDrangeSubGroupCount = 293, 1486 OpGetKernelNDrangeMaxSubGroupSize = 294, 1487 OpGetKernelWorkGroupSize = 295, 1488 OpGetKernelPreferredWorkGroupSizeMultiple = 296, 1489 OpRetainEvent = 297, 1490 OpReleaseEvent = 298, 1491 OpCreateUserEvent = 299, 1492 OpIsValidEvent = 300, 1493 OpSetUserEventStatus = 301, 1494 OpCaptureEventProfilingInfo = 302, 1495 OpGetDefaultQueue = 303, 1496 OpBuildNDRange = 304, 1497 OpImageSparseSampleImplicitLod = 305, 1498 OpImageSparseSampleExplicitLod = 306, 1499 OpImageSparseSampleDrefImplicitLod = 307, 1500 OpImageSparseSampleDrefExplicitLod = 308, 1501 OpImageSparseSampleProjImplicitLod = 309, 1502 OpImageSparseSampleProjExplicitLod = 310, 1503 OpImageSparseSampleProjDrefImplicitLod = 311, 1504 OpImageSparseSampleProjDrefExplicitLod = 312, 1505 OpImageSparseFetch = 313, 1506 OpImageSparseGather = 314, 1507 OpImageSparseDrefGather = 315, 1508 OpImageSparseTexelsResident = 316, 1509 OpNoLine = 317, 1510 OpAtomicFlagTestAndSet = 318, 1511 OpAtomicFlagClear = 319, 1512 OpImageSparseRead = 320, 1513 OpSizeOf = 321, 1514 OpTypePipeStorage = 322, 1515 OpConstantPipeStorage = 323, 1516 OpCreatePipeFromPipeStorage = 324, 1517 OpGetKernelLocalSizeForSubgroupCount = 325, 1518 OpGetKernelMaxNumSubgroups = 326, 1519 OpTypeNamedBarrier = 327, 1520 OpNamedBarrierInitialize = 328, 1521 OpMemoryNamedBarrier = 329, 1522 OpModuleProcessed = 330, 1523 OpExecutionModeId = 331, 1524 OpDecorateId = 332, 1525 OpGroupNonUniformElect = 333, 1526 OpGroupNonUniformAll = 334, 1527 OpGroupNonUniformAny = 335, 1528 OpGroupNonUniformAllEqual = 336, 1529 OpGroupNonUniformBroadcast = 337, 1530 OpGroupNonUniformBroadcastFirst = 338, 1531 OpGroupNonUniformBallot = 339, 1532 OpGroupNonUniformInverseBallot = 340, 1533 OpGroupNonUniformBallotBitExtract = 341, 1534 OpGroupNonUniformBallotBitCount = 342, 1535 OpGroupNonUniformBallotFindLSB = 343, 1536 OpGroupNonUniformBallotFindMSB = 344, 1537 OpGroupNonUniformShuffle = 345, 1538 OpGroupNonUniformShuffleXor = 346, 1539 OpGroupNonUniformShuffleUp = 347, 1540 OpGroupNonUniformShuffleDown = 348, 1541 OpGroupNonUniformIAdd = 349, 1542 OpGroupNonUniformFAdd = 350, 1543 OpGroupNonUniformIMul = 351, 1544 OpGroupNonUniformFMul = 352, 1545 OpGroupNonUniformSMin = 353, 1546 OpGroupNonUniformUMin = 354, 1547 OpGroupNonUniformFMin = 355, 1548 OpGroupNonUniformSMax = 356, 1549 OpGroupNonUniformUMax = 357, 1550 OpGroupNonUniformFMax = 358, 1551 OpGroupNonUniformBitwiseAnd = 359, 1552 OpGroupNonUniformBitwiseOr = 360, 1553 OpGroupNonUniformBitwiseXor = 361, 1554 OpGroupNonUniformLogicalAnd = 362, 1555 OpGroupNonUniformLogicalOr = 363, 1556 OpGroupNonUniformLogicalXor = 364, 1557 OpGroupNonUniformQuadBroadcast = 365, 1558 OpGroupNonUniformQuadSwap = 366, 1559 OpCopyLogical = 400, 1560 OpPtrEqual = 401, 1561 OpPtrNotEqual = 402, 1562 OpPtrDiff = 403, 1563 OpTerminateInvocation = 4416, 1564 OpSubgroupBallotKHR = 4421, 1565 OpSubgroupFirstInvocationKHR = 4422, 1566 OpSubgroupAllKHR = 4428, 1567 OpSubgroupAnyKHR = 4429, 1568 OpSubgroupAllEqualKHR = 4430, 1569 OpGroupNonUniformRotateKHR = 4431, 1570 OpSubgroupReadInvocationKHR = 4432, 1571 OpTraceRayKHR = 4445, 1572 OpExecuteCallableKHR = 4446, 1573 OpConvertUToAccelerationStructureKHR = 4447, 1574 OpIgnoreIntersectionKHR = 4448, 1575 OpTerminateRayKHR = 4449, 1576 OpSDot = 4450, 1577 OpSDotKHR = 4450, 1578 OpUDot = 4451, 1579 OpUDotKHR = 4451, 1580 OpSUDot = 4452, 1581 OpSUDotKHR = 4452, 1582 OpSDotAccSat = 4453, 1583 OpSDotAccSatKHR = 4453, 1584 OpUDotAccSat = 4454, 1585 OpUDotAccSatKHR = 4454, 1586 OpSUDotAccSat = 4455, 1587 OpSUDotAccSatKHR = 4455, 1588 OpTypeRayQueryKHR = 4472, 1589 OpRayQueryInitializeKHR = 4473, 1590 OpRayQueryTerminateKHR = 4474, 1591 OpRayQueryGenerateIntersectionKHR = 4475, 1592 OpRayQueryConfirmIntersectionKHR = 4476, 1593 OpRayQueryProceedKHR = 4477, 1594 OpRayQueryGetIntersectionTypeKHR = 4479, 1595 OpGroupIAddNonUniformAMD = 5000, 1596 OpGroupFAddNonUniformAMD = 5001, 1597 OpGroupFMinNonUniformAMD = 5002, 1598 OpGroupUMinNonUniformAMD = 5003, 1599 OpGroupSMinNonUniformAMD = 5004, 1600 OpGroupFMaxNonUniformAMD = 5005, 1601 OpGroupUMaxNonUniformAMD = 5006, 1602 OpGroupSMaxNonUniformAMD = 5007, 1603 OpFragmentMaskFetchAMD = 5011, 1604 OpFragmentFetchAMD = 5012, 1605 OpReadClockKHR = 5056, 1606 OpImageSampleFootprintNV = 5283, 1607 OpEmitMeshTasksEXT = 5294, 1608 OpSetMeshOutputsEXT = 5295, 1609 OpGroupNonUniformPartitionNV = 5296, 1610 OpWritePackedPrimitiveIndices4x8NV = 5299, 1611 OpReportIntersectionKHR = 5334, 1612 OpReportIntersectionNV = 5334, 1613 OpIgnoreIntersectionNV = 5335, 1614 OpTerminateRayNV = 5336, 1615 OpTraceNV = 5337, 1616 OpTraceMotionNV = 5338, 1617 OpTraceRayMotionNV = 5339, 1618 OpTypeAccelerationStructureKHR = 5341, 1619 OpTypeAccelerationStructureNV = 5341, 1620 OpExecuteCallableNV = 5344, 1621 OpTypeCooperativeMatrixNV = 5358, 1622 OpCooperativeMatrixLoadNV = 5359, 1623 OpCooperativeMatrixStoreNV = 5360, 1624 OpCooperativeMatrixMulAddNV = 5361, 1625 OpCooperativeMatrixLengthNV = 5362, 1626 OpBeginInvocationInterlockEXT = 5364, 1627 OpEndInvocationInterlockEXT = 5365, 1628 OpDemoteToHelperInvocation = 5380, 1629 OpDemoteToHelperInvocationEXT = 5380, 1630 OpIsHelperInvocationEXT = 5381, 1631 OpConvertUToImageNV = 5391, 1632 OpConvertUToSamplerNV = 5392, 1633 OpConvertImageToUNV = 5393, 1634 OpConvertSamplerToUNV = 5394, 1635 OpConvertUToSampledImageNV = 5395, 1636 OpConvertSampledImageToUNV = 5396, 1637 OpSamplerImageAddressingModeNV = 5397, 1638 OpSubgroupShuffleINTEL = 5571, 1639 OpSubgroupShuffleDownINTEL = 5572, 1640 OpSubgroupShuffleUpINTEL = 5573, 1641 OpSubgroupShuffleXorINTEL = 5574, 1642 OpSubgroupBlockReadINTEL = 5575, 1643 OpSubgroupBlockWriteINTEL = 5576, 1644 OpSubgroupImageBlockReadINTEL = 5577, 1645 OpSubgroupImageBlockWriteINTEL = 5578, 1646 OpSubgroupImageMediaBlockReadINTEL = 5580, 1647 OpSubgroupImageMediaBlockWriteINTEL = 5581, 1648 OpUCountLeadingZerosINTEL = 5585, 1649 OpUCountTrailingZerosINTEL = 5586, 1650 OpAbsISubINTEL = 5587, 1651 OpAbsUSubINTEL = 5588, 1652 OpIAddSatINTEL = 5589, 1653 OpUAddSatINTEL = 5590, 1654 OpIAverageINTEL = 5591, 1655 OpUAverageINTEL = 5592, 1656 OpIAverageRoundedINTEL = 5593, 1657 OpUAverageRoundedINTEL = 5594, 1658 OpISubSatINTEL = 5595, 1659 OpUSubSatINTEL = 5596, 1660 OpIMul32x16INTEL = 5597, 1661 OpUMul32x16INTEL = 5598, 1662 OpConstantFunctionPointerINTEL = 5600, 1663 OpFunctionPointerCallINTEL = 5601, 1664 OpAsmTargetINTEL = 5609, 1665 OpAsmINTEL = 5610, 1666 OpAsmCallINTEL = 5611, 1667 OpAtomicFMinEXT = 5614, 1668 OpAtomicFMaxEXT = 5615, 1669 OpAssumeTrueKHR = 5630, 1670 OpExpectKHR = 5631, 1671 OpDecorateString = 5632, 1672 OpDecorateStringGOOGLE = 5632, 1673 OpMemberDecorateString = 5633, 1674 OpMemberDecorateStringGOOGLE = 5633, 1675 OpVmeImageINTEL = 5699, 1676 OpTypeVmeImageINTEL = 5700, 1677 OpTypeAvcImePayloadINTEL = 5701, 1678 OpTypeAvcRefPayloadINTEL = 5702, 1679 OpTypeAvcSicPayloadINTEL = 5703, 1680 OpTypeAvcMcePayloadINTEL = 5704, 1681 OpTypeAvcMceResultINTEL = 5705, 1682 OpTypeAvcImeResultINTEL = 5706, 1683 OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, 1684 OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, 1685 OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, 1686 OpTypeAvcImeDualReferenceStreaminINTEL = 5710, 1687 OpTypeAvcRefResultINTEL = 5711, 1688 OpTypeAvcSicResultINTEL = 5712, 1689 OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, 1690 OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, 1691 OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, 1692 OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, 1693 OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, 1694 OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, 1695 OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, 1696 OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, 1697 OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, 1698 OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, 1699 OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, 1700 OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, 1701 OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, 1702 OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, 1703 OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, 1704 OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, 1705 OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, 1706 OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, 1707 OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, 1708 OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, 1709 OpSubgroupAvcMceConvertToImeResultINTEL = 5733, 1710 OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, 1711 OpSubgroupAvcMceConvertToRefResultINTEL = 5735, 1712 OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, 1713 OpSubgroupAvcMceConvertToSicResultINTEL = 5737, 1714 OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, 1715 OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, 1716 OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, 1717 OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, 1718 OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, 1719 OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, 1720 OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, 1721 OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, 1722 OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, 1723 OpSubgroupAvcImeInitializeINTEL = 5747, 1724 OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, 1725 OpSubgroupAvcImeSetDualReferenceINTEL = 5749, 1726 OpSubgroupAvcImeRefWindowSizeINTEL = 5750, 1727 OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, 1728 OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, 1729 OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, 1730 OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, 1731 OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, 1732 OpSubgroupAvcImeSetWeightedSadINTEL = 5756, 1733 OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, 1734 OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, 1735 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, 1736 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, 1737 OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, 1738 OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, 1739 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, 1740 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, 1741 OpSubgroupAvcImeConvertToMceResultINTEL = 5765, 1742 OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, 1743 OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, 1744 OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, 1745 OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, 1746 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, 1747 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, 1748 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, 1749 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, 1750 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, 1751 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, 1752 OpSubgroupAvcImeGetBorderReachedINTEL = 5776, 1753 OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, 1754 OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, 1755 OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, 1756 OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, 1757 OpSubgroupAvcFmeInitializeINTEL = 5781, 1758 OpSubgroupAvcBmeInitializeINTEL = 5782, 1759 OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, 1760 OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, 1761 OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, 1762 OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, 1763 OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, 1764 OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, 1765 OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, 1766 OpSubgroupAvcRefConvertToMceResultINTEL = 5790, 1767 OpSubgroupAvcSicInitializeINTEL = 5791, 1768 OpSubgroupAvcSicConfigureSkcINTEL = 5792, 1769 OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, 1770 OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, 1771 OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, 1772 OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, 1773 OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, 1774 OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, 1775 OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, 1776 OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, 1777 OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, 1778 OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, 1779 OpSubgroupAvcSicEvaluateIpeINTEL = 5803, 1780 OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, 1781 OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, 1782 OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, 1783 OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, 1784 OpSubgroupAvcSicConvertToMceResultINTEL = 5808, 1785 OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, 1786 OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, 1787 OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, 1788 OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, 1789 OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, 1790 OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, 1791 OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, 1792 OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, 1793 OpVariableLengthArrayINTEL = 5818, 1794 OpSaveMemoryINTEL = 5819, 1795 OpRestoreMemoryINTEL = 5820, 1796 OpArbitraryFloatSinCosPiINTEL = 5840, 1797 OpArbitraryFloatCastINTEL = 5841, 1798 OpArbitraryFloatCastFromIntINTEL = 5842, 1799 OpArbitraryFloatCastToIntINTEL = 5843, 1800 OpArbitraryFloatAddINTEL = 5846, 1801 OpArbitraryFloatSubINTEL = 5847, 1802 OpArbitraryFloatMulINTEL = 5848, 1803 OpArbitraryFloatDivINTEL = 5849, 1804 OpArbitraryFloatGTINTEL = 5850, 1805 OpArbitraryFloatGEINTEL = 5851, 1806 OpArbitraryFloatLTINTEL = 5852, 1807 OpArbitraryFloatLEINTEL = 5853, 1808 OpArbitraryFloatEQINTEL = 5854, 1809 OpArbitraryFloatRecipINTEL = 5855, 1810 OpArbitraryFloatRSqrtINTEL = 5856, 1811 OpArbitraryFloatCbrtINTEL = 5857, 1812 OpArbitraryFloatHypotINTEL = 5858, 1813 OpArbitraryFloatSqrtINTEL = 5859, 1814 OpArbitraryFloatLogINTEL = 5860, 1815 OpArbitraryFloatLog2INTEL = 5861, 1816 OpArbitraryFloatLog10INTEL = 5862, 1817 OpArbitraryFloatLog1pINTEL = 5863, 1818 OpArbitraryFloatExpINTEL = 5864, 1819 OpArbitraryFloatExp2INTEL = 5865, 1820 OpArbitraryFloatExp10INTEL = 5866, 1821 OpArbitraryFloatExpm1INTEL = 5867, 1822 OpArbitraryFloatSinINTEL = 5868, 1823 OpArbitraryFloatCosINTEL = 5869, 1824 OpArbitraryFloatSinCosINTEL = 5870, 1825 OpArbitraryFloatSinPiINTEL = 5871, 1826 OpArbitraryFloatCosPiINTEL = 5872, 1827 OpArbitraryFloatASinINTEL = 5873, 1828 OpArbitraryFloatASinPiINTEL = 5874, 1829 OpArbitraryFloatACosINTEL = 5875, 1830 OpArbitraryFloatACosPiINTEL = 5876, 1831 OpArbitraryFloatATanINTEL = 5877, 1832 OpArbitraryFloatATanPiINTEL = 5878, 1833 OpArbitraryFloatATan2INTEL = 5879, 1834 OpArbitraryFloatPowINTEL = 5880, 1835 OpArbitraryFloatPowRINTEL = 5881, 1836 OpArbitraryFloatPowNINTEL = 5882, 1837 OpLoopControlINTEL = 5887, 1838 OpAliasDomainDeclINTEL = 5911, 1839 OpAliasScopeDeclINTEL = 5912, 1840 OpAliasScopeListDeclINTEL = 5913, 1841 OpFixedSqrtINTEL = 5923, 1842 OpFixedRecipINTEL = 5924, 1843 OpFixedRsqrtINTEL = 5925, 1844 OpFixedSinINTEL = 5926, 1845 OpFixedCosINTEL = 5927, 1846 OpFixedSinCosINTEL = 5928, 1847 OpFixedSinPiINTEL = 5929, 1848 OpFixedCosPiINTEL = 5930, 1849 OpFixedSinCosPiINTEL = 5931, 1850 OpFixedLogINTEL = 5932, 1851 OpFixedExpINTEL = 5933, 1852 OpPtrCastToCrossWorkgroupINTEL = 5934, 1853 OpCrossWorkgroupCastToPtrINTEL = 5938, 1854 OpReadPipeBlockingINTEL = 5946, 1855 OpWritePipeBlockingINTEL = 5947, 1856 OpFPGARegINTEL = 5949, 1857 OpRayQueryGetRayTMinKHR = 6016, 1858 OpRayQueryGetRayFlagsKHR = 6017, 1859 OpRayQueryGetIntersectionTKHR = 6018, 1860 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, 1861 OpRayQueryGetIntersectionInstanceIdKHR = 6020, 1862 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, 1863 OpRayQueryGetIntersectionGeometryIndexKHR = 6022, 1864 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, 1865 OpRayQueryGetIntersectionBarycentricsKHR = 6024, 1866 OpRayQueryGetIntersectionFrontFaceKHR = 6025, 1867 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, 1868 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, 1869 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, 1870 OpRayQueryGetWorldRayDirectionKHR = 6029, 1871 OpRayQueryGetWorldRayOriginKHR = 6030, 1872 OpRayQueryGetIntersectionObjectToWorldKHR = 6031, 1873 OpRayQueryGetIntersectionWorldToObjectKHR = 6032, 1874 OpAtomicFAddEXT = 6035, 1875 OpTypeBufferSurfaceINTEL = 6086, 1876 OpTypeStructContinuedINTEL = 6090, 1877 OpConstantCompositeContinuedINTEL = 6091, 1878 OpSpecConstantCompositeContinuedINTEL = 6092, 1879 OpControlBarrierArriveINTEL = 6142, 1880 OpControlBarrierWaitINTEL = 6143, 1881 OpGroupIMulKHR = 6401, 1882 OpGroupFMulKHR = 6402, 1883 OpGroupBitwiseAndKHR = 6403, 1884 OpGroupBitwiseOrKHR = 6404, 1885 OpGroupBitwiseXorKHR = 6405, 1886 OpGroupLogicalAndKHR = 6406, 1887 OpGroupLogicalOrKHR = 6407, 1888 OpGroupLogicalXorKHR = 6408, 1889 OpMax = 0x7fffffff, 1890 }; 1891 1892 #ifdef SPV_ENABLE_UTILITY_CODE 1893 #ifndef __cplusplus 1894 #include <stdbool.h> 1895 #endif 1896 inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { 1897 *hasResult = *hasResultType = false; 1898 switch (opcode) { 1899 default: /* unknown opcode */ break; 1900 case OpNop: *hasResult = false; *hasResultType = false; break; 1901 case OpUndef: *hasResult = true; *hasResultType = true; break; 1902 case OpSourceContinued: *hasResult = false; *hasResultType = false; break; 1903 case OpSource: *hasResult = false; *hasResultType = false; break; 1904 case OpSourceExtension: *hasResult = false; *hasResultType = false; break; 1905 case OpName: *hasResult = false; *hasResultType = false; break; 1906 case OpMemberName: *hasResult = false; *hasResultType = false; break; 1907 case OpString: *hasResult = true; *hasResultType = false; break; 1908 case OpLine: *hasResult = false; *hasResultType = false; break; 1909 case OpExtension: *hasResult = false; *hasResultType = false; break; 1910 case OpExtInstImport: *hasResult = true; *hasResultType = false; break; 1911 case OpExtInst: *hasResult = true; *hasResultType = true; break; 1912 case OpMemoryModel: *hasResult = false; *hasResultType = false; break; 1913 case OpEntryPoint: *hasResult = false; *hasResultType = false; break; 1914 case OpExecutionMode: *hasResult = false; *hasResultType = false; break; 1915 case OpCapability: *hasResult = false; *hasResultType = false; break; 1916 case OpTypeVoid: *hasResult = true; *hasResultType = false; break; 1917 case OpTypeBool: *hasResult = true; *hasResultType = false; break; 1918 case OpTypeInt: *hasResult = true; *hasResultType = false; break; 1919 case OpTypeFloat: *hasResult = true; *hasResultType = false; break; 1920 case OpTypeVector: *hasResult = true; *hasResultType = false; break; 1921 case OpTypeMatrix: *hasResult = true; *hasResultType = false; break; 1922 case OpTypeImage: *hasResult = true; *hasResultType = false; break; 1923 case OpTypeSampler: *hasResult = true; *hasResultType = false; break; 1924 case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; 1925 case OpTypeArray: *hasResult = true; *hasResultType = false; break; 1926 case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; 1927 case OpTypeStruct: *hasResult = true; *hasResultType = false; break; 1928 case OpTypeOpaque: *hasResult = true; *hasResultType = false; break; 1929 case OpTypePointer: *hasResult = true; *hasResultType = false; break; 1930 case OpTypeFunction: *hasResult = true; *hasResultType = false; break; 1931 case OpTypeEvent: *hasResult = true; *hasResultType = false; break; 1932 case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; 1933 case OpTypeReserveId: *hasResult = true; *hasResultType = false; break; 1934 case OpTypeQueue: *hasResult = true; *hasResultType = false; break; 1935 case OpTypePipe: *hasResult = true; *hasResultType = false; break; 1936 case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; 1937 case OpConstantTrue: *hasResult = true; *hasResultType = true; break; 1938 case OpConstantFalse: *hasResult = true; *hasResultType = true; break; 1939 case OpConstant: *hasResult = true; *hasResultType = true; break; 1940 case OpConstantComposite: *hasResult = true; *hasResultType = true; break; 1941 case OpConstantSampler: *hasResult = true; *hasResultType = true; break; 1942 case OpConstantNull: *hasResult = true; *hasResultType = true; break; 1943 case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; 1944 case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; 1945 case OpSpecConstant: *hasResult = true; *hasResultType = true; break; 1946 case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; 1947 case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; 1948 case OpFunction: *hasResult = true; *hasResultType = true; break; 1949 case OpFunctionParameter: *hasResult = true; *hasResultType = true; break; 1950 case OpFunctionEnd: *hasResult = false; *hasResultType = false; break; 1951 case OpFunctionCall: *hasResult = true; *hasResultType = true; break; 1952 case OpVariable: *hasResult = true; *hasResultType = true; break; 1953 case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; 1954 case OpLoad: *hasResult = true; *hasResultType = true; break; 1955 case OpStore: *hasResult = false; *hasResultType = false; break; 1956 case OpCopyMemory: *hasResult = false; *hasResultType = false; break; 1957 case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; 1958 case OpAccessChain: *hasResult = true; *hasResultType = true; break; 1959 case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; 1960 case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; 1961 case OpArrayLength: *hasResult = true; *hasResultType = true; break; 1962 case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; 1963 case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; 1964 case OpDecorate: *hasResult = false; *hasResultType = false; break; 1965 case OpMemberDecorate: *hasResult = false; *hasResultType = false; break; 1966 case OpDecorationGroup: *hasResult = true; *hasResultType = false; break; 1967 case OpGroupDecorate: *hasResult = false; *hasResultType = false; break; 1968 case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; 1969 case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; 1970 case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; 1971 case OpVectorShuffle: *hasResult = true; *hasResultType = true; break; 1972 case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; 1973 case OpCompositeExtract: *hasResult = true; *hasResultType = true; break; 1974 case OpCompositeInsert: *hasResult = true; *hasResultType = true; break; 1975 case OpCopyObject: *hasResult = true; *hasResultType = true; break; 1976 case OpTranspose: *hasResult = true; *hasResultType = true; break; 1977 case OpSampledImage: *hasResult = true; *hasResultType = true; break; 1978 case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; 1979 case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; 1980 case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1981 case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1982 case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; 1983 case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; 1984 case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 1985 case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 1986 case OpImageFetch: *hasResult = true; *hasResultType = true; break; 1987 case OpImageGather: *hasResult = true; *hasResultType = true; break; 1988 case OpImageDrefGather: *hasResult = true; *hasResultType = true; break; 1989 case OpImageRead: *hasResult = true; *hasResultType = true; break; 1990 case OpImageWrite: *hasResult = false; *hasResultType = false; break; 1991 case OpImage: *hasResult = true; *hasResultType = true; break; 1992 case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; 1993 case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; 1994 case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; 1995 case OpImageQuerySize: *hasResult = true; *hasResultType = true; break; 1996 case OpImageQueryLod: *hasResult = true; *hasResultType = true; break; 1997 case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; 1998 case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; 1999 case OpConvertFToU: *hasResult = true; *hasResultType = true; break; 2000 case OpConvertFToS: *hasResult = true; *hasResultType = true; break; 2001 case OpConvertSToF: *hasResult = true; *hasResultType = true; break; 2002 case OpConvertUToF: *hasResult = true; *hasResultType = true; break; 2003 case OpUConvert: *hasResult = true; *hasResultType = true; break; 2004 case OpSConvert: *hasResult = true; *hasResultType = true; break; 2005 case OpFConvert: *hasResult = true; *hasResultType = true; break; 2006 case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; 2007 case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; 2008 case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; 2009 case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; 2010 case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; 2011 case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; 2012 case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; 2013 case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; 2014 case OpBitcast: *hasResult = true; *hasResultType = true; break; 2015 case OpSNegate: *hasResult = true; *hasResultType = true; break; 2016 case OpFNegate: *hasResult = true; *hasResultType = true; break; 2017 case OpIAdd: *hasResult = true; *hasResultType = true; break; 2018 case OpFAdd: *hasResult = true; *hasResultType = true; break; 2019 case OpISub: *hasResult = true; *hasResultType = true; break; 2020 case OpFSub: *hasResult = true; *hasResultType = true; break; 2021 case OpIMul: *hasResult = true; *hasResultType = true; break; 2022 case OpFMul: *hasResult = true; *hasResultType = true; break; 2023 case OpUDiv: *hasResult = true; *hasResultType = true; break; 2024 case OpSDiv: *hasResult = true; *hasResultType = true; break; 2025 case OpFDiv: *hasResult = true; *hasResultType = true; break; 2026 case OpUMod: *hasResult = true; *hasResultType = true; break; 2027 case OpSRem: *hasResult = true; *hasResultType = true; break; 2028 case OpSMod: *hasResult = true; *hasResultType = true; break; 2029 case OpFRem: *hasResult = true; *hasResultType = true; break; 2030 case OpFMod: *hasResult = true; *hasResultType = true; break; 2031 case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; 2032 case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; 2033 case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; 2034 case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; 2035 case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; 2036 case OpOuterProduct: *hasResult = true; *hasResultType = true; break; 2037 case OpDot: *hasResult = true; *hasResultType = true; break; 2038 case OpIAddCarry: *hasResult = true; *hasResultType = true; break; 2039 case OpISubBorrow: *hasResult = true; *hasResultType = true; break; 2040 case OpUMulExtended: *hasResult = true; *hasResultType = true; break; 2041 case OpSMulExtended: *hasResult = true; *hasResultType = true; break; 2042 case OpAny: *hasResult = true; *hasResultType = true; break; 2043 case OpAll: *hasResult = true; *hasResultType = true; break; 2044 case OpIsNan: *hasResult = true; *hasResultType = true; break; 2045 case OpIsInf: *hasResult = true; *hasResultType = true; break; 2046 case OpIsFinite: *hasResult = true; *hasResultType = true; break; 2047 case OpIsNormal: *hasResult = true; *hasResultType = true; break; 2048 case OpSignBitSet: *hasResult = true; *hasResultType = true; break; 2049 case OpLessOrGreater: *hasResult = true; *hasResultType = true; break; 2050 case OpOrdered: *hasResult = true; *hasResultType = true; break; 2051 case OpUnordered: *hasResult = true; *hasResultType = true; break; 2052 case OpLogicalEqual: *hasResult = true; *hasResultType = true; break; 2053 case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; 2054 case OpLogicalOr: *hasResult = true; *hasResultType = true; break; 2055 case OpLogicalAnd: *hasResult = true; *hasResultType = true; break; 2056 case OpLogicalNot: *hasResult = true; *hasResultType = true; break; 2057 case OpSelect: *hasResult = true; *hasResultType = true; break; 2058 case OpIEqual: *hasResult = true; *hasResultType = true; break; 2059 case OpINotEqual: *hasResult = true; *hasResultType = true; break; 2060 case OpUGreaterThan: *hasResult = true; *hasResultType = true; break; 2061 case OpSGreaterThan: *hasResult = true; *hasResultType = true; break; 2062 case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 2063 case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 2064 case OpULessThan: *hasResult = true; *hasResultType = true; break; 2065 case OpSLessThan: *hasResult = true; *hasResultType = true; break; 2066 case OpULessThanEqual: *hasResult = true; *hasResultType = true; break; 2067 case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; 2068 case OpFOrdEqual: *hasResult = true; *hasResultType = true; break; 2069 case OpFUnordEqual: *hasResult = true; *hasResultType = true; break; 2070 case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; 2071 case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; 2072 case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; 2073 case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; 2074 case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; 2075 case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; 2076 case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; 2077 case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; 2078 case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 2079 case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; 2080 case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; 2081 case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; 2082 case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; 2083 case OpBitwiseOr: *hasResult = true; *hasResultType = true; break; 2084 case OpBitwiseXor: *hasResult = true; *hasResultType = true; break; 2085 case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; 2086 case OpNot: *hasResult = true; *hasResultType = true; break; 2087 case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; 2088 case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; 2089 case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; 2090 case OpBitReverse: *hasResult = true; *hasResultType = true; break; 2091 case OpBitCount: *hasResult = true; *hasResultType = true; break; 2092 case OpDPdx: *hasResult = true; *hasResultType = true; break; 2093 case OpDPdy: *hasResult = true; *hasResultType = true; break; 2094 case OpFwidth: *hasResult = true; *hasResultType = true; break; 2095 case OpDPdxFine: *hasResult = true; *hasResultType = true; break; 2096 case OpDPdyFine: *hasResult = true; *hasResultType = true; break; 2097 case OpFwidthFine: *hasResult = true; *hasResultType = true; break; 2098 case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; 2099 case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; 2100 case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; 2101 case OpEmitVertex: *hasResult = false; *hasResultType = false; break; 2102 case OpEndPrimitive: *hasResult = false; *hasResultType = false; break; 2103 case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; 2104 case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; 2105 case OpControlBarrier: *hasResult = false; *hasResultType = false; break; 2106 case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; 2107 case OpAtomicLoad: *hasResult = true; *hasResultType = true; break; 2108 case OpAtomicStore: *hasResult = false; *hasResultType = false; break; 2109 case OpAtomicExchange: *hasResult = true; *hasResultType = true; break; 2110 case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; 2111 case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; 2112 case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; 2113 case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; 2114 case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; 2115 case OpAtomicISub: *hasResult = true; *hasResultType = true; break; 2116 case OpAtomicSMin: *hasResult = true; *hasResultType = true; break; 2117 case OpAtomicUMin: *hasResult = true; *hasResultType = true; break; 2118 case OpAtomicSMax: *hasResult = true; *hasResultType = true; break; 2119 case OpAtomicUMax: *hasResult = true; *hasResultType = true; break; 2120 case OpAtomicAnd: *hasResult = true; *hasResultType = true; break; 2121 case OpAtomicOr: *hasResult = true; *hasResultType = true; break; 2122 case OpAtomicXor: *hasResult = true; *hasResultType = true; break; 2123 case OpPhi: *hasResult = true; *hasResultType = true; break; 2124 case OpLoopMerge: *hasResult = false; *hasResultType = false; break; 2125 case OpSelectionMerge: *hasResult = false; *hasResultType = false; break; 2126 case OpLabel: *hasResult = true; *hasResultType = false; break; 2127 case OpBranch: *hasResult = false; *hasResultType = false; break; 2128 case OpBranchConditional: *hasResult = false; *hasResultType = false; break; 2129 case OpSwitch: *hasResult = false; *hasResultType = false; break; 2130 case OpKill: *hasResult = false; *hasResultType = false; break; 2131 case OpReturn: *hasResult = false; *hasResultType = false; break; 2132 case OpReturnValue: *hasResult = false; *hasResultType = false; break; 2133 case OpUnreachable: *hasResult = false; *hasResultType = false; break; 2134 case OpLifetimeStart: *hasResult = false; *hasResultType = false; break; 2135 case OpLifetimeStop: *hasResult = false; *hasResultType = false; break; 2136 case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; 2137 case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; 2138 case OpGroupAll: *hasResult = true; *hasResultType = true; break; 2139 case OpGroupAny: *hasResult = true; *hasResultType = true; break; 2140 case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; 2141 case OpGroupIAdd: *hasResult = true; *hasResultType = true; break; 2142 case OpGroupFAdd: *hasResult = true; *hasResultType = true; break; 2143 case OpGroupFMin: *hasResult = true; *hasResultType = true; break; 2144 case OpGroupUMin: *hasResult = true; *hasResultType = true; break; 2145 case OpGroupSMin: *hasResult = true; *hasResultType = true; break; 2146 case OpGroupFMax: *hasResult = true; *hasResultType = true; break; 2147 case OpGroupUMax: *hasResult = true; *hasResultType = true; break; 2148 case OpGroupSMax: *hasResult = true; *hasResultType = true; break; 2149 case OpReadPipe: *hasResult = true; *hasResultType = true; break; 2150 case OpWritePipe: *hasResult = true; *hasResultType = true; break; 2151 case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; 2152 case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; 2153 case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; 2154 case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; 2155 case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; 2156 case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; 2157 case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; 2158 case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; 2159 case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; 2160 case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; 2161 case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; 2162 case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; 2163 case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; 2164 case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; 2165 case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; 2166 case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; 2167 case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; 2168 case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; 2169 case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; 2170 case OpRetainEvent: *hasResult = false; *hasResultType = false; break; 2171 case OpReleaseEvent: *hasResult = false; *hasResultType = false; break; 2172 case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; 2173 case OpIsValidEvent: *hasResult = true; *hasResultType = true; break; 2174 case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; 2175 case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; 2176 case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; 2177 case OpBuildNDRange: *hasResult = true; *hasResultType = true; break; 2178 case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; 2179 case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; 2180 case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 2181 case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 2182 case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; 2183 case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; 2184 case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; 2185 case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; 2186 case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; 2187 case OpImageSparseGather: *hasResult = true; *hasResultType = true; break; 2188 case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; 2189 case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; 2190 case OpNoLine: *hasResult = false; *hasResultType = false; break; 2191 case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; 2192 case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; 2193 case OpImageSparseRead: *hasResult = true; *hasResultType = true; break; 2194 case OpSizeOf: *hasResult = true; *hasResultType = true; break; 2195 case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; 2196 case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; 2197 case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; 2198 case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; 2199 case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; 2200 case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; 2201 case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; 2202 case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; 2203 case OpModuleProcessed: *hasResult = false; *hasResultType = false; break; 2204 case OpExecutionModeId: *hasResult = false; *hasResultType = false; break; 2205 case OpDecorateId: *hasResult = false; *hasResultType = false; break; 2206 case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; 2207 case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; 2208 case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; 2209 case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; 2210 case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; 2211 case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; 2212 case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; 2213 case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; 2214 case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; 2215 case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; 2216 case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; 2217 case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; 2218 case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; 2219 case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; 2220 case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; 2221 case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; 2222 case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; 2223 case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; 2224 case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; 2225 case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; 2226 case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; 2227 case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; 2228 case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; 2229 case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; 2230 case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; 2231 case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; 2232 case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; 2233 case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; 2234 case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; 2235 case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; 2236 case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; 2237 case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; 2238 case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; 2239 case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; 2240 case OpCopyLogical: *hasResult = true; *hasResultType = true; break; 2241 case OpPtrEqual: *hasResult = true; *hasResultType = true; break; 2242 case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; 2243 case OpPtrDiff: *hasResult = true; *hasResultType = true; break; 2244 case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; 2245 case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; 2246 case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; 2247 case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; 2248 case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; 2249 case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; 2250 case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break; 2251 case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; 2252 case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; 2253 case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; 2254 case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; 2255 case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; 2256 case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; 2257 case OpSDot: *hasResult = true; *hasResultType = true; break; 2258 case OpUDot: *hasResult = true; *hasResultType = true; break; 2259 case OpSUDot: *hasResult = true; *hasResultType = true; break; 2260 case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; 2261 case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; 2262 case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; 2263 case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; 2264 case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; 2265 case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; 2266 case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; 2267 case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; 2268 case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; 2269 case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; 2270 case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2271 case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2272 case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2273 case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2274 case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2275 case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2276 case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2277 case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; 2278 case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; 2279 case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; 2280 case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; 2281 case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; 2282 case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; 2283 case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; 2284 case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; 2285 case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; 2286 case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; 2287 case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; 2288 case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; 2289 case OpTraceNV: *hasResult = false; *hasResultType = false; break; 2290 case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; 2291 case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; 2292 case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; 2293 case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; 2294 case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; 2295 case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; 2296 case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; 2297 case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; 2298 case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; 2299 case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; 2300 case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; 2301 case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; 2302 case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; 2303 case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; 2304 case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; 2305 case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; 2306 case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; 2307 case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; 2308 case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; 2309 case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; 2310 case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; 2311 case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; 2312 case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; 2313 case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; 2314 case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2315 case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2316 case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2317 case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2318 case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; 2319 case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; 2320 case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; 2321 case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; 2322 case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; 2323 case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; 2324 case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; 2325 case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; 2326 case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; 2327 case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; 2328 case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; 2329 case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; 2330 case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; 2331 case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; 2332 case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; 2333 case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; 2334 case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; 2335 case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; 2336 case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; 2337 case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; 2338 case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; 2339 case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; 2340 case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; 2341 case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; 2342 case OpExpectKHR: *hasResult = true; *hasResultType = true; break; 2343 case OpDecorateString: *hasResult = false; *hasResultType = false; break; 2344 case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; 2345 case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; 2346 case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; 2347 case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; 2348 case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; 2349 case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; 2350 case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; 2351 case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; 2352 case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; 2353 case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; 2354 case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; 2355 case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; 2356 case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; 2357 case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; 2358 case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; 2359 case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2360 case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2361 case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2362 case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2363 case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2364 case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2365 case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2366 case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2367 case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2368 case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2369 case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; 2370 case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2371 case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2372 case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2373 case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2374 case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; 2375 case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; 2376 case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; 2377 case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; 2378 case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2379 case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; 2380 case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; 2381 case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; 2382 case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; 2383 case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; 2384 case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2385 case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2386 case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2387 case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; 2388 case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; 2389 case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; 2390 case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; 2391 case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2392 case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; 2393 case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2394 case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2395 case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2396 case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; 2397 case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; 2398 case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2399 case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; 2400 case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; 2401 case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2402 case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; 2403 case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2404 case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2405 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2406 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2407 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2408 case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2409 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; 2410 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; 2411 case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2412 case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2413 case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; 2414 case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2415 case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; 2416 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2417 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2418 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2419 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; 2420 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; 2421 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; 2422 case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; 2423 case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; 2424 case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; 2425 case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; 2426 case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2427 case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2428 case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2429 case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2430 case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; 2431 case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; 2432 case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2433 case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2434 case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2435 case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; 2436 case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2437 case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; 2438 case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; 2439 case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; 2440 case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; 2441 case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; 2442 case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; 2443 case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; 2444 case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2445 case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; 2446 case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; 2447 case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; 2448 case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; 2449 case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; 2450 case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2451 case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2452 case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; 2453 case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; 2454 case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; 2455 case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; 2456 case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2457 case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; 2458 case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; 2459 case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; 2460 case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2461 case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; 2462 case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; 2463 case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; 2464 case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; 2465 case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; 2466 case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; 2467 case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; 2468 case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; 2469 case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; 2470 case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; 2471 case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; 2472 case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; 2473 case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; 2474 case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; 2475 case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; 2476 case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; 2477 case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; 2478 case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; 2479 case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; 2480 case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; 2481 case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; 2482 case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; 2483 case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; 2484 case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; 2485 case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; 2486 case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; 2487 case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; 2488 case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; 2489 case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; 2490 case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; 2491 case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; 2492 case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; 2493 case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; 2494 case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; 2495 case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; 2496 case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; 2497 case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; 2498 case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; 2499 case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; 2500 case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; 2501 case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; 2502 case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; 2503 case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; 2504 case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; 2505 case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; 2506 case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; 2507 case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; 2508 case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; 2509 case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; 2510 case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; 2511 case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; 2512 case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; 2513 case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; 2514 case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; 2515 case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; 2516 case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; 2517 case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; 2518 case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; 2519 case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; 2520 case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; 2521 case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; 2522 case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; 2523 case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; 2524 case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; 2525 case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; 2526 case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; 2527 case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; 2528 case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; 2529 case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; 2530 case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; 2531 case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; 2532 case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; 2533 case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; 2534 case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; 2535 case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; 2536 case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; 2537 case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; 2538 case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; 2539 case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; 2540 case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; 2541 case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; 2542 case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; 2543 case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; 2544 case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; 2545 case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; 2546 case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; 2547 case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; 2548 case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; 2549 case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; 2550 case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; 2551 case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; 2552 case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; 2553 case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; 2554 case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break; 2555 case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break; 2556 case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break; 2557 case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break; 2558 case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break; 2559 } 2560 } 2561 #endif /* SPV_ENABLE_UTILITY_CODE */ 2562 2563 // Overload operator| for mask bit combining 2564 2565 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } 2566 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } 2567 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } 2568 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } 2569 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } 2570 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } 2571 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } 2572 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } 2573 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } 2574 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } 2575 2576 } // end namespace spv 2577 2578 #endif // #ifndef spirv_HPP 2579