1 /+ 2 + Copyright (c) 2014-2019 The Khronos Group Inc. 3 + 4 + Permission is hereby granted, free of charge, to any person obtaining a copy 5 + of this software and/or associated documentation files (the "Materials"), 6 + to deal in the Materials without restriction, including without limitation 7 + the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 + and/or sell copies of the Materials, and to permit persons to whom the 9 + Materials are furnished to do so, subject to the following conditions: 10 + 11 + The above copyright notice and this permission notice shall be included in 12 + all copies or substantial portions of the Materials. 13 + 14 + MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS 15 + STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND 16 + HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 17 + 18 + THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 + FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS 24 + IN THE MATERIALS. 25 +/ 26 27 /+ 28 + This header is automatically generated by the same tool that creates 29 + the Binary Section of the SPIR-V specification. 30 +/ 31 32 /+ 33 + Enumeration tokens for SPIR-V, in various styles: 34 + C, C++, C++11, JSON, Lua, Python, C#, D 35 + 36 + - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL 37 + - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL 38 + - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL 39 + - Lua will use tables, e.g.: spv.SourceLanguage.GLSL 40 + - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] 41 + - C# will use enum classes in the Specification class located in the "Spv" namespace, 42 + e.g.: Spv.Specification.SourceLanguage.GLSL 43 + - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL 44 + 45 + Some tokens act like mask values, which can be OR'd together, 46 + while others are mutually exclusive. The mask-like ones have 47 + "Mask" in their name, and a parallel enum that has the shift 48 + amount (1 << x) for each corresponding enumerant. 49 +/ 50 51 module spv; 52 53 enum uint MagicNumber = 0x07230203; 54 enum uint Version = 0x00010300; 55 enum uint Revision = 6; 56 enum uint OpCodeMask = 0xffff; 57 enum uint WordCountShift = 16; 58 59 enum SourceLanguage : uint 60 { 61 Unknown = 0, 62 ESSL = 1, 63 GLSL = 2, 64 OpenCL_C = 3, 65 OpenCL_CPP = 4, 66 HLSL = 5, 67 } 68 69 enum ExecutionModel : uint 70 { 71 Vertex = 0, 72 TessellationControl = 1, 73 TessellationEvaluation = 2, 74 Geometry = 3, 75 Fragment = 4, 76 GLCompute = 5, 77 Kernel = 6, 78 TaskNV = 5267, 79 MeshNV = 5268, 80 RayGenerationNV = 5313, 81 IntersectionNV = 5314, 82 AnyHitNV = 5315, 83 ClosestHitNV = 5316, 84 MissNV = 5317, 85 CallableNV = 5318, 86 } 87 88 enum AddressingModel : uint 89 { 90 Logical = 0, 91 Physical32 = 1, 92 Physical64 = 2, 93 PhysicalStorageBuffer64EXT = 5348, 94 } 95 96 enum MemoryModel : uint 97 { 98 Simple = 0, 99 GLSL450 = 1, 100 OpenCL = 2, 101 VulkanKHR = 3, 102 } 103 104 enum ExecutionMode : uint 105 { 106 Invocations = 0, 107 SpacingEqual = 1, 108 SpacingFractionalEven = 2, 109 SpacingFractionalOdd = 3, 110 VertexOrderCw = 4, 111 VertexOrderCcw = 5, 112 PixelCenterInteger = 6, 113 OriginUpperLeft = 7, 114 OriginLowerLeft = 8, 115 EarlyFragmentTests = 9, 116 PointMode = 10, 117 Xfb = 11, 118 DepthReplacing = 12, 119 DepthGreater = 14, 120 DepthLess = 15, 121 DepthUnchanged = 16, 122 LocalSize = 17, 123 LocalSizeHint = 18, 124 InputPoints = 19, 125 InputLines = 20, 126 InputLinesAdjacency = 21, 127 Triangles = 22, 128 InputTrianglesAdjacency = 23, 129 Quads = 24, 130 Isolines = 25, 131 OutputVertices = 26, 132 OutputPoints = 27, 133 OutputLineStrip = 28, 134 OutputTriangleStrip = 29, 135 VecTypeHint = 30, 136 ContractionOff = 31, 137 Initializer = 33, 138 Finalizer = 34, 139 SubgroupSize = 35, 140 SubgroupsPerWorkgroup = 36, 141 SubgroupsPerWorkgroupId = 37, 142 LocalSizeId = 38, 143 LocalSizeHintId = 39, 144 PostDepthCoverage = 4446, 145 DenormPreserve = 4459, 146 DenormFlushToZero = 4460, 147 SignedZeroInfNanPreserve = 4461, 148 RoundingModeRTE = 4462, 149 RoundingModeRTZ = 4463, 150 StencilRefReplacingEXT = 5027, 151 OutputLinesNV = 5269, 152 OutputPrimitivesNV = 5270, 153 DerivativeGroupQuadsNV = 5289, 154 DerivativeGroupLinearNV = 5290, 155 OutputTrianglesNV = 5298, 156 } 157 158 enum StorageClass : uint 159 { 160 UniformConstant = 0, 161 Input = 1, 162 Uniform = 2, 163 Output = 3, 164 Workgroup = 4, 165 CrossWorkgroup = 5, 166 Private = 6, 167 Function = 7, 168 Generic = 8, 169 PushConstant = 9, 170 AtomicCounter = 10, 171 Image = 11, 172 StorageBuffer = 12, 173 CallableDataNV = 5328, 174 IncomingCallableDataNV = 5329, 175 RayPayloadNV = 5338, 176 HitAttributeNV = 5339, 177 IncomingRayPayloadNV = 5342, 178 ShaderRecordBufferNV = 5343, 179 PhysicalStorageBufferEXT = 5349, 180 } 181 182 enum Dim : uint 183 { 184 _1D = 0, 185 _2D = 1, 186 _3D = 2, 187 Cube = 3, 188 Rect = 4, 189 Buffer = 5, 190 SubpassData = 6, 191 } 192 193 enum SamplerAddressingMode : uint 194 { 195 None = 0, 196 ClampToEdge = 1, 197 Clamp = 2, 198 Repeat = 3, 199 RepeatMirrored = 4, 200 } 201 202 enum SamplerFilterMode : uint 203 { 204 Nearest = 0, 205 Linear = 1, 206 } 207 208 enum ImageFormat : uint 209 { 210 Unknown = 0, 211 Rgba32f = 1, 212 Rgba16f = 2, 213 R32f = 3, 214 Rgba8 = 4, 215 Rgba8Snorm = 5, 216 Rg32f = 6, 217 Rg16f = 7, 218 R11fG11fB10f = 8, 219 R16f = 9, 220 Rgba16 = 10, 221 Rgb10A2 = 11, 222 Rg16 = 12, 223 Rg8 = 13, 224 R16 = 14, 225 R8 = 15, 226 Rgba16Snorm = 16, 227 Rg16Snorm = 17, 228 Rg8Snorm = 18, 229 R16Snorm = 19, 230 R8Snorm = 20, 231 Rgba32i = 21, 232 Rgba16i = 22, 233 Rgba8i = 23, 234 R32i = 24, 235 Rg32i = 25, 236 Rg16i = 26, 237 Rg8i = 27, 238 R16i = 28, 239 R8i = 29, 240 Rgba32ui = 30, 241 Rgba16ui = 31, 242 Rgba8ui = 32, 243 R32ui = 33, 244 Rgb10a2ui = 34, 245 Rg32ui = 35, 246 Rg16ui = 36, 247 Rg8ui = 37, 248 R16ui = 38, 249 R8ui = 39, 250 } 251 252 enum ImageChannelOrder : uint 253 { 254 R = 0, 255 A = 1, 256 RG = 2, 257 RA = 3, 258 RGB = 4, 259 RGBA = 5, 260 BGRA = 6, 261 ARGB = 7, 262 Intensity = 8, 263 Luminance = 9, 264 Rx = 10, 265 RGx = 11, 266 RGBx = 12, 267 Depth = 13, 268 DepthStencil = 14, 269 sRGB = 15, 270 sRGBx = 16, 271 sRGBA = 17, 272 sBGRA = 18, 273 ABGR = 19, 274 } 275 276 enum ImageChannelDataType : uint 277 { 278 SnormInt8 = 0, 279 SnormInt16 = 1, 280 UnormInt8 = 2, 281 UnormInt16 = 3, 282 UnormShort565 = 4, 283 UnormShort555 = 5, 284 UnormInt101010 = 6, 285 SignedInt8 = 7, 286 SignedInt16 = 8, 287 SignedInt32 = 9, 288 UnsignedInt8 = 10, 289 UnsignedInt16 = 11, 290 UnsignedInt32 = 12, 291 HalfFloat = 13, 292 Float = 14, 293 UnormInt24 = 15, 294 UnormInt101010_2 = 16, 295 } 296 297 enum ImageOperandsShift : uint 298 { 299 Bias = 0, 300 Lod = 1, 301 Grad = 2, 302 ConstOffset = 3, 303 Offset = 4, 304 ConstOffsets = 5, 305 Sample = 6, 306 MinLod = 7, 307 MakeTexelAvailableKHR = 8, 308 MakeTexelVisibleKHR = 9, 309 NonPrivateTexelKHR = 10, 310 VolatileTexelKHR = 11, 311 } 312 313 enum ImageOperandsMask : uint 314 { 315 MaskNone = 0, 316 Bias = 0x00000001, 317 Lod = 0x00000002, 318 Grad = 0x00000004, 319 ConstOffset = 0x00000008, 320 Offset = 0x00000010, 321 ConstOffsets = 0x00000020, 322 Sample = 0x00000040, 323 MinLod = 0x00000080, 324 MakeTexelAvailableKHR = 0x00000100, 325 MakeTexelVisibleKHR = 0x00000200, 326 NonPrivateTexelKHR = 0x00000400, 327 VolatileTexelKHR = 0x00000800, 328 } 329 330 enum FPFastMathModeShift : uint 331 { 332 NotNaN = 0, 333 NotInf = 1, 334 NSZ = 2, 335 AllowRecip = 3, 336 Fast = 4, 337 } 338 339 enum FPFastMathModeMask : uint 340 { 341 MaskNone = 0, 342 NotNaN = 0x00000001, 343 NotInf = 0x00000002, 344 NSZ = 0x00000004, 345 AllowRecip = 0x00000008, 346 Fast = 0x00000010, 347 } 348 349 enum FPRoundingMode : uint 350 { 351 RTE = 0, 352 RTZ = 1, 353 RTP = 2, 354 RTN = 3, 355 } 356 357 enum LinkageType : uint 358 { 359 Export = 0, 360 Import = 1, 361 } 362 363 enum AccessQualifier : uint 364 { 365 ReadOnly = 0, 366 WriteOnly = 1, 367 ReadWrite = 2, 368 } 369 370 enum FunctionParameterAttribute : uint 371 { 372 Zext = 0, 373 Sext = 1, 374 ByVal = 2, 375 Sret = 3, 376 NoAlias = 4, 377 NoCapture = 5, 378 NoWrite = 6, 379 NoReadWrite = 7, 380 } 381 382 enum Decoration : uint 383 { 384 RelaxedPrecision = 0, 385 SpecId = 1, 386 Block = 2, 387 BufferBlock = 3, 388 RowMajor = 4, 389 ColMajor = 5, 390 ArrayStride = 6, 391 MatrixStride = 7, 392 GLSLShared = 8, 393 GLSLPacked = 9, 394 CPacked = 10, 395 BuiltIn = 11, 396 NoPerspective = 13, 397 Flat = 14, 398 Patch = 15, 399 Centroid = 16, 400 Sample = 17, 401 Invariant = 18, 402 Restrict = 19, 403 Aliased = 20, 404 Volatile = 21, 405 Constant = 22, 406 Coherent = 23, 407 NonWritable = 24, 408 NonReadable = 25, 409 Uniform = 26, 410 SaturatedConversion = 28, 411 Stream = 29, 412 Location = 30, 413 Component = 31, 414 Index = 32, 415 Binding = 33, 416 DescriptorSet = 34, 417 Offset = 35, 418 XfbBuffer = 36, 419 XfbStride = 37, 420 FuncParamAttr = 38, 421 FPRoundingMode = 39, 422 FPFastMathMode = 40, 423 LinkageAttributes = 41, 424 NoContraction = 42, 425 InputAttachmentIndex = 43, 426 Alignment = 44, 427 MaxByteOffset = 45, 428 AlignmentId = 46, 429 MaxByteOffsetId = 47, 430 NoSignedWrap = 4469, 431 NoUnsignedWrap = 4470, 432 ExplicitInterpAMD = 4999, 433 OverrideCoverageNV = 5248, 434 PassthroughNV = 5250, 435 ViewportRelativeNV = 5252, 436 SecondaryViewportRelativeNV = 5256, 437 PerPrimitiveNV = 5271, 438 PerViewNV = 5272, 439 PerTaskNV = 5273, 440 PerVertexNV = 5285, 441 NonUniformEXT = 5300, 442 RestrictPointerEXT = 5355, 443 AliasedPointerEXT = 5356, 444 HlslCounterBufferGOOGLE = 5634, 445 HlslSemanticGOOGLE = 5635, 446 } 447 448 enum BuiltIn : uint 449 { 450 Position = 0, 451 PointSize = 1, 452 ClipDistance = 3, 453 CullDistance = 4, 454 VertexId = 5, 455 InstanceId = 6, 456 PrimitiveId = 7, 457 InvocationId = 8, 458 Layer = 9, 459 ViewportIndex = 10, 460 TessLevelOuter = 11, 461 TessLevelInner = 12, 462 TessCoord = 13, 463 PatchVertices = 14, 464 FragCoord = 15, 465 PointCoord = 16, 466 FrontFacing = 17, 467 SampleId = 18, 468 SamplePosition = 19, 469 SampleMask = 20, 470 FragDepth = 22, 471 HelperInvocation = 23, 472 NumWorkgroups = 24, 473 WorkgroupSize = 25, 474 WorkgroupId = 26, 475 LocalInvocationId = 27, 476 GlobalInvocationId = 28, 477 LocalInvocationIndex = 29, 478 WorkDim = 30, 479 GlobalSize = 31, 480 EnqueuedWorkgroupSize = 32, 481 GlobalOffset = 33, 482 GlobalLinearId = 34, 483 SubgroupSize = 36, 484 SubgroupMaxSize = 37, 485 NumSubgroups = 38, 486 NumEnqueuedSubgroups = 39, 487 SubgroupId = 40, 488 SubgroupLocalInvocationId = 41, 489 VertexIndex = 42, 490 InstanceIndex = 43, 491 SubgroupEqMask = 4416, 492 SubgroupEqMaskKHR = 4416, 493 SubgroupGeMask = 4417, 494 SubgroupGeMaskKHR = 4417, 495 SubgroupGtMask = 4418, 496 SubgroupGtMaskKHR = 4418, 497 SubgroupLeMask = 4419, 498 SubgroupLeMaskKHR = 4419, 499 SubgroupLtMask = 4420, 500 SubgroupLtMaskKHR = 4420, 501 BaseVertex = 4424, 502 BaseInstance = 4425, 503 DrawIndex = 4426, 504 DeviceIndex = 4438, 505 ViewIndex = 4440, 506 BaryCoordNoPerspAMD = 4992, 507 BaryCoordNoPerspCentroidAMD = 4993, 508 BaryCoordNoPerspSampleAMD = 4994, 509 BaryCoordSmoothAMD = 4995, 510 BaryCoordSmoothCentroidAMD = 4996, 511 BaryCoordSmoothSampleAMD = 4997, 512 BaryCoordPullModelAMD = 4998, 513 FragStencilRefEXT = 5014, 514 ViewportMaskNV = 5253, 515 SecondaryPositionNV = 5257, 516 SecondaryViewportMaskNV = 5258, 517 PositionPerViewNV = 5261, 518 ViewportMaskPerViewNV = 5262, 519 FullyCoveredEXT = 5264, 520 TaskCountNV = 5274, 521 PrimitiveCountNV = 5275, 522 PrimitiveIndicesNV = 5276, 523 ClipDistancePerViewNV = 5277, 524 CullDistancePerViewNV = 5278, 525 LayerPerViewNV = 5279, 526 MeshViewCountNV = 5280, 527 MeshViewIndicesNV = 5281, 528 BaryCoordNV = 5286, 529 BaryCoordNoPerspNV = 5287, 530 FragSizeEXT = 5292, 531 FragmentSizeNV = 5292, 532 FragInvocationCountEXT = 5293, 533 InvocationsPerPixelNV = 5293, 534 LaunchIdNV = 5319, 535 LaunchSizeNV = 5320, 536 WorldRayOriginNV = 5321, 537 WorldRayDirectionNV = 5322, 538 ObjectRayOriginNV = 5323, 539 ObjectRayDirectionNV = 5324, 540 RayTminNV = 5325, 541 RayTmaxNV = 5326, 542 InstanceCustomIndexNV = 5327, 543 ObjectToWorldNV = 5330, 544 WorldToObjectNV = 5331, 545 HitTNV = 5332, 546 HitKindNV = 5333, 547 IncomingRayFlagsNV = 5351, 548 } 549 550 enum SelectionControlShift : uint 551 { 552 Flatten = 0, 553 DontFlatten = 1, 554 } 555 556 enum SelectionControlMask : uint 557 { 558 MaskNone = 0, 559 Flatten = 0x00000001, 560 DontFlatten = 0x00000002, 561 } 562 563 enum LoopControlShift : uint 564 { 565 Unroll = 0, 566 DontUnroll = 1, 567 DependencyInfinite = 2, 568 DependencyLength = 3, 569 } 570 571 enum LoopControlMask : uint 572 { 573 MaskNone = 0, 574 Unroll = 0x00000001, 575 DontUnroll = 0x00000002, 576 DependencyInfinite = 0x00000004, 577 DependencyLength = 0x00000008, 578 } 579 580 enum FunctionControlShift : uint 581 { 582 Inline = 0, 583 DontInline = 1, 584 Pure = 2, 585 Const = 3, 586 } 587 588 enum FunctionControlMask : uint 589 { 590 MaskNone = 0, 591 Inline = 0x00000001, 592 DontInline = 0x00000002, 593 Pure = 0x00000004, 594 Const = 0x00000008, 595 } 596 597 enum MemorySemanticsShift : uint 598 { 599 Acquire = 1, 600 Release = 2, 601 AcquireRelease = 3, 602 SequentiallyConsistent = 4, 603 UniformMemory = 6, 604 SubgroupMemory = 7, 605 WorkgroupMemory = 8, 606 CrossWorkgroupMemory = 9, 607 AtomicCounterMemory = 10, 608 ImageMemory = 11, 609 OutputMemoryKHR = 12, 610 MakeAvailableKHR = 13, 611 MakeVisibleKHR = 14, 612 } 613 614 enum MemorySemanticsMask : uint 615 { 616 MaskNone = 0, 617 Acquire = 0x00000002, 618 Release = 0x00000004, 619 AcquireRelease = 0x00000008, 620 SequentiallyConsistent = 0x00000010, 621 UniformMemory = 0x00000040, 622 SubgroupMemory = 0x00000080, 623 WorkgroupMemory = 0x00000100, 624 CrossWorkgroupMemory = 0x00000200, 625 AtomicCounterMemory = 0x00000400, 626 ImageMemory = 0x00000800, 627 OutputMemoryKHR = 0x00001000, 628 MakeAvailableKHR = 0x00002000, 629 MakeVisibleKHR = 0x00004000, 630 } 631 632 enum MemoryAccessShift : uint 633 { 634 Volatile = 0, 635 Aligned = 1, 636 Nontemporal = 2, 637 MakePointerAvailableKHR = 3, 638 MakePointerVisibleKHR = 4, 639 NonPrivatePointerKHR = 5, 640 } 641 642 enum MemoryAccessMask : uint 643 { 644 MaskNone = 0, 645 Volatile = 0x00000001, 646 Aligned = 0x00000002, 647 Nontemporal = 0x00000004, 648 MakePointerAvailableKHR = 0x00000008, 649 MakePointerVisibleKHR = 0x00000010, 650 NonPrivatePointerKHR = 0x00000020, 651 } 652 653 enum Scope : uint 654 { 655 CrossDevice = 0, 656 Device = 1, 657 Workgroup = 2, 658 Subgroup = 3, 659 Invocation = 4, 660 QueueFamilyKHR = 5, 661 } 662 663 enum GroupOperation : uint 664 { 665 Reduce = 0, 666 InclusiveScan = 1, 667 ExclusiveScan = 2, 668 ClusteredReduce = 3, 669 PartitionedReduceNV = 6, 670 PartitionedInclusiveScanNV = 7, 671 PartitionedExclusiveScanNV = 8, 672 } 673 674 enum KernelEnqueueFlags : uint 675 { 676 NoWait = 0, 677 WaitKernel = 1, 678 WaitWorkGroup = 2, 679 } 680 681 enum KernelProfilingInfoShift : uint 682 { 683 CmdExecTime = 0, 684 } 685 686 enum KernelProfilingInfoMask : uint 687 { 688 MaskNone = 0, 689 CmdExecTime = 0x00000001, 690 } 691 692 enum Capability : uint 693 { 694 Matrix = 0, 695 Shader = 1, 696 Geometry = 2, 697 Tessellation = 3, 698 Addresses = 4, 699 Linkage = 5, 700 Kernel = 6, 701 Vector16 = 7, 702 Float16Buffer = 8, 703 Float16 = 9, 704 Float64 = 10, 705 Int64 = 11, 706 Int64Atomics = 12, 707 ImageBasic = 13, 708 ImageReadWrite = 14, 709 ImageMipmap = 15, 710 Pipes = 17, 711 Groups = 18, 712 DeviceEnqueue = 19, 713 LiteralSampler = 20, 714 AtomicStorage = 21, 715 Int16 = 22, 716 TessellationPointSize = 23, 717 GeometryPointSize = 24, 718 ImageGatherExtended = 25, 719 StorageImageMultisample = 27, 720 UniformBufferArrayDynamicIndexing = 28, 721 SampledImageArrayDynamicIndexing = 29, 722 StorageBufferArrayDynamicIndexing = 30, 723 StorageImageArrayDynamicIndexing = 31, 724 ClipDistance = 32, 725 CullDistance = 33, 726 ImageCubeArray = 34, 727 SampleRateShading = 35, 728 ImageRect = 36, 729 SampledRect = 37, 730 GenericPointer = 38, 731 Int8 = 39, 732 InputAttachment = 40, 733 SparseResidency = 41, 734 MinLod = 42, 735 Sampled1D = 43, 736 Image1D = 44, 737 SampledCubeArray = 45, 738 SampledBuffer = 46, 739 ImageBuffer = 47, 740 ImageMSArray = 48, 741 StorageImageExtendedFormats = 49, 742 ImageQuery = 50, 743 DerivativeControl = 51, 744 InterpolationFunction = 52, 745 TransformFeedback = 53, 746 GeometryStreams = 54, 747 StorageImageReadWithoutFormat = 55, 748 StorageImageWriteWithoutFormat = 56, 749 MultiViewport = 57, 750 SubgroupDispatch = 58, 751 NamedBarrier = 59, 752 PipeStorage = 60, 753 GroupNonUniform = 61, 754 GroupNonUniformVote = 62, 755 GroupNonUniformArithmetic = 63, 756 GroupNonUniformBallot = 64, 757 GroupNonUniformShuffle = 65, 758 GroupNonUniformShuffleRelative = 66, 759 GroupNonUniformClustered = 67, 760 GroupNonUniformQuad = 68, 761 SubgroupBallotKHR = 4423, 762 DrawParameters = 4427, 763 SubgroupVoteKHR = 4431, 764 StorageBuffer16BitAccess = 4433, 765 StorageUniformBufferBlock16 = 4433, 766 StorageUniform16 = 4434, 767 UniformAndStorageBuffer16BitAccess = 4434, 768 StoragePushConstant16 = 4435, 769 StorageInputOutput16 = 4436, 770 DeviceGroup = 4437, 771 MultiView = 4439, 772 VariablePointersStorageBuffer = 4441, 773 VariablePointers = 4442, 774 AtomicStorageOps = 4445, 775 SampleMaskPostDepthCoverage = 4447, 776 StorageBuffer8BitAccess = 4448, 777 UniformAndStorageBuffer8BitAccess = 4449, 778 StoragePushConstant8 = 4450, 779 DenormPreserve = 4464, 780 DenormFlushToZero = 4465, 781 SignedZeroInfNanPreserve = 4466, 782 RoundingModeRTE = 4467, 783 RoundingModeRTZ = 4468, 784 Float16ImageAMD = 5008, 785 ImageGatherBiasLodAMD = 5009, 786 FragmentMaskAMD = 5010, 787 StencilExportEXT = 5013, 788 ImageReadWriteLodAMD = 5015, 789 SampleMaskOverrideCoverageNV = 5249, 790 GeometryShaderPassthroughNV = 5251, 791 ShaderViewportIndexLayerEXT = 5254, 792 ShaderViewportIndexLayerNV = 5254, 793 ShaderViewportMaskNV = 5255, 794 ShaderStereoViewNV = 5259, 795 PerViewAttributesNV = 5260, 796 FragmentFullyCoveredEXT = 5265, 797 MeshShadingNV = 5266, 798 ImageFootprintNV = 5282, 799 FragmentBarycentricNV = 5284, 800 ComputeDerivativeGroupQuadsNV = 5288, 801 FragmentDensityEXT = 5291, 802 ShadingRateNV = 5291, 803 GroupNonUniformPartitionedNV = 5297, 804 ShaderNonUniformEXT = 5301, 805 RuntimeDescriptorArrayEXT = 5302, 806 InputAttachmentArrayDynamicIndexingEXT = 5303, 807 UniformTexelBufferArrayDynamicIndexingEXT = 5304, 808 StorageTexelBufferArrayDynamicIndexingEXT = 5305, 809 UniformBufferArrayNonUniformIndexingEXT = 5306, 810 SampledImageArrayNonUniformIndexingEXT = 5307, 811 StorageBufferArrayNonUniformIndexingEXT = 5308, 812 StorageImageArrayNonUniformIndexingEXT = 5309, 813 InputAttachmentArrayNonUniformIndexingEXT = 5310, 814 UniformTexelBufferArrayNonUniformIndexingEXT = 5311, 815 StorageTexelBufferArrayNonUniformIndexingEXT = 5312, 816 RayTracingNV = 5340, 817 VulkanMemoryModelKHR = 5345, 818 VulkanMemoryModelDeviceScopeKHR = 5346, 819 PhysicalStorageBufferAddressesEXT = 5347, 820 ComputeDerivativeGroupLinearNV = 5350, 821 SubgroupShuffleINTEL = 5568, 822 SubgroupBufferBlockIOINTEL = 5569, 823 SubgroupImageBlockIOINTEL = 5570, 824 } 825 826 enum Op : uint 827 { 828 OpNop = 0, 829 OpUndef = 1, 830 OpSourceContinued = 2, 831 OpSource = 3, 832 OpSourceExtension = 4, 833 OpName = 5, 834 OpMemberName = 6, 835 OpString = 7, 836 OpLine = 8, 837 OpExtension = 10, 838 OpExtInstImport = 11, 839 OpExtInst = 12, 840 OpMemoryModel = 14, 841 OpEntryPoint = 15, 842 OpExecutionMode = 16, 843 OpCapability = 17, 844 OpTypeVoid = 19, 845 OpTypeBool = 20, 846 OpTypeInt = 21, 847 OpTypeFloat = 22, 848 OpTypeVector = 23, 849 OpTypeMatrix = 24, 850 OpTypeImage = 25, 851 OpTypeSampler = 26, 852 OpTypeSampledImage = 27, 853 OpTypeArray = 28, 854 OpTypeRuntimeArray = 29, 855 OpTypeStruct = 30, 856 OpTypeOpaque = 31, 857 OpTypePointer = 32, 858 OpTypeFunction = 33, 859 OpTypeEvent = 34, 860 OpTypeDeviceEvent = 35, 861 OpTypeReserveId = 36, 862 OpTypeQueue = 37, 863 OpTypePipe = 38, 864 OpTypeForwardPointer = 39, 865 OpConstantTrue = 41, 866 OpConstantFalse = 42, 867 OpConstant = 43, 868 OpConstantComposite = 44, 869 OpConstantSampler = 45, 870 OpConstantNull = 46, 871 OpSpecConstantTrue = 48, 872 OpSpecConstantFalse = 49, 873 OpSpecConstant = 50, 874 OpSpecConstantComposite = 51, 875 OpSpecConstantOp = 52, 876 OpFunction = 54, 877 OpFunctionParameter = 55, 878 OpFunctionEnd = 56, 879 OpFunctionCall = 57, 880 OpVariable = 59, 881 OpImageTexelPointer = 60, 882 OpLoad = 61, 883 OpStore = 62, 884 OpCopyMemory = 63, 885 OpCopyMemorySized = 64, 886 OpAccessChain = 65, 887 OpInBoundsAccessChain = 66, 888 OpPtrAccessChain = 67, 889 OpArrayLength = 68, 890 OpGenericPtrMemSemantics = 69, 891 OpInBoundsPtrAccessChain = 70, 892 OpDecorate = 71, 893 OpMemberDecorate = 72, 894 OpDecorationGroup = 73, 895 OpGroupDecorate = 74, 896 OpGroupMemberDecorate = 75, 897 OpVectorExtractDynamic = 77, 898 OpVectorInsertDynamic = 78, 899 OpVectorShuffle = 79, 900 OpCompositeConstruct = 80, 901 OpCompositeExtract = 81, 902 OpCompositeInsert = 82, 903 OpCopyObject = 83, 904 OpTranspose = 84, 905 OpSampledImage = 86, 906 OpImageSampleImplicitLod = 87, 907 OpImageSampleExplicitLod = 88, 908 OpImageSampleDrefImplicitLod = 89, 909 OpImageSampleDrefExplicitLod = 90, 910 OpImageSampleProjImplicitLod = 91, 911 OpImageSampleProjExplicitLod = 92, 912 OpImageSampleProjDrefImplicitLod = 93, 913 OpImageSampleProjDrefExplicitLod = 94, 914 OpImageFetch = 95, 915 OpImageGather = 96, 916 OpImageDrefGather = 97, 917 OpImageRead = 98, 918 OpImageWrite = 99, 919 OpImage = 100, 920 OpImageQueryFormat = 101, 921 OpImageQueryOrder = 102, 922 OpImageQuerySizeLod = 103, 923 OpImageQuerySize = 104, 924 OpImageQueryLod = 105, 925 OpImageQueryLevels = 106, 926 OpImageQuerySamples = 107, 927 OpConvertFToU = 109, 928 OpConvertFToS = 110, 929 OpConvertSToF = 111, 930 OpConvertUToF = 112, 931 OpUConvert = 113, 932 OpSConvert = 114, 933 OpFConvert = 115, 934 OpQuantizeToF16 = 116, 935 OpConvertPtrToU = 117, 936 OpSatConvertSToU = 118, 937 OpSatConvertUToS = 119, 938 OpConvertUToPtr = 120, 939 OpPtrCastToGeneric = 121, 940 OpGenericCastToPtr = 122, 941 OpGenericCastToPtrExplicit = 123, 942 OpBitcast = 124, 943 OpSNegate = 126, 944 OpFNegate = 127, 945 OpIAdd = 128, 946 OpFAdd = 129, 947 OpISub = 130, 948 OpFSub = 131, 949 OpIMul = 132, 950 OpFMul = 133, 951 OpUDiv = 134, 952 OpSDiv = 135, 953 OpFDiv = 136, 954 OpUMod = 137, 955 OpSRem = 138, 956 OpSMod = 139, 957 OpFRem = 140, 958 OpFMod = 141, 959 OpVectorTimesScalar = 142, 960 OpMatrixTimesScalar = 143, 961 OpVectorTimesMatrix = 144, 962 OpMatrixTimesVector = 145, 963 OpMatrixTimesMatrix = 146, 964 OpOuterProduct = 147, 965 OpDot = 148, 966 OpIAddCarry = 149, 967 OpISubBorrow = 150, 968 OpUMulExtended = 151, 969 OpSMulExtended = 152, 970 OpAny = 154, 971 OpAll = 155, 972 OpIsNan = 156, 973 OpIsInf = 157, 974 OpIsFinite = 158, 975 OpIsNormal = 159, 976 OpSignBitSet = 160, 977 OpLessOrGreater = 161, 978 OpOrdered = 162, 979 OpUnordered = 163, 980 OpLogicalEqual = 164, 981 OpLogicalNotEqual = 165, 982 OpLogicalOr = 166, 983 OpLogicalAnd = 167, 984 OpLogicalNot = 168, 985 OpSelect = 169, 986 OpIEqual = 170, 987 OpINotEqual = 171, 988 OpUGreaterThan = 172, 989 OpSGreaterThan = 173, 990 OpUGreaterThanEqual = 174, 991 OpSGreaterThanEqual = 175, 992 OpULessThan = 176, 993 OpSLessThan = 177, 994 OpULessThanEqual = 178, 995 OpSLessThanEqual = 179, 996 OpFOrdEqual = 180, 997 OpFUnordEqual = 181, 998 OpFOrdNotEqual = 182, 999 OpFUnordNotEqual = 183, 1000 OpFOrdLessThan = 184, 1001 OpFUnordLessThan = 185, 1002 OpFOrdGreaterThan = 186, 1003 OpFUnordGreaterThan = 187, 1004 OpFOrdLessThanEqual = 188, 1005 OpFUnordLessThanEqual = 189, 1006 OpFOrdGreaterThanEqual = 190, 1007 OpFUnordGreaterThanEqual = 191, 1008 OpShiftRightLogical = 194, 1009 OpShiftRightArithmetic = 195, 1010 OpShiftLeftLogical = 196, 1011 OpBitwiseOr = 197, 1012 OpBitwiseXor = 198, 1013 OpBitwiseAnd = 199, 1014 OpNot = 200, 1015 OpBitFieldInsert = 201, 1016 OpBitFieldSExtract = 202, 1017 OpBitFieldUExtract = 203, 1018 OpBitReverse = 204, 1019 OpBitCount = 205, 1020 OpDPdx = 207, 1021 OpDPdy = 208, 1022 OpFwidth = 209, 1023 OpDPdxFine = 210, 1024 OpDPdyFine = 211, 1025 OpFwidthFine = 212, 1026 OpDPdxCoarse = 213, 1027 OpDPdyCoarse = 214, 1028 OpFwidthCoarse = 215, 1029 OpEmitVertex = 218, 1030 OpEndPrimitive = 219, 1031 OpEmitStreamVertex = 220, 1032 OpEndStreamPrimitive = 221, 1033 OpControlBarrier = 224, 1034 OpMemoryBarrier = 225, 1035 OpAtomicLoad = 227, 1036 OpAtomicStore = 228, 1037 OpAtomicExchange = 229, 1038 OpAtomicCompareExchange = 230, 1039 OpAtomicCompareExchangeWeak = 231, 1040 OpAtomicIIncrement = 232, 1041 OpAtomicIDecrement = 233, 1042 OpAtomicIAdd = 234, 1043 OpAtomicISub = 235, 1044 OpAtomicSMin = 236, 1045 OpAtomicUMin = 237, 1046 OpAtomicSMax = 238, 1047 OpAtomicUMax = 239, 1048 OpAtomicAnd = 240, 1049 OpAtomicOr = 241, 1050 OpAtomicXor = 242, 1051 OpPhi = 245, 1052 OpLoopMerge = 246, 1053 OpSelectionMerge = 247, 1054 OpLabel = 248, 1055 OpBranch = 249, 1056 OpBranchConditional = 250, 1057 OpSwitch = 251, 1058 OpKill = 252, 1059 OpReturn = 253, 1060 OpReturnValue = 254, 1061 OpUnreachable = 255, 1062 OpLifetimeStart = 256, 1063 OpLifetimeStop = 257, 1064 OpGroupAsyncCopy = 259, 1065 OpGroupWaitEvents = 260, 1066 OpGroupAll = 261, 1067 OpGroupAny = 262, 1068 OpGroupBroadcast = 263, 1069 OpGroupIAdd = 264, 1070 OpGroupFAdd = 265, 1071 OpGroupFMin = 266, 1072 OpGroupUMin = 267, 1073 OpGroupSMin = 268, 1074 OpGroupFMax = 269, 1075 OpGroupUMax = 270, 1076 OpGroupSMax = 271, 1077 OpReadPipe = 274, 1078 OpWritePipe = 275, 1079 OpReservedReadPipe = 276, 1080 OpReservedWritePipe = 277, 1081 OpReserveReadPipePackets = 278, 1082 OpReserveWritePipePackets = 279, 1083 OpCommitReadPipe = 280, 1084 OpCommitWritePipe = 281, 1085 OpIsValidReserveId = 282, 1086 OpGetNumPipePackets = 283, 1087 OpGetMaxPipePackets = 284, 1088 OpGroupReserveReadPipePackets = 285, 1089 OpGroupReserveWritePipePackets = 286, 1090 OpGroupCommitReadPipe = 287, 1091 OpGroupCommitWritePipe = 288, 1092 OpEnqueueMarker = 291, 1093 OpEnqueueKernel = 292, 1094 OpGetKernelNDrangeSubGroupCount = 293, 1095 OpGetKernelNDrangeMaxSubGroupSize = 294, 1096 OpGetKernelWorkGroupSize = 295, 1097 OpGetKernelPreferredWorkGroupSizeMultiple = 296, 1098 OpRetainEvent = 297, 1099 OpReleaseEvent = 298, 1100 OpCreateUserEvent = 299, 1101 OpIsValidEvent = 300, 1102 OpSetUserEventStatus = 301, 1103 OpCaptureEventProfilingInfo = 302, 1104 OpGetDefaultQueue = 303, 1105 OpBuildNDRange = 304, 1106 OpImageSparseSampleImplicitLod = 305, 1107 OpImageSparseSampleExplicitLod = 306, 1108 OpImageSparseSampleDrefImplicitLod = 307, 1109 OpImageSparseSampleDrefExplicitLod = 308, 1110 OpImageSparseSampleProjImplicitLod = 309, 1111 OpImageSparseSampleProjExplicitLod = 310, 1112 OpImageSparseSampleProjDrefImplicitLod = 311, 1113 OpImageSparseSampleProjDrefExplicitLod = 312, 1114 OpImageSparseFetch = 313, 1115 OpImageSparseGather = 314, 1116 OpImageSparseDrefGather = 315, 1117 OpImageSparseTexelsResident = 316, 1118 OpNoLine = 317, 1119 OpAtomicFlagTestAndSet = 318, 1120 OpAtomicFlagClear = 319, 1121 OpImageSparseRead = 320, 1122 OpSizeOf = 321, 1123 OpTypePipeStorage = 322, 1124 OpConstantPipeStorage = 323, 1125 OpCreatePipeFromPipeStorage = 324, 1126 OpGetKernelLocalSizeForSubgroupCount = 325, 1127 OpGetKernelMaxNumSubgroups = 326, 1128 OpTypeNamedBarrier = 327, 1129 OpNamedBarrierInitialize = 328, 1130 OpMemoryNamedBarrier = 329, 1131 OpModuleProcessed = 330, 1132 OpExecutionModeId = 331, 1133 OpDecorateId = 332, 1134 OpGroupNonUniformElect = 333, 1135 OpGroupNonUniformAll = 334, 1136 OpGroupNonUniformAny = 335, 1137 OpGroupNonUniformAllEqual = 336, 1138 OpGroupNonUniformBroadcast = 337, 1139 OpGroupNonUniformBroadcastFirst = 338, 1140 OpGroupNonUniformBallot = 339, 1141 OpGroupNonUniformInverseBallot = 340, 1142 OpGroupNonUniformBallotBitExtract = 341, 1143 OpGroupNonUniformBallotBitCount = 342, 1144 OpGroupNonUniformBallotFindLSB = 343, 1145 OpGroupNonUniformBallotFindMSB = 344, 1146 OpGroupNonUniformShuffle = 345, 1147 OpGroupNonUniformShuffleXor = 346, 1148 OpGroupNonUniformShuffleUp = 347, 1149 OpGroupNonUniformShuffleDown = 348, 1150 OpGroupNonUniformIAdd = 349, 1151 OpGroupNonUniformFAdd = 350, 1152 OpGroupNonUniformIMul = 351, 1153 OpGroupNonUniformFMul = 352, 1154 OpGroupNonUniformSMin = 353, 1155 OpGroupNonUniformUMin = 354, 1156 OpGroupNonUniformFMin = 355, 1157 OpGroupNonUniformSMax = 356, 1158 OpGroupNonUniformUMax = 357, 1159 OpGroupNonUniformFMax = 358, 1160 OpGroupNonUniformBitwiseAnd = 359, 1161 OpGroupNonUniformBitwiseOr = 360, 1162 OpGroupNonUniformBitwiseXor = 361, 1163 OpGroupNonUniformLogicalAnd = 362, 1164 OpGroupNonUniformLogicalOr = 363, 1165 OpGroupNonUniformLogicalXor = 364, 1166 OpGroupNonUniformQuadBroadcast = 365, 1167 OpGroupNonUniformQuadSwap = 366, 1168 OpSubgroupBallotKHR = 4421, 1169 OpSubgroupFirstInvocationKHR = 4422, 1170 OpSubgroupAllKHR = 4428, 1171 OpSubgroupAnyKHR = 4429, 1172 OpSubgroupAllEqualKHR = 4430, 1173 OpSubgroupReadInvocationKHR = 4432, 1174 OpGroupIAddNonUniformAMD = 5000, 1175 OpGroupFAddNonUniformAMD = 5001, 1176 OpGroupFMinNonUniformAMD = 5002, 1177 OpGroupUMinNonUniformAMD = 5003, 1178 OpGroupSMinNonUniformAMD = 5004, 1179 OpGroupFMaxNonUniformAMD = 5005, 1180 OpGroupUMaxNonUniformAMD = 5006, 1181 OpGroupSMaxNonUniformAMD = 5007, 1182 OpFragmentMaskFetchAMD = 5011, 1183 OpFragmentFetchAMD = 5012, 1184 OpImageSampleFootprintNV = 5283, 1185 OpGroupNonUniformPartitionNV = 5296, 1186 OpWritePackedPrimitiveIndices4x8NV = 5299, 1187 OpReportIntersectionNV = 5334, 1188 OpIgnoreIntersectionNV = 5335, 1189 OpTerminateRayNV = 5336, 1190 OpTraceNV = 5337, 1191 OpTypeAccelerationStructureNV = 5341, 1192 OpExecuteCallableNV = 5344, 1193 OpSubgroupShuffleINTEL = 5571, 1194 OpSubgroupShuffleDownINTEL = 5572, 1195 OpSubgroupShuffleUpINTEL = 5573, 1196 OpSubgroupShuffleXorINTEL = 5574, 1197 OpSubgroupBlockReadINTEL = 5575, 1198 OpSubgroupBlockWriteINTEL = 5576, 1199 OpSubgroupImageBlockReadINTEL = 5577, 1200 OpSubgroupImageBlockWriteINTEL = 5578, 1201 OpDecorateStringGOOGLE = 5632, 1202 OpMemberDecorateStringGOOGLE = 5633, 1203 } 1204 1205 1206