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