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