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