/ src / Spv.Generator / spirv.cs
spirv.cs
   1  // Copyright (c) 2014-2020 The Khronos Group Inc.
   2  //
   3  // Permission is hereby granted, free of charge, to any person obtaining a copy
   4  // of this software and/or associated documentation files (the "Materials"),
   5  // to deal in the Materials without restriction, including without limitation
   6  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
   7  // and/or sell copies of the Materials, and to permit persons to whom the
   8  // Materials are furnished to do so, subject to the following conditions:
   9  //
  10  // The above copyright notice and this permission notice shall be included in
  11  // all copies or substantial portions of the Materials.
  12  //
  13  // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
  14  // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
  15  // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
  16  //
  17  // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  18  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  20  // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  22  // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
  23  // IN THE MATERIALS.
  24  
  25  // This header is automatically generated by the same tool that creates
  26  // the Binary Section of the SPIR-V specification.
  27  
  28  // Enumeration tokens for SPIR-V, in various styles:
  29  //   C, C++, C++11, JSON, Lua, Python, C#, D
  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 = 0x00010500;
  52          public const uint Revision = 4;
  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              RayGenerationKHR = 5313,
  78              RayGenerationNV = RayGenerationKHR,
  79              IntersectionKHR = 5314,
  80              IntersectionNV = IntersectionKHR,
  81              AnyHitKHR = 5315,
  82              AnyHitNV = AnyHitKHR,
  83              ClosestHitKHR = 5316,
  84              ClosestHitNV = ClosestHitKHR,
  85              MissKHR = 5317,
  86              MissNV = MissKHR,
  87              CallableKHR = 5318,
  88              CallableNV = CallableKHR,
  89          }
  90  
  91          public enum AddressingModel
  92          {
  93              Logical = 0,
  94              Physical32 = 1,
  95              Physical64 = 2,
  96              PhysicalStorageBuffer64 = 5348,
  97              PhysicalStorageBuffer64EXT = PhysicalStorageBuffer64,
  98          }
  99  
 100          public enum MemoryModel
 101          {
 102              Simple = 0,
 103              GLSL450 = 1,
 104              OpenCL = 2,
 105              Vulkan = 3,
 106              VulkanKHR = Vulkan,
 107          }
 108  
 109          public enum ExecutionMode
 110          {
 111              Invocations = 0,
 112              SpacingEqual = 1,
 113              SpacingFractionalEven = 2,
 114              SpacingFractionalOdd = 3,
 115              VertexOrderCw = 4,
 116              VertexOrderCcw = 5,
 117              PixelCenterInteger = 6,
 118              OriginUpperLeft = 7,
 119              OriginLowerLeft = 8,
 120              EarlyFragmentTests = 9,
 121              PointMode = 10,
 122              Xfb = 11,
 123              DepthReplacing = 12,
 124              DepthGreater = 14,
 125              DepthLess = 15,
 126              DepthUnchanged = 16,
 127              LocalSize = 17,
 128              LocalSizeHint = 18,
 129              InputPoints = 19,
 130              InputLines = 20,
 131              InputLinesAdjacency = 21,
 132              Triangles = 22,
 133              InputTrianglesAdjacency = 23,
 134              Quads = 24,
 135              Isolines = 25,
 136              OutputVertices = 26,
 137              OutputPoints = 27,
 138              OutputLineStrip = 28,
 139              OutputTriangleStrip = 29,
 140              VecTypeHint = 30,
 141              ContractionOff = 31,
 142              Initializer = 33,
 143              Finalizer = 34,
 144              SubgroupSize = 35,
 145              SubgroupsPerWorkgroup = 36,
 146              SubgroupsPerWorkgroupId = 37,
 147              LocalSizeId = 38,
 148              LocalSizeHintId = 39,
 149              PostDepthCoverage = 4446,
 150              DenormPreserve = 4459,
 151              DenormFlushToZero = 4460,
 152              SignedZeroInfNanPreserve = 4461,
 153              RoundingModeRTE = 4462,
 154              RoundingModeRTZ = 4463,
 155              StencilRefReplacingEXT = 5027,
 156              OutputLinesNV = 5269,
 157              OutputPrimitivesNV = 5270,
 158              DerivativeGroupQuadsNV = 5289,
 159              DerivativeGroupLinearNV = 5290,
 160              OutputTrianglesNV = 5298,
 161              PixelInterlockOrderedEXT = 5366,
 162              PixelInterlockUnorderedEXT = 5367,
 163              SampleInterlockOrderedEXT = 5368,
 164              SampleInterlockUnorderedEXT = 5369,
 165              ShadingRateInterlockOrderedEXT = 5370,
 166              ShadingRateInterlockUnorderedEXT = 5371,
 167              MaxWorkgroupSizeINTEL = 5893,
 168              MaxWorkDimINTEL = 5894,
 169              NoGlobalOffsetINTEL = 5895,
 170              NumSIMDWorkitemsINTEL = 5896,
 171          }
 172  
 173          public enum StorageClass
 174          {
 175              UniformConstant = 0,
 176              Input = 1,
 177              Uniform = 2,
 178              Output = 3,
 179              Workgroup = 4,
 180              CrossWorkgroup = 5,
 181              Private = 6,
 182              Function = 7,
 183              Generic = 8,
 184              PushConstant = 9,
 185              AtomicCounter = 10,
 186              Image = 11,
 187              StorageBuffer = 12,
 188              CallableDataKHR = 5328,
 189              CallableDataNV = CallableDataKHR,
 190              IncomingCallableDataKHR = 5329,
 191              IncomingCallableDataNV = IncomingCallableDataKHR,
 192              RayPayloadKHR = 5338,
 193              RayPayloadNV = RayPayloadKHR,
 194              HitAttributeKHR = 5339,
 195              HitAttributeNV = HitAttributeKHR,
 196              IncomingRayPayloadKHR = 5342,
 197              IncomingRayPayloadNV = IncomingRayPayloadKHR,
 198              ShaderRecordBufferKHR = 5343,
 199              ShaderRecordBufferNV = ShaderRecordBufferKHR,
 200              PhysicalStorageBuffer = 5349,
 201              PhysicalStorageBufferEXT = PhysicalStorageBuffer,
 202              CodeSectionINTEL = 5605,
 203          }
 204  
 205          public enum Dim
 206          {
 207              Dim1D = 0,
 208              Dim2D = 1,
 209              Dim3D = 2,
 210              Cube = 3,
 211              Rect = 4,
 212              Buffer = 5,
 213              SubpassData = 6,
 214          }
 215  
 216          public enum SamplerAddressingMode
 217          {
 218              None = 0,
 219              ClampToEdge = 1,
 220              Clamp = 2,
 221              Repeat = 3,
 222              RepeatMirrored = 4,
 223          }
 224  
 225          public enum SamplerFilterMode
 226          {
 227              Nearest = 0,
 228              Linear = 1,
 229          }
 230  
 231          public enum ImageFormat
 232          {
 233              Unknown = 0,
 234              Rgba32f = 1,
 235              Rgba16f = 2,
 236              R32f = 3,
 237              Rgba8 = 4,
 238              Rgba8Snorm = 5,
 239              Rg32f = 6,
 240              Rg16f = 7,
 241              R11fG11fB10f = 8,
 242              R16f = 9,
 243              Rgba16 = 10,
 244              Rgb10A2 = 11,
 245              Rg16 = 12,
 246              Rg8 = 13,
 247              R16 = 14,
 248              R8 = 15,
 249              Rgba16Snorm = 16,
 250              Rg16Snorm = 17,
 251              Rg8Snorm = 18,
 252              R16Snorm = 19,
 253              R8Snorm = 20,
 254              Rgba32i = 21,
 255              Rgba16i = 22,
 256              Rgba8i = 23,
 257              R32i = 24,
 258              Rg32i = 25,
 259              Rg16i = 26,
 260              Rg8i = 27,
 261              R16i = 28,
 262              R8i = 29,
 263              Rgba32ui = 30,
 264              Rgba16ui = 31,
 265              Rgba8ui = 32,
 266              R32ui = 33,
 267              Rgb10a2ui = 34,
 268              Rg32ui = 35,
 269              Rg16ui = 36,
 270              Rg8ui = 37,
 271              R16ui = 38,
 272              R8ui = 39,
 273              R64ui = 40,
 274              R64i = 41,
 275          }
 276  
 277          public enum ImageChannelOrder
 278          {
 279              R = 0,
 280              A = 1,
 281              RG = 2,
 282              RA = 3,
 283              RGB = 4,
 284              RGBA = 5,
 285              BGRA = 6,
 286              ARGB = 7,
 287              Intensity = 8,
 288              Luminance = 9,
 289              Rx = 10,
 290              RGx = 11,
 291              RGBx = 12,
 292              Depth = 13,
 293              DepthStencil = 14,
 294              sRGB = 15,
 295              sRGBx = 16,
 296              sRGBA = 17,
 297              sBGRA = 18,
 298              ABGR = 19,
 299          }
 300  
 301          public enum ImageChannelDataType
 302          {
 303              SnormInt8 = 0,
 304              SnormInt16 = 1,
 305              UnormInt8 = 2,
 306              UnormInt16 = 3,
 307              UnormShort565 = 4,
 308              UnormShort555 = 5,
 309              UnormInt101010 = 6,
 310              SignedInt8 = 7,
 311              SignedInt16 = 8,
 312              SignedInt32 = 9,
 313              UnsignedInt8 = 10,
 314              UnsignedInt16 = 11,
 315              UnsignedInt32 = 12,
 316              HalfFloat = 13,
 317              Float = 14,
 318              UnormInt24 = 15,
 319              UnormInt101010_2 = 16,
 320          }
 321  
 322          public enum ImageOperandsShift
 323          {
 324              Bias = 0,
 325              Lod = 1,
 326              Grad = 2,
 327              ConstOffset = 3,
 328              Offset = 4,
 329              ConstOffsets = 5,
 330              Sample = 6,
 331              MinLod = 7,
 332              MakeTexelAvailable = 8,
 333              MakeTexelAvailableKHR = MakeTexelAvailable,
 334              MakeTexelVisible = 9,
 335              MakeTexelVisibleKHR = MakeTexelVisible,
 336              NonPrivateTexel = 10,
 337              NonPrivateTexelKHR = NonPrivateTexel,
 338              VolatileTexel = 11,
 339              VolatileTexelKHR = VolatileTexel,
 340              SignExtend = 12,
 341              ZeroExtend = 13,
 342          }
 343  
 344          public enum ImageOperandsMask
 345          {
 346              MaskNone = 0,
 347              Bias = 0x00000001,
 348              Lod = 0x00000002,
 349              Grad = 0x00000004,
 350              ConstOffset = 0x00000008,
 351              Offset = 0x00000010,
 352              ConstOffsets = 0x00000020,
 353              Sample = 0x00000040,
 354              MinLod = 0x00000080,
 355              MakeTexelAvailable = 0x00000100,
 356              MakeTexelAvailableKHR = MakeTexelAvailable,
 357              MakeTexelVisible = 0x00000200,
 358              MakeTexelVisibleKHR = MakeTexelVisible,
 359              NonPrivateTexel = 0x00000400,
 360              NonPrivateTexelKHR = NonPrivateTexel,
 361              VolatileTexel = 0x00000800,
 362              VolatileTexelKHR = VolatileTexel,
 363              SignExtend = 0x00001000,
 364              ZeroExtend = 0x00002000,
 365              Offsets = 0x00010000,
 366          }
 367  
 368          public enum FPFastMathModeShift
 369          {
 370              NotNaN = 0,
 371              NotInf = 1,
 372              NSZ = 2,
 373              AllowRecip = 3,
 374              Fast = 4,
 375          }
 376  
 377          public enum FPFastMathModeMask
 378          {
 379              MaskNone = 0,
 380              NotNaN = 0x00000001,
 381              NotInf = 0x00000002,
 382              NSZ = 0x00000004,
 383              AllowRecip = 0x00000008,
 384              Fast = 0x00000010,
 385          }
 386  
 387          public enum FPRoundingMode
 388          {
 389              RTE = 0,
 390              RTZ = 1,
 391              RTP = 2,
 392              RTN = 3,
 393          }
 394  
 395          public enum LinkageType
 396          {
 397              Export = 0,
 398              Import = 1,
 399          }
 400  
 401          public enum AccessQualifier
 402          {
 403              ReadOnly = 0,
 404              WriteOnly = 1,
 405              ReadWrite = 2,
 406          }
 407  
 408          public enum FunctionParameterAttribute
 409          {
 410              Zext = 0,
 411              Sext = 1,
 412              ByVal = 2,
 413              Sret = 3,
 414              NoAlias = 4,
 415              NoCapture = 5,
 416              NoWrite = 6,
 417              NoReadWrite = 7,
 418          }
 419  
 420          public enum Decoration
 421          {
 422              RelaxedPrecision = 0,
 423              SpecId = 1,
 424              Block = 2,
 425              BufferBlock = 3,
 426              RowMajor = 4,
 427              ColMajor = 5,
 428              ArrayStride = 6,
 429              MatrixStride = 7,
 430              GLSLShared = 8,
 431              GLSLPacked = 9,
 432              CPacked = 10,
 433              BuiltIn = 11,
 434              NoPerspective = 13,
 435              Flat = 14,
 436              Patch = 15,
 437              Centroid = 16,
 438              Sample = 17,
 439              Invariant = 18,
 440              Restrict = 19,
 441              Aliased = 20,
 442              Volatile = 21,
 443              Constant = 22,
 444              Coherent = 23,
 445              NonWritable = 24,
 446              NonReadable = 25,
 447              Uniform = 26,
 448              UniformId = 27,
 449              SaturatedConversion = 28,
 450              Stream = 29,
 451              Location = 30,
 452              Component = 31,
 453              Index = 32,
 454              Binding = 33,
 455              DescriptorSet = 34,
 456              Offset = 35,
 457              XfbBuffer = 36,
 458              XfbStride = 37,
 459              FuncParamAttr = 38,
 460              FPRoundingMode = 39,
 461              FPFastMathMode = 40,
 462              LinkageAttributes = 41,
 463              NoContraction = 42,
 464              InputAttachmentIndex = 43,
 465              Alignment = 44,
 466              MaxByteOffset = 45,
 467              AlignmentId = 46,
 468              MaxByteOffsetId = 47,
 469              NoSignedWrap = 4469,
 470              NoUnsignedWrap = 4470,
 471              ExplicitInterpAMD = 4999,
 472              OverrideCoverageNV = 5248,
 473              PassthroughNV = 5250,
 474              ViewportRelativeNV = 5252,
 475              SecondaryViewportRelativeNV = 5256,
 476              PerPrimitiveNV = 5271,
 477              PerViewNV = 5272,
 478              PerTaskNV = 5273,
 479              PerVertexNV = 5285,
 480              NonUniform = 5300,
 481              NonUniformEXT = NonUniform,
 482              RestrictPointer = 5355,
 483              RestrictPointerEXT = RestrictPointer,
 484              AliasedPointer = 5356,
 485              AliasedPointerEXT = AliasedPointer,
 486              ReferencedIndirectlyINTEL = 5602,
 487              CounterBuffer = 5634,
 488              HlslCounterBufferGOOGLE = CounterBuffer,
 489              HlslSemanticGOOGLE = 5635,
 490              UserSemantic = HlslSemanticGOOGLE,
 491              UserTypeGOOGLE = 5636,
 492              RegisterINTEL = 5825,
 493              MemoryINTEL = 5826,
 494              NumbanksINTEL = 5827,
 495              BankwidthINTEL = 5828,
 496              MaxPrivateCopiesINTEL = 5829,
 497              SinglepumpINTEL = 5830,
 498              DoublepumpINTEL = 5831,
 499              MaxReplicatesINTEL = 5832,
 500              SimpleDualPortINTEL = 5833,
 501              MergeINTEL = 5834,
 502              BankBitsINTEL = 5835,
 503              ForcePow2DepthINTEL = 5836,
 504          }
 505  
 506          public enum BuiltIn
 507          {
 508              Position = 0,
 509              PointSize = 1,
 510              ClipDistance = 3,
 511              CullDistance = 4,
 512              VertexId = 5,
 513              InstanceId = 6,
 514              PrimitiveId = 7,
 515              InvocationId = 8,
 516              Layer = 9,
 517              ViewportIndex = 10,
 518              TessLevelOuter = 11,
 519              TessLevelInner = 12,
 520              TessCoord = 13,
 521              PatchVertices = 14,
 522              FragCoord = 15,
 523              PointCoord = 16,
 524              FrontFacing = 17,
 525              SampleId = 18,
 526              SamplePosition = 19,
 527              SampleMask = 20,
 528              FragDepth = 22,
 529              HelperInvocation = 23,
 530              NumWorkgroups = 24,
 531              WorkgroupSize = 25,
 532              WorkgroupId = 26,
 533              LocalInvocationId = 27,
 534              GlobalInvocationId = 28,
 535              LocalInvocationIndex = 29,
 536              WorkDim = 30,
 537              GlobalSize = 31,
 538              EnqueuedWorkgroupSize = 32,
 539              GlobalOffset = 33,
 540              GlobalLinearId = 34,
 541              SubgroupSize = 36,
 542              SubgroupMaxSize = 37,
 543              NumSubgroups = 38,
 544              NumEnqueuedSubgroups = 39,
 545              SubgroupId = 40,
 546              SubgroupLocalInvocationId = 41,
 547              VertexIndex = 42,
 548              InstanceIndex = 43,
 549              SubgroupEqMask = 4416,
 550              SubgroupEqMaskKHR = SubgroupEqMask,
 551              SubgroupGeMask = 4417,
 552              SubgroupGeMaskKHR = SubgroupGeMask,
 553              SubgroupGtMask = 4418,
 554              SubgroupGtMaskKHR = SubgroupGtMask,
 555              SubgroupLeMask = 4419,
 556              SubgroupLeMaskKHR = SubgroupLeMask,
 557              SubgroupLtMask = 4420,
 558              SubgroupLtMaskKHR = SubgroupLtMask,
 559              BaseVertex = 4424,
 560              BaseInstance = 4425,
 561              DrawIndex = 4426,
 562              PrimitiveShadingRateKHR = 4432,
 563              DeviceIndex = 4438,
 564              ViewIndex = 4440,
 565              ShadingRateKHR = 4444,
 566              BaryCoordNoPerspAMD = 4992,
 567              BaryCoordNoPerspCentroidAMD = 4993,
 568              BaryCoordNoPerspSampleAMD = 4994,
 569              BaryCoordSmoothAMD = 4995,
 570              BaryCoordSmoothCentroidAMD = 4996,
 571              BaryCoordSmoothSampleAMD = 4997,
 572              BaryCoordPullModelAMD = 4998,
 573              FragStencilRefEXT = 5014,
 574              ViewportMaskNV = 5253,
 575              SecondaryPositionNV = 5257,
 576              SecondaryViewportMaskNV = 5258,
 577              PositionPerViewNV = 5261,
 578              ViewportMaskPerViewNV = 5262,
 579              FullyCoveredEXT = 5264,
 580              TaskCountNV = 5274,
 581              PrimitiveCountNV = 5275,
 582              PrimitiveIndicesNV = 5276,
 583              ClipDistancePerViewNV = 5277,
 584              CullDistancePerViewNV = 5278,
 585              LayerPerViewNV = 5279,
 586              MeshViewCountNV = 5280,
 587              MeshViewIndicesNV = 5281,
 588              BaryCoordNV = 5286,
 589              BaryCoordNoPerspNV = 5287,
 590              FragSizeEXT = 5292,
 591              FragmentSizeNV = FragSizeEXT,
 592              FragInvocationCountEXT = 5293,
 593              InvocationsPerPixelNV = FragInvocationCountEXT,
 594              LaunchIdKHR = 5319,
 595              LaunchIdNV = LaunchIdKHR,
 596              LaunchSizeKHR = 5320,
 597              LaunchSizeNV = LaunchSizeKHR,
 598              WorldRayOriginKHR = 5321,
 599              WorldRayOriginNV = WorldRayOriginKHR,
 600              WorldRayDirectionKHR = 5322,
 601              WorldRayDirectionNV = WorldRayDirectionKHR,
 602              ObjectRayOriginKHR = 5323,
 603              ObjectRayOriginNV = ObjectRayOriginKHR,
 604              ObjectRayDirectionKHR = 5324,
 605              ObjectRayDirectionNV = ObjectRayDirectionKHR,
 606              RayTminKHR = 5325,
 607              RayTminNV = RayTminKHR,
 608              RayTmaxKHR = 5326,
 609              RayTmaxNV = RayTmaxKHR,
 610              InstanceCustomIndexKHR = 5327,
 611              InstanceCustomIndexNV = InstanceCustomIndexKHR,
 612              ObjectToWorldKHR = 5330,
 613              ObjectToWorldNV = ObjectToWorldKHR,
 614              WorldToObjectKHR = 5331,
 615              WorldToObjectNV = WorldToObjectKHR,
 616              HitTNV = 5332,
 617              HitKindKHR = 5333,
 618              HitKindNV = HitKindKHR,
 619              IncomingRayFlagsKHR = 5351,
 620              IncomingRayFlagsNV = IncomingRayFlagsKHR,
 621              RayGeometryIndexKHR = 5352,
 622              WarpsPerSMNV = 5374,
 623              SMCountNV = 5375,
 624              WarpIDNV = 5376,
 625              SMIDNV = 5377,
 626          }
 627  
 628          public enum SelectionControlShift
 629          {
 630              Flatten = 0,
 631              DontFlatten = 1,
 632          }
 633  
 634          public enum SelectionControlMask
 635          {
 636              MaskNone = 0,
 637              Flatten = 0x00000001,
 638              DontFlatten = 0x00000002,
 639          }
 640  
 641          public enum LoopControlShift
 642          {
 643              Unroll = 0,
 644              DontUnroll = 1,
 645              DependencyInfinite = 2,
 646              DependencyLength = 3,
 647              MinIterations = 4,
 648              MaxIterations = 5,
 649              IterationMultiple = 6,
 650              PeelCount = 7,
 651              PartialCount = 8,
 652              InitiationIntervalINTEL = 16,
 653              MaxConcurrencyINTEL = 17,
 654              DependencyArrayINTEL = 18,
 655              PipelineEnableINTEL = 19,
 656              LoopCoalesceINTEL = 20,
 657              MaxInterleavingINTEL = 21,
 658              SpeculatedIterationsINTEL = 22,
 659          }
 660  
 661          public enum LoopControlMask
 662          {
 663              MaskNone = 0,
 664              Unroll = 0x00000001,
 665              DontUnroll = 0x00000002,
 666              DependencyInfinite = 0x00000004,
 667              DependencyLength = 0x00000008,
 668              MinIterations = 0x00000010,
 669              MaxIterations = 0x00000020,
 670              IterationMultiple = 0x00000040,
 671              PeelCount = 0x00000080,
 672              PartialCount = 0x00000100,
 673              InitiationIntervalINTEL = 0x00010000,
 674              MaxConcurrencyINTEL = 0x00020000,
 675              DependencyArrayINTEL = 0x00040000,
 676              PipelineEnableINTEL = 0x00080000,
 677              LoopCoalesceINTEL = 0x00100000,
 678              MaxInterleavingINTEL = 0x00200000,
 679              SpeculatedIterationsINTEL = 0x00400000,
 680          }
 681  
 682          public enum FunctionControlShift
 683          {
 684              Inline = 0,
 685              DontInline = 1,
 686              Pure = 2,
 687              Const = 3,
 688          }
 689  
 690          public enum FunctionControlMask
 691          {
 692              MaskNone = 0,
 693              Inline = 0x00000001,
 694              DontInline = 0x00000002,
 695              Pure = 0x00000004,
 696              Const = 0x00000008,
 697          }
 698  
 699          public enum MemorySemanticsShift
 700          {
 701              Acquire = 1,
 702              Release = 2,
 703              AcquireRelease = 3,
 704              SequentiallyConsistent = 4,
 705              UniformMemory = 6,
 706              SubgroupMemory = 7,
 707              WorkgroupMemory = 8,
 708              CrossWorkgroupMemory = 9,
 709              AtomicCounterMemory = 10,
 710              ImageMemory = 11,
 711              OutputMemory = 12,
 712              OutputMemoryKHR = OutputMemory,
 713              MakeAvailable = 13,
 714              MakeAvailableKHR = MakeAvailable,
 715              MakeVisible = 14,
 716              MakeVisibleKHR = MakeVisible,
 717              Volatile = 15,
 718          }
 719  
 720          public enum MemorySemanticsMask
 721          {
 722              MaskNone = 0,
 723              Acquire = 0x00000002,
 724              Release = 0x00000004,
 725              AcquireRelease = 0x00000008,
 726              SequentiallyConsistent = 0x00000010,
 727              UniformMemory = 0x00000040,
 728              SubgroupMemory = 0x00000080,
 729              WorkgroupMemory = 0x00000100,
 730              CrossWorkgroupMemory = 0x00000200,
 731              AtomicCounterMemory = 0x00000400,
 732              ImageMemory = 0x00000800,
 733              OutputMemory = 0x00001000,
 734              OutputMemoryKHR = OutputMemory,
 735              MakeAvailable = 0x00002000,
 736              MakeAvailableKHR = MakeAvailable,
 737              MakeVisible = 0x00004000,
 738              MakeVisibleKHR = MakeVisible,
 739              Volatile = 0x00008000,
 740          }
 741  
 742          public enum MemoryAccessShift
 743          {
 744              Volatile = 0,
 745              Aligned = 1,
 746              Nontemporal = 2,
 747              MakePointerAvailable = 3,
 748              MakePointerAvailableKHR = MakePointerAvailable,
 749              MakePointerVisible = 4,
 750              MakePointerVisibleKHR = MakePointerVisible,
 751              NonPrivatePointer = 5,
 752              NonPrivatePointerKHR = NonPrivatePointer,
 753          }
 754  
 755          public enum MemoryAccessMask
 756          {
 757              MaskNone = 0,
 758              Volatile = 0x00000001,
 759              Aligned = 0x00000002,
 760              Nontemporal = 0x00000004,
 761              MakePointerAvailable = 0x00000008,
 762              MakePointerAvailableKHR = MakePointerAvailable,
 763              MakePointerVisible = 0x00000010,
 764              MakePointerVisibleKHR = MakePointerVisible,
 765              NonPrivatePointer = 0x00000020,
 766              NonPrivatePointerKHR = NonPrivatePointer,
 767          }
 768  
 769          public enum Scope
 770          {
 771              CrossDevice = 0,
 772              Device = 1,
 773              Workgroup = 2,
 774              Subgroup = 3,
 775              Invocation = 4,
 776              QueueFamily = 5,
 777              QueueFamilyKHR = QueueFamily,
 778              ShaderCallKHR = 6,
 779          }
 780  
 781          public enum GroupOperation
 782          {
 783              Reduce = 0,
 784              InclusiveScan = 1,
 785              ExclusiveScan = 2,
 786              ClusteredReduce = 3,
 787              PartitionedReduceNV = 6,
 788              PartitionedInclusiveScanNV = 7,
 789              PartitionedExclusiveScanNV = 8,
 790          }
 791  
 792          public enum KernelEnqueueFlags
 793          {
 794              NoWait = 0,
 795              WaitKernel = 1,
 796              WaitWorkGroup = 2,
 797          }
 798  
 799          public enum KernelProfilingInfoShift
 800          {
 801              CmdExecTime = 0,
 802          }
 803  
 804          public enum KernelProfilingInfoMask
 805          {
 806              MaskNone = 0,
 807              CmdExecTime = 0x00000001,
 808          }
 809  
 810          public enum Capability
 811          {
 812              Matrix = 0,
 813              Shader = 1,
 814              Geometry = 2,
 815              Tessellation = 3,
 816              Addresses = 4,
 817              Linkage = 5,
 818              Kernel = 6,
 819              Vector16 = 7,
 820              Float16Buffer = 8,
 821              Float16 = 9,
 822              Float64 = 10,
 823              Int64 = 11,
 824              Int64Atomics = 12,
 825              ImageBasic = 13,
 826              ImageReadWrite = 14,
 827              ImageMipmap = 15,
 828              Pipes = 17,
 829              Groups = 18,
 830              DeviceEnqueue = 19,
 831              LiteralSampler = 20,
 832              AtomicStorage = 21,
 833              Int16 = 22,
 834              TessellationPointSize = 23,
 835              GeometryPointSize = 24,
 836              ImageGatherExtended = 25,
 837              StorageImageMultisample = 27,
 838              UniformBufferArrayDynamicIndexing = 28,
 839              SampledImageArrayDynamicIndexing = 29,
 840              StorageBufferArrayDynamicIndexing = 30,
 841              StorageImageArrayDynamicIndexing = 31,
 842              ClipDistance = 32,
 843              CullDistance = 33,
 844              ImageCubeArray = 34,
 845              SampleRateShading = 35,
 846              ImageRect = 36,
 847              SampledRect = 37,
 848              GenericPointer = 38,
 849              Int8 = 39,
 850              InputAttachment = 40,
 851              SparseResidency = 41,
 852              MinLod = 42,
 853              Sampled1D = 43,
 854              Image1D = 44,
 855              SampledCubeArray = 45,
 856              SampledBuffer = 46,
 857              ImageBuffer = 47,
 858              ImageMSArray = 48,
 859              StorageImageExtendedFormats = 49,
 860              ImageQuery = 50,
 861              DerivativeControl = 51,
 862              InterpolationFunction = 52,
 863              TransformFeedback = 53,
 864              GeometryStreams = 54,
 865              StorageImageReadWithoutFormat = 55,
 866              StorageImageWriteWithoutFormat = 56,
 867              MultiViewport = 57,
 868              SubgroupDispatch = 58,
 869              NamedBarrier = 59,
 870              PipeStorage = 60,
 871              GroupNonUniform = 61,
 872              GroupNonUniformVote = 62,
 873              GroupNonUniformArithmetic = 63,
 874              GroupNonUniformBallot = 64,
 875              GroupNonUniformShuffle = 65,
 876              GroupNonUniformShuffleRelative = 66,
 877              GroupNonUniformClustered = 67,
 878              GroupNonUniformQuad = 68,
 879              ShaderLayer = 69,
 880              ShaderViewportIndex = 70,
 881              FragmentShadingRateKHR = 4422,
 882              SubgroupBallotKHR = 4423,
 883              DrawParameters = 4427,
 884              SubgroupVoteKHR = 4431,
 885              StorageBuffer16BitAccess = 4433,
 886              StorageUniformBufferBlock16 = StorageBuffer16BitAccess,
 887              StorageUniform16 = 4434,
 888              UniformAndStorageBuffer16BitAccess = StorageUniform16,
 889              StoragePushConstant16 = 4435,
 890              StorageInputOutput16 = 4436,
 891              DeviceGroup = 4437,
 892              MultiView = 4439,
 893              VariablePointersStorageBuffer = 4441,
 894              VariablePointers = 4442,
 895              AtomicStorageOps = 4445,
 896              SampleMaskPostDepthCoverage = 4447,
 897              StorageBuffer8BitAccess = 4448,
 898              UniformAndStorageBuffer8BitAccess = 4449,
 899              StoragePushConstant8 = 4450,
 900              DenormPreserve = 4464,
 901              DenormFlushToZero = 4465,
 902              SignedZeroInfNanPreserve = 4466,
 903              RoundingModeRTE = 4467,
 904              RoundingModeRTZ = 4468,
 905              RayQueryProvisionalKHR = 4471,
 906              RayQueryKHR = 4472,
 907              RayTraversalPrimitiveCullingKHR = 4478,
 908              RayTracingKHR = 4479,
 909              Float16ImageAMD = 5008,
 910              ImageGatherBiasLodAMD = 5009,
 911              FragmentMaskAMD = 5010,
 912              StencilExportEXT = 5013,
 913              ImageReadWriteLodAMD = 5015,
 914              Int64ImageEXT = 5016,
 915              ShaderClockKHR = 5055,
 916              SampleMaskOverrideCoverageNV = 5249,
 917              GeometryShaderPassthroughNV = 5251,
 918              ShaderViewportIndexLayerEXT = 5254,
 919              ShaderViewportIndexLayerNV = ShaderViewportIndexLayerEXT,
 920              ShaderViewportMaskNV = 5255,
 921              ShaderStereoViewNV = 5259,
 922              PerViewAttributesNV = 5260,
 923              FragmentFullyCoveredEXT = 5265,
 924              MeshShadingNV = 5266,
 925              ImageFootprintNV = 5282,
 926              FragmentBarycentricNV = 5284,
 927              ComputeDerivativeGroupQuadsNV = 5288,
 928              FragmentDensityEXT = 5291,
 929              ShadingRateNV = FragmentDensityEXT,
 930              GroupNonUniformPartitionedNV = 5297,
 931              ShaderNonUniform = 5301,
 932              ShaderNonUniformEXT = ShaderNonUniform,
 933              RuntimeDescriptorArray = 5302,
 934              RuntimeDescriptorArrayEXT = RuntimeDescriptorArray,
 935              InputAttachmentArrayDynamicIndexing = 5303,
 936              InputAttachmentArrayDynamicIndexingEXT = InputAttachmentArrayDynamicIndexing,
 937              UniformTexelBufferArrayDynamicIndexing = 5304,
 938              UniformTexelBufferArrayDynamicIndexingEXT = UniformTexelBufferArrayDynamicIndexing,
 939              StorageTexelBufferArrayDynamicIndexing = 5305,
 940              StorageTexelBufferArrayDynamicIndexingEXT = StorageTexelBufferArrayDynamicIndexing,
 941              UniformBufferArrayNonUniformIndexing = 5306,
 942              UniformBufferArrayNonUniformIndexingEXT = UniformBufferArrayNonUniformIndexing,
 943              SampledImageArrayNonUniformIndexing = 5307,
 944              SampledImageArrayNonUniformIndexingEXT = SampledImageArrayNonUniformIndexing,
 945              StorageBufferArrayNonUniformIndexing = 5308,
 946              StorageBufferArrayNonUniformIndexingEXT = StorageBufferArrayNonUniformIndexing,
 947              StorageImageArrayNonUniformIndexing = 5309,
 948              StorageImageArrayNonUniformIndexingEXT = StorageImageArrayNonUniformIndexing,
 949              InputAttachmentArrayNonUniformIndexing = 5310,
 950              InputAttachmentArrayNonUniformIndexingEXT = InputAttachmentArrayNonUniformIndexing,
 951              UniformTexelBufferArrayNonUniformIndexing = 5311,
 952              UniformTexelBufferArrayNonUniformIndexingEXT = UniformTexelBufferArrayNonUniformIndexing,
 953              StorageTexelBufferArrayNonUniformIndexing = 5312,
 954              StorageTexelBufferArrayNonUniformIndexingEXT = StorageTexelBufferArrayNonUniformIndexing,
 955              RayTracingNV = 5340,
 956              VulkanMemoryModel = 5345,
 957              VulkanMemoryModelKHR = VulkanMemoryModel,
 958              VulkanMemoryModelDeviceScope = 5346,
 959              VulkanMemoryModelDeviceScopeKHR = VulkanMemoryModelDeviceScope,
 960              PhysicalStorageBufferAddresses = 5347,
 961              PhysicalStorageBufferAddressesEXT = PhysicalStorageBufferAddresses,
 962              ComputeDerivativeGroupLinearNV = 5350,
 963              RayTracingProvisionalKHR = 5353,
 964              CooperativeMatrixNV = 5357,
 965              FragmentShaderSampleInterlockEXT = 5363,
 966              FragmentShaderShadingRateInterlockEXT = 5372,
 967              ShaderSMBuiltinsNV = 5373,
 968              FragmentShaderPixelInterlockEXT = 5378,
 969              DemoteToHelperInvocationEXT = 5379,
 970              SubgroupShuffleINTEL = 5568,
 971              SubgroupBufferBlockIOINTEL = 5569,
 972              SubgroupImageBlockIOINTEL = 5570,
 973              SubgroupImageMediaBlockIOINTEL = 5579,
 974              IntegerFunctions2INTEL = 5584,
 975              FunctionPointersINTEL = 5603,
 976              IndirectReferencesINTEL = 5604,
 977              SubgroupAvcMotionEstimationINTEL = 5696,
 978              SubgroupAvcMotionEstimationIntraINTEL = 5697,
 979              SubgroupAvcMotionEstimationChromaINTEL = 5698,
 980              FPGAMemoryAttributesINTEL = 5824,
 981              UnstructuredLoopControlsINTEL = 5886,
 982              FPGALoopControlsINTEL = 5888,
 983              KernelAttributesINTEL = 5892,
 984              FPGAKernelAttributesINTEL = 5897,
 985              BlockingPipesINTEL = 5945,
 986              FPGARegINTEL = 5948,
 987              AtomicFloat32AddEXT = 6033,
 988              AtomicFloat64AddEXT = 6034,
 989          }
 990  
 991          public enum RayFlagsShift
 992          {
 993              OpaqueKHR = 0,
 994              NoOpaqueKHR = 1,
 995              TerminateOnFirstHitKHR = 2,
 996              SkipClosestHitShaderKHR = 3,
 997              CullBackFacingTrianglesKHR = 4,
 998              CullFrontFacingTrianglesKHR = 5,
 999              CullOpaqueKHR = 6,
1000              CullNoOpaqueKHR = 7,
1001              SkipTrianglesKHR = 8,
1002              SkipAABBsKHR = 9,
1003          }
1004  
1005          public enum RayFlagsMask
1006          {
1007              MaskNone = 0,
1008              OpaqueKHR = 0x00000001,
1009              NoOpaqueKHR = 0x00000002,
1010              TerminateOnFirstHitKHR = 0x00000004,
1011              SkipClosestHitShaderKHR = 0x00000008,
1012              CullBackFacingTrianglesKHR = 0x00000010,
1013              CullFrontFacingTrianglesKHR = 0x00000020,
1014              CullOpaqueKHR = 0x00000040,
1015              CullNoOpaqueKHR = 0x00000080,
1016              SkipTrianglesKHR = 0x00000100,
1017              SkipAABBsKHR = 0x00000200,
1018          }
1019  
1020          public enum RayQueryIntersection
1021          {
1022              RayQueryCandidateIntersectionKHR = 0,
1023              RayQueryCommittedIntersectionKHR = 1,
1024          }
1025  
1026          public enum RayQueryCommittedIntersectionType
1027          {
1028              RayQueryCommittedIntersectionNoneKHR = 0,
1029              RayQueryCommittedIntersectionTriangleKHR = 1,
1030              RayQueryCommittedIntersectionGeneratedKHR = 2,
1031          }
1032  
1033          public enum RayQueryCandidateIntersectionType
1034          {
1035              RayQueryCandidateIntersectionTriangleKHR = 0,
1036              RayQueryCandidateIntersectionAABBKHR = 1,
1037          }
1038  
1039          public enum FragmentShadingRateShift
1040          {
1041              Vertical2Pixels = 0,
1042              Vertical4Pixels = 1,
1043              Horizontal2Pixels = 2,
1044              Horizontal4Pixels = 3,
1045          }
1046  
1047          public enum FragmentShadingRateMask
1048          {
1049              MaskNone = 0,
1050              Vertical2Pixels = 0x00000001,
1051              Vertical4Pixels = 0x00000002,
1052              Horizontal2Pixels = 0x00000004,
1053              Horizontal4Pixels = 0x00000008,
1054          }
1055  
1056          public enum Op
1057          {
1058              OpNop = 0,
1059              OpUndef = 1,
1060              OpSourceContinued = 2,
1061              OpSource = 3,
1062              OpSourceExtension = 4,
1063              OpName = 5,
1064              OpMemberName = 6,
1065              OpString = 7,
1066              OpLine = 8,
1067              OpExtension = 10,
1068              OpExtInstImport = 11,
1069              OpExtInst = 12,
1070              OpMemoryModel = 14,
1071              OpEntryPoint = 15,
1072              OpExecutionMode = 16,
1073              OpCapability = 17,
1074              OpTypeVoid = 19,
1075              OpTypeBool = 20,
1076              OpTypeInt = 21,
1077              OpTypeFloat = 22,
1078              OpTypeVector = 23,
1079              OpTypeMatrix = 24,
1080              OpTypeImage = 25,
1081              OpTypeSampler = 26,
1082              OpTypeSampledImage = 27,
1083              OpTypeArray = 28,
1084              OpTypeRuntimeArray = 29,
1085              OpTypeStruct = 30,
1086              OpTypeOpaque = 31,
1087              OpTypePointer = 32,
1088              OpTypeFunction = 33,
1089              OpTypeEvent = 34,
1090              OpTypeDeviceEvent = 35,
1091              OpTypeReserveId = 36,
1092              OpTypeQueue = 37,
1093              OpTypePipe = 38,
1094              OpTypeForwardPointer = 39,
1095              OpConstantTrue = 41,
1096              OpConstantFalse = 42,
1097              OpConstant = 43,
1098              OpConstantComposite = 44,
1099              OpConstantSampler = 45,
1100              OpConstantNull = 46,
1101              OpSpecConstantTrue = 48,
1102              OpSpecConstantFalse = 49,
1103              OpSpecConstant = 50,
1104              OpSpecConstantComposite = 51,
1105              OpSpecConstantOp = 52,
1106              OpFunction = 54,
1107              OpFunctionParameter = 55,
1108              OpFunctionEnd = 56,
1109              OpFunctionCall = 57,
1110              OpVariable = 59,
1111              OpImageTexelPointer = 60,
1112              OpLoad = 61,
1113              OpStore = 62,
1114              OpCopyMemory = 63,
1115              OpCopyMemorySized = 64,
1116              OpAccessChain = 65,
1117              OpInBoundsAccessChain = 66,
1118              OpPtrAccessChain = 67,
1119              OpArrayLength = 68,
1120              OpGenericPtrMemSemantics = 69,
1121              OpInBoundsPtrAccessChain = 70,
1122              OpDecorate = 71,
1123              OpMemberDecorate = 72,
1124              OpDecorationGroup = 73,
1125              OpGroupDecorate = 74,
1126              OpGroupMemberDecorate = 75,
1127              OpVectorExtractDynamic = 77,
1128              OpVectorInsertDynamic = 78,
1129              OpVectorShuffle = 79,
1130              OpCompositeConstruct = 80,
1131              OpCompositeExtract = 81,
1132              OpCompositeInsert = 82,
1133              OpCopyObject = 83,
1134              OpTranspose = 84,
1135              OpSampledImage = 86,
1136              OpImageSampleImplicitLod = 87,
1137              OpImageSampleExplicitLod = 88,
1138              OpImageSampleDrefImplicitLod = 89,
1139              OpImageSampleDrefExplicitLod = 90,
1140              OpImageSampleProjImplicitLod = 91,
1141              OpImageSampleProjExplicitLod = 92,
1142              OpImageSampleProjDrefImplicitLod = 93,
1143              OpImageSampleProjDrefExplicitLod = 94,
1144              OpImageFetch = 95,
1145              OpImageGather = 96,
1146              OpImageDrefGather = 97,
1147              OpImageRead = 98,
1148              OpImageWrite = 99,
1149              OpImage = 100,
1150              OpImageQueryFormat = 101,
1151              OpImageQueryOrder = 102,
1152              OpImageQuerySizeLod = 103,
1153              OpImageQuerySize = 104,
1154              OpImageQueryLod = 105,
1155              OpImageQueryLevels = 106,
1156              OpImageQuerySamples = 107,
1157              OpConvertFToU = 109,
1158              OpConvertFToS = 110,
1159              OpConvertSToF = 111,
1160              OpConvertUToF = 112,
1161              OpUConvert = 113,
1162              OpSConvert = 114,
1163              OpFConvert = 115,
1164              OpQuantizeToF16 = 116,
1165              OpConvertPtrToU = 117,
1166              OpSatConvertSToU = 118,
1167              OpSatConvertUToS = 119,
1168              OpConvertUToPtr = 120,
1169              OpPtrCastToGeneric = 121,
1170              OpGenericCastToPtr = 122,
1171              OpGenericCastToPtrExplicit = 123,
1172              OpBitcast = 124,
1173              OpSNegate = 126,
1174              OpFNegate = 127,
1175              OpIAdd = 128,
1176              OpFAdd = 129,
1177              OpISub = 130,
1178              OpFSub = 131,
1179              OpIMul = 132,
1180              OpFMul = 133,
1181              OpUDiv = 134,
1182              OpSDiv = 135,
1183              OpFDiv = 136,
1184              OpUMod = 137,
1185              OpSRem = 138,
1186              OpSMod = 139,
1187              OpFRem = 140,
1188              OpFMod = 141,
1189              OpVectorTimesScalar = 142,
1190              OpMatrixTimesScalar = 143,
1191              OpVectorTimesMatrix = 144,
1192              OpMatrixTimesVector = 145,
1193              OpMatrixTimesMatrix = 146,
1194              OpOuterProduct = 147,
1195              OpDot = 148,
1196              OpIAddCarry = 149,
1197              OpISubBorrow = 150,
1198              OpUMulExtended = 151,
1199              OpSMulExtended = 152,
1200              OpAny = 154,
1201              OpAll = 155,
1202              OpIsNan = 156,
1203              OpIsInf = 157,
1204              OpIsFinite = 158,
1205              OpIsNormal = 159,
1206              OpSignBitSet = 160,
1207              OpLessOrGreater = 161,
1208              OpOrdered = 162,
1209              OpUnordered = 163,
1210              OpLogicalEqual = 164,
1211              OpLogicalNotEqual = 165,
1212              OpLogicalOr = 166,
1213              OpLogicalAnd = 167,
1214              OpLogicalNot = 168,
1215              OpSelect = 169,
1216              OpIEqual = 170,
1217              OpINotEqual = 171,
1218              OpUGreaterThan = 172,
1219              OpSGreaterThan = 173,
1220              OpUGreaterThanEqual = 174,
1221              OpSGreaterThanEqual = 175,
1222              OpULessThan = 176,
1223              OpSLessThan = 177,
1224              OpULessThanEqual = 178,
1225              OpSLessThanEqual = 179,
1226              OpFOrdEqual = 180,
1227              OpFUnordEqual = 181,
1228              OpFOrdNotEqual = 182,
1229              OpFUnordNotEqual = 183,
1230              OpFOrdLessThan = 184,
1231              OpFUnordLessThan = 185,
1232              OpFOrdGreaterThan = 186,
1233              OpFUnordGreaterThan = 187,
1234              OpFOrdLessThanEqual = 188,
1235              OpFUnordLessThanEqual = 189,
1236              OpFOrdGreaterThanEqual = 190,
1237              OpFUnordGreaterThanEqual = 191,
1238              OpShiftRightLogical = 194,
1239              OpShiftRightArithmetic = 195,
1240              OpShiftLeftLogical = 196,
1241              OpBitwiseOr = 197,
1242              OpBitwiseXor = 198,
1243              OpBitwiseAnd = 199,
1244              OpNot = 200,
1245              OpBitFieldInsert = 201,
1246              OpBitFieldSExtract = 202,
1247              OpBitFieldUExtract = 203,
1248              OpBitReverse = 204,
1249              OpBitCount = 205,
1250              OpDPdx = 207,
1251              OpDPdy = 208,
1252              OpFwidth = 209,
1253              OpDPdxFine = 210,
1254              OpDPdyFine = 211,
1255              OpFwidthFine = 212,
1256              OpDPdxCoarse = 213,
1257              OpDPdyCoarse = 214,
1258              OpFwidthCoarse = 215,
1259              OpEmitVertex = 218,
1260              OpEndPrimitive = 219,
1261              OpEmitStreamVertex = 220,
1262              OpEndStreamPrimitive = 221,
1263              OpControlBarrier = 224,
1264              OpMemoryBarrier = 225,
1265              OpAtomicLoad = 227,
1266              OpAtomicStore = 228,
1267              OpAtomicExchange = 229,
1268              OpAtomicCompareExchange = 230,
1269              OpAtomicCompareExchangeWeak = 231,
1270              OpAtomicIIncrement = 232,
1271              OpAtomicIDecrement = 233,
1272              OpAtomicIAdd = 234,
1273              OpAtomicISub = 235,
1274              OpAtomicSMin = 236,
1275              OpAtomicUMin = 237,
1276              OpAtomicSMax = 238,
1277              OpAtomicUMax = 239,
1278              OpAtomicAnd = 240,
1279              OpAtomicOr = 241,
1280              OpAtomicXor = 242,
1281              OpPhi = 245,
1282              OpLoopMerge = 246,
1283              OpSelectionMerge = 247,
1284              OpLabel = 248,
1285              OpBranch = 249,
1286              OpBranchConditional = 250,
1287              OpSwitch = 251,
1288              OpKill = 252,
1289              OpReturn = 253,
1290              OpReturnValue = 254,
1291              OpUnreachable = 255,
1292              OpLifetimeStart = 256,
1293              OpLifetimeStop = 257,
1294              OpGroupAsyncCopy = 259,
1295              OpGroupWaitEvents = 260,
1296              OpGroupAll = 261,
1297              OpGroupAny = 262,
1298              OpGroupBroadcast = 263,
1299              OpGroupIAdd = 264,
1300              OpGroupFAdd = 265,
1301              OpGroupFMin = 266,
1302              OpGroupUMin = 267,
1303              OpGroupSMin = 268,
1304              OpGroupFMax = 269,
1305              OpGroupUMax = 270,
1306              OpGroupSMax = 271,
1307              OpReadPipe = 274,
1308              OpWritePipe = 275,
1309              OpReservedReadPipe = 276,
1310              OpReservedWritePipe = 277,
1311              OpReserveReadPipePackets = 278,
1312              OpReserveWritePipePackets = 279,
1313              OpCommitReadPipe = 280,
1314              OpCommitWritePipe = 281,
1315              OpIsValidReserveId = 282,
1316              OpGetNumPipePackets = 283,
1317              OpGetMaxPipePackets = 284,
1318              OpGroupReserveReadPipePackets = 285,
1319              OpGroupReserveWritePipePackets = 286,
1320              OpGroupCommitReadPipe = 287,
1321              OpGroupCommitWritePipe = 288,
1322              OpEnqueueMarker = 291,
1323              OpEnqueueKernel = 292,
1324              OpGetKernelNDrangeSubGroupCount = 293,
1325              OpGetKernelNDrangeMaxSubGroupSize = 294,
1326              OpGetKernelWorkGroupSize = 295,
1327              OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1328              OpRetainEvent = 297,
1329              OpReleaseEvent = 298,
1330              OpCreateUserEvent = 299,
1331              OpIsValidEvent = 300,
1332              OpSetUserEventStatus = 301,
1333              OpCaptureEventProfilingInfo = 302,
1334              OpGetDefaultQueue = 303,
1335              OpBuildNDRange = 304,
1336              OpImageSparseSampleImplicitLod = 305,
1337              OpImageSparseSampleExplicitLod = 306,
1338              OpImageSparseSampleDrefImplicitLod = 307,
1339              OpImageSparseSampleDrefExplicitLod = 308,
1340              OpImageSparseSampleProjImplicitLod = 309,
1341              OpImageSparseSampleProjExplicitLod = 310,
1342              OpImageSparseSampleProjDrefImplicitLod = 311,
1343              OpImageSparseSampleProjDrefExplicitLod = 312,
1344              OpImageSparseFetch = 313,
1345              OpImageSparseGather = 314,
1346              OpImageSparseDrefGather = 315,
1347              OpImageSparseTexelsResident = 316,
1348              OpNoLine = 317,
1349              OpAtomicFlagTestAndSet = 318,
1350              OpAtomicFlagClear = 319,
1351              OpImageSparseRead = 320,
1352              OpSizeOf = 321,
1353              OpTypePipeStorage = 322,
1354              OpConstantPipeStorage = 323,
1355              OpCreatePipeFromPipeStorage = 324,
1356              OpGetKernelLocalSizeForSubgroupCount = 325,
1357              OpGetKernelMaxNumSubgroups = 326,
1358              OpTypeNamedBarrier = 327,
1359              OpNamedBarrierInitialize = 328,
1360              OpMemoryNamedBarrier = 329,
1361              OpModuleProcessed = 330,
1362              OpExecutionModeId = 331,
1363              OpDecorateId = 332,
1364              OpGroupNonUniformElect = 333,
1365              OpGroupNonUniformAll = 334,
1366              OpGroupNonUniformAny = 335,
1367              OpGroupNonUniformAllEqual = 336,
1368              OpGroupNonUniformBroadcast = 337,
1369              OpGroupNonUniformBroadcastFirst = 338,
1370              OpGroupNonUniformBallot = 339,
1371              OpGroupNonUniformInverseBallot = 340,
1372              OpGroupNonUniformBallotBitExtract = 341,
1373              OpGroupNonUniformBallotBitCount = 342,
1374              OpGroupNonUniformBallotFindLSB = 343,
1375              OpGroupNonUniformBallotFindMSB = 344,
1376              OpGroupNonUniformShuffle = 345,
1377              OpGroupNonUniformShuffleXor = 346,
1378              OpGroupNonUniformShuffleUp = 347,
1379              OpGroupNonUniformShuffleDown = 348,
1380              OpGroupNonUniformIAdd = 349,
1381              OpGroupNonUniformFAdd = 350,
1382              OpGroupNonUniformIMul = 351,
1383              OpGroupNonUniformFMul = 352,
1384              OpGroupNonUniformSMin = 353,
1385              OpGroupNonUniformUMin = 354,
1386              OpGroupNonUniformFMin = 355,
1387              OpGroupNonUniformSMax = 356,
1388              OpGroupNonUniformUMax = 357,
1389              OpGroupNonUniformFMax = 358,
1390              OpGroupNonUniformBitwiseAnd = 359,
1391              OpGroupNonUniformBitwiseOr = 360,
1392              OpGroupNonUniformBitwiseXor = 361,
1393              OpGroupNonUniformLogicalAnd = 362,
1394              OpGroupNonUniformLogicalOr = 363,
1395              OpGroupNonUniformLogicalXor = 364,
1396              OpGroupNonUniformQuadBroadcast = 365,
1397              OpGroupNonUniformQuadSwap = 366,
1398              OpCopyLogical = 400,
1399              OpPtrEqual = 401,
1400              OpPtrNotEqual = 402,
1401              OpPtrDiff = 403,
1402              OpTerminateInvocation = 4416,
1403              OpSubgroupBallotKHR = 4421,
1404              OpSubgroupFirstInvocationKHR = 4422,
1405              OpSubgroupAllKHR = 4428,
1406              OpSubgroupAnyKHR = 4429,
1407              OpSubgroupAllEqualKHR = 4430,
1408              OpSubgroupReadInvocationKHR = 4432,
1409              OpTraceRayKHR = 4445,
1410              OpExecuteCallableKHR = 4446,
1411              OpConvertUToAccelerationStructureKHR = 4447,
1412              OpIgnoreIntersectionKHR = 4448,
1413              OpTerminateRayKHR = 4449,
1414              OpTypeRayQueryKHR = 4472,
1415              OpRayQueryInitializeKHR = 4473,
1416              OpRayQueryTerminateKHR = 4474,
1417              OpRayQueryGenerateIntersectionKHR = 4475,
1418              OpRayQueryConfirmIntersectionKHR = 4476,
1419              OpRayQueryProceedKHR = 4477,
1420              OpRayQueryGetIntersectionTypeKHR = 4479,
1421              OpGroupIAddNonUniformAMD = 5000,
1422              OpGroupFAddNonUniformAMD = 5001,
1423              OpGroupFMinNonUniformAMD = 5002,
1424              OpGroupUMinNonUniformAMD = 5003,
1425              OpGroupSMinNonUniformAMD = 5004,
1426              OpGroupFMaxNonUniformAMD = 5005,
1427              OpGroupUMaxNonUniformAMD = 5006,
1428              OpGroupSMaxNonUniformAMD = 5007,
1429              OpFragmentMaskFetchAMD = 5011,
1430              OpFragmentFetchAMD = 5012,
1431              OpReadClockKHR = 5056,
1432              OpImageSampleFootprintNV = 5283,
1433              OpGroupNonUniformPartitionNV = 5296,
1434              OpWritePackedPrimitiveIndices4x8NV = 5299,
1435              OpReportIntersectionKHR = 5334,
1436              OpReportIntersectionNV = OpReportIntersectionKHR,
1437              OpIgnoreIntersectionNV = 5335,
1438              OpTerminateRayNV = 5336,
1439              OpTraceNV = 5337,
1440              OpTypeAccelerationStructureKHR = 5341,
1441              OpTypeAccelerationStructureNV = OpTypeAccelerationStructureKHR,
1442              OpExecuteCallableNV = 5344,
1443              OpTypeCooperativeMatrixNV = 5358,
1444              OpCooperativeMatrixLoadNV = 5359,
1445              OpCooperativeMatrixStoreNV = 5360,
1446              OpCooperativeMatrixMulAddNV = 5361,
1447              OpCooperativeMatrixLengthNV = 5362,
1448              OpBeginInvocationInterlockEXT = 5364,
1449              OpEndInvocationInterlockEXT = 5365,
1450              OpDemoteToHelperInvocationEXT = 5380,
1451              OpIsHelperInvocationEXT = 5381,
1452              OpSubgroupShuffleINTEL = 5571,
1453              OpSubgroupShuffleDownINTEL = 5572,
1454              OpSubgroupShuffleUpINTEL = 5573,
1455              OpSubgroupShuffleXorINTEL = 5574,
1456              OpSubgroupBlockReadINTEL = 5575,
1457              OpSubgroupBlockWriteINTEL = 5576,
1458              OpSubgroupImageBlockReadINTEL = 5577,
1459              OpSubgroupImageBlockWriteINTEL = 5578,
1460              OpSubgroupImageMediaBlockReadINTEL = 5580,
1461              OpSubgroupImageMediaBlockWriteINTEL = 5581,
1462              OpUCountLeadingZerosINTEL = 5585,
1463              OpUCountTrailingZerosINTEL = 5586,
1464              OpAbsISubINTEL = 5587,
1465              OpAbsUSubINTEL = 5588,
1466              OpIAddSatINTEL = 5589,
1467              OpUAddSatINTEL = 5590,
1468              OpIAverageINTEL = 5591,
1469              OpUAverageINTEL = 5592,
1470              OpIAverageRoundedINTEL = 5593,
1471              OpUAverageRoundedINTEL = 5594,
1472              OpISubSatINTEL = 5595,
1473              OpUSubSatINTEL = 5596,
1474              OpIMul32x16INTEL = 5597,
1475              OpUMul32x16INTEL = 5598,
1476              OpFunctionPointerINTEL = 5600,
1477              OpFunctionPointerCallINTEL = 5601,
1478              OpDecorateString = 5632,
1479              OpDecorateStringGOOGLE = OpDecorateString,
1480              OpMemberDecorateString = 5633,
1481              OpMemberDecorateStringGOOGLE = OpMemberDecorateString,
1482              OpVmeImageINTEL = 5699,
1483              OpTypeVmeImageINTEL = 5700,
1484              OpTypeAvcImePayloadINTEL = 5701,
1485              OpTypeAvcRefPayloadINTEL = 5702,
1486              OpTypeAvcSicPayloadINTEL = 5703,
1487              OpTypeAvcMcePayloadINTEL = 5704,
1488              OpTypeAvcMceResultINTEL = 5705,
1489              OpTypeAvcImeResultINTEL = 5706,
1490              OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1491              OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1492              OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1493              OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1494              OpTypeAvcRefResultINTEL = 5711,
1495              OpTypeAvcSicResultINTEL = 5712,
1496              OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1497              OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1498              OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1499              OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1500              OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1501              OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1502              OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1503              OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1504              OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1505              OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1506              OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1507              OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1508              OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1509              OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1510              OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1511              OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1512              OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1513              OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1514              OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1515              OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1516              OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1517              OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1518              OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1519              OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1520              OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1521              OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1522              OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1523              OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1524              OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1525              OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1526              OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1527              OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1528              OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1529              OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1530              OpSubgroupAvcImeInitializeINTEL = 5747,
1531              OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1532              OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1533              OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1534              OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1535              OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1536              OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1537              OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1538              OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1539              OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1540              OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1541              OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1542              OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1543              OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1544              OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1545              OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1546              OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1547              OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1548              OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1549              OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1550              OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1551              OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1552              OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1553              OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1554              OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1555              OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1556              OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1557              OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1558              OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1559              OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1560              OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1561              OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1562              OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1563              OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1564              OpSubgroupAvcFmeInitializeINTEL = 5781,
1565              OpSubgroupAvcBmeInitializeINTEL = 5782,
1566              OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1567              OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1568              OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1569              OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1570              OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1571              OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1572              OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1573              OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1574              OpSubgroupAvcSicInitializeINTEL = 5791,
1575              OpSubgroupAvcSicConfigureSkcINTEL = 5792,
1576              OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1577              OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1578              OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1579              OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1580              OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1581              OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1582              OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1583              OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1584              OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1585              OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1586              OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1587              OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1588              OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1589              OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1590              OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1591              OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1592              OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1593              OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1594              OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1595              OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1596              OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1597              OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1598              OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1599              OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1600              OpLoopControlINTEL = 5887,
1601              OpReadPipeBlockingINTEL = 5946,
1602              OpWritePipeBlockingINTEL = 5947,
1603              OpFPGARegINTEL = 5949,
1604              OpRayQueryGetRayTMinKHR = 6016,
1605              OpRayQueryGetRayFlagsKHR = 6017,
1606              OpRayQueryGetIntersectionTKHR = 6018,
1607              OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
1608              OpRayQueryGetIntersectionInstanceIdKHR = 6020,
1609              OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
1610              OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
1611              OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
1612              OpRayQueryGetIntersectionBarycentricsKHR = 6024,
1613              OpRayQueryGetIntersectionFrontFaceKHR = 6025,
1614              OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
1615              OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
1616              OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
1617              OpRayQueryGetWorldRayDirectionKHR = 6029,
1618              OpRayQueryGetWorldRayOriginKHR = 6030,
1619              OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
1620              OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
1621              OpAtomicFAddEXT = 6035,
1622          }
1623      }
1624  }