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