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