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