• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2014-2019 The Khronos Group Inc.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and/or associated documentation files (the "Materials"),
5 // to deal in the Materials without restriction, including without limitation
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 // and/or sell copies of the Materials, and to permit persons to whom the
8 // Materials are furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
12 //
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16 //
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23 // IN THE MATERIALS.
24 
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
27 
28 // Enumeration tokens for SPIR-V, in various styles:
29 //   C, C++, C++11, JSON, Lua, Python, C#, D
30 //
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace,
37 //     e.g.: Spv.Specification.SourceLanguage.GLSL
38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
39 //
40 // Some tokens act like mask values, which can be OR'd together,
41 // while others are mutually exclusive.  The mask-like ones have
42 // "Mask" in their name, and a parallel enum that has the shift
43 // amount (1 << x) for each corresponding enumerant.
44 
45 #ifndef spirv_HPP
46 #define spirv_HPP
47 
48 namespace spv {
49 
50 typedef unsigned int Id;
51 
52 #define SPV_VERSION 0x10300
53 #define SPV_REVISION 6
54 
55 static const unsigned int MagicNumber = 0x07230203;
56 static const unsigned int Version = 0x00010300;
57 static const unsigned int Revision = 6;
58 static const unsigned int OpCodeMask = 0xffff;
59 static const unsigned int WordCountShift = 16;
60 
61 enum SourceLanguage {
62     SourceLanguageUnknown = 0,
63     SourceLanguageESSL = 1,
64     SourceLanguageGLSL = 2,
65     SourceLanguageOpenCL_C = 3,
66     SourceLanguageOpenCL_CPP = 4,
67     SourceLanguageHLSL = 5,
68     SourceLanguageMax = 0x7fffffff,
69 };
70 
71 enum ExecutionModel {
72     ExecutionModelVertex = 0,
73     ExecutionModelTessellationControl = 1,
74     ExecutionModelTessellationEvaluation = 2,
75     ExecutionModelGeometry = 3,
76     ExecutionModelFragment = 4,
77     ExecutionModelGLCompute = 5,
78     ExecutionModelKernel = 6,
79     ExecutionModelTaskNV = 5267,
80     ExecutionModelMeshNV = 5268,
81     ExecutionModelRayGenerationNV = 5313,
82     ExecutionModelIntersectionNV = 5314,
83     ExecutionModelAnyHitNV = 5315,
84     ExecutionModelClosestHitNV = 5316,
85     ExecutionModelMissNV = 5317,
86     ExecutionModelCallableNV = 5318,
87     ExecutionModelMax = 0x7fffffff,
88 };
89 
90 enum AddressingModel {
91     AddressingModelLogical = 0,
92     AddressingModelPhysical32 = 1,
93     AddressingModelPhysical64 = 2,
94     AddressingModelPhysicalStorageBuffer64EXT = 5348,
95     AddressingModelMax = 0x7fffffff,
96 };
97 
98 enum MemoryModel {
99     MemoryModelSimple = 0,
100     MemoryModelGLSL450 = 1,
101     MemoryModelOpenCL = 2,
102     MemoryModelVulkanKHR = 3,
103     MemoryModelMax = 0x7fffffff,
104 };
105 
106 enum ExecutionMode {
107     ExecutionModeInvocations = 0,
108     ExecutionModeSpacingEqual = 1,
109     ExecutionModeSpacingFractionalEven = 2,
110     ExecutionModeSpacingFractionalOdd = 3,
111     ExecutionModeVertexOrderCw = 4,
112     ExecutionModeVertexOrderCcw = 5,
113     ExecutionModePixelCenterInteger = 6,
114     ExecutionModeOriginUpperLeft = 7,
115     ExecutionModeOriginLowerLeft = 8,
116     ExecutionModeEarlyFragmentTests = 9,
117     ExecutionModePointMode = 10,
118     ExecutionModeXfb = 11,
119     ExecutionModeDepthReplacing = 12,
120     ExecutionModeDepthGreater = 14,
121     ExecutionModeDepthLess = 15,
122     ExecutionModeDepthUnchanged = 16,
123     ExecutionModeLocalSize = 17,
124     ExecutionModeLocalSizeHint = 18,
125     ExecutionModeInputPoints = 19,
126     ExecutionModeInputLines = 20,
127     ExecutionModeInputLinesAdjacency = 21,
128     ExecutionModeTriangles = 22,
129     ExecutionModeInputTrianglesAdjacency = 23,
130     ExecutionModeQuads = 24,
131     ExecutionModeIsolines = 25,
132     ExecutionModeOutputVertices = 26,
133     ExecutionModeOutputPoints = 27,
134     ExecutionModeOutputLineStrip = 28,
135     ExecutionModeOutputTriangleStrip = 29,
136     ExecutionModeVecTypeHint = 30,
137     ExecutionModeContractionOff = 31,
138     ExecutionModeInitializer = 33,
139     ExecutionModeFinalizer = 34,
140     ExecutionModeSubgroupSize = 35,
141     ExecutionModeSubgroupsPerWorkgroup = 36,
142     ExecutionModeSubgroupsPerWorkgroupId = 37,
143     ExecutionModeLocalSizeId = 38,
144     ExecutionModeLocalSizeHintId = 39,
145     ExecutionModePostDepthCoverage = 4446,
146     ExecutionModeDenormPreserve = 4459,
147     ExecutionModeDenormFlushToZero = 4460,
148     ExecutionModeSignedZeroInfNanPreserve = 4461,
149     ExecutionModeRoundingModeRTE = 4462,
150     ExecutionModeRoundingModeRTZ = 4463,
151     ExecutionModeStencilRefReplacingEXT = 5027,
152     ExecutionModeOutputLinesNV = 5269,
153     ExecutionModeOutputPrimitivesNV = 5270,
154     ExecutionModeDerivativeGroupQuadsNV = 5289,
155     ExecutionModeDerivativeGroupLinearNV = 5290,
156     ExecutionModeOutputTrianglesNV = 5298,
157     ExecutionModeMax = 0x7fffffff,
158 };
159 
160 enum StorageClass {
161     StorageClassUniformConstant = 0,
162     StorageClassInput = 1,
163     StorageClassUniform = 2,
164     StorageClassOutput = 3,
165     StorageClassWorkgroup = 4,
166     StorageClassCrossWorkgroup = 5,
167     StorageClassPrivate = 6,
168     StorageClassFunction = 7,
169     StorageClassGeneric = 8,
170     StorageClassPushConstant = 9,
171     StorageClassAtomicCounter = 10,
172     StorageClassImage = 11,
173     StorageClassStorageBuffer = 12,
174     StorageClassCallableDataNV = 5328,
175     StorageClassIncomingCallableDataNV = 5329,
176     StorageClassRayPayloadNV = 5338,
177     StorageClassHitAttributeNV = 5339,
178     StorageClassIncomingRayPayloadNV = 5342,
179     StorageClassShaderRecordBufferNV = 5343,
180     StorageClassPhysicalStorageBufferEXT = 5349,
181     StorageClassMax = 0x7fffffff,
182 };
183 
184 enum Dim {
185     Dim1D = 0,
186     Dim2D = 1,
187     Dim3D = 2,
188     DimCube = 3,
189     DimRect = 4,
190     DimBuffer = 5,
191     DimSubpassData = 6,
192     DimMax = 0x7fffffff,
193 };
194 
195 enum SamplerAddressingMode {
196     SamplerAddressingModeNone = 0,
197     SamplerAddressingModeClampToEdge = 1,
198     SamplerAddressingModeClamp = 2,
199     SamplerAddressingModeRepeat = 3,
200     SamplerAddressingModeRepeatMirrored = 4,
201     SamplerAddressingModeMax = 0x7fffffff,
202 };
203 
204 enum SamplerFilterMode {
205     SamplerFilterModeNearest = 0,
206     SamplerFilterModeLinear = 1,
207     SamplerFilterModeMax = 0x7fffffff,
208 };
209 
210 enum ImageFormat {
211     ImageFormatUnknown = 0,
212     ImageFormatRgba32f = 1,
213     ImageFormatRgba16f = 2,
214     ImageFormatR32f = 3,
215     ImageFormatRgba8 = 4,
216     ImageFormatRgba8Snorm = 5,
217     ImageFormatRg32f = 6,
218     ImageFormatRg16f = 7,
219     ImageFormatR11fG11fB10f = 8,
220     ImageFormatR16f = 9,
221     ImageFormatRgba16 = 10,
222     ImageFormatRgb10A2 = 11,
223     ImageFormatRg16 = 12,
224     ImageFormatRg8 = 13,
225     ImageFormatR16 = 14,
226     ImageFormatR8 = 15,
227     ImageFormatRgba16Snorm = 16,
228     ImageFormatRg16Snorm = 17,
229     ImageFormatRg8Snorm = 18,
230     ImageFormatR16Snorm = 19,
231     ImageFormatR8Snorm = 20,
232     ImageFormatRgba32i = 21,
233     ImageFormatRgba16i = 22,
234     ImageFormatRgba8i = 23,
235     ImageFormatR32i = 24,
236     ImageFormatRg32i = 25,
237     ImageFormatRg16i = 26,
238     ImageFormatRg8i = 27,
239     ImageFormatR16i = 28,
240     ImageFormatR8i = 29,
241     ImageFormatRgba32ui = 30,
242     ImageFormatRgba16ui = 31,
243     ImageFormatRgba8ui = 32,
244     ImageFormatR32ui = 33,
245     ImageFormatRgb10a2ui = 34,
246     ImageFormatRg32ui = 35,
247     ImageFormatRg16ui = 36,
248     ImageFormatRg8ui = 37,
249     ImageFormatR16ui = 38,
250     ImageFormatR8ui = 39,
251     ImageFormatMax = 0x7fffffff,
252 };
253 
254 enum ImageChannelOrder {
255     ImageChannelOrderR = 0,
256     ImageChannelOrderA = 1,
257     ImageChannelOrderRG = 2,
258     ImageChannelOrderRA = 3,
259     ImageChannelOrderRGB = 4,
260     ImageChannelOrderRGBA = 5,
261     ImageChannelOrderBGRA = 6,
262     ImageChannelOrderARGB = 7,
263     ImageChannelOrderIntensity = 8,
264     ImageChannelOrderLuminance = 9,
265     ImageChannelOrderRx = 10,
266     ImageChannelOrderRGx = 11,
267     ImageChannelOrderRGBx = 12,
268     ImageChannelOrderDepth = 13,
269     ImageChannelOrderDepthStencil = 14,
270     ImageChannelOrdersRGB = 15,
271     ImageChannelOrdersRGBx = 16,
272     ImageChannelOrdersRGBA = 17,
273     ImageChannelOrdersBGRA = 18,
274     ImageChannelOrderABGR = 19,
275     ImageChannelOrderMax = 0x7fffffff,
276 };
277 
278 enum ImageChannelDataType {
279     ImageChannelDataTypeSnormInt8 = 0,
280     ImageChannelDataTypeSnormInt16 = 1,
281     ImageChannelDataTypeUnormInt8 = 2,
282     ImageChannelDataTypeUnormInt16 = 3,
283     ImageChannelDataTypeUnormShort565 = 4,
284     ImageChannelDataTypeUnormShort555 = 5,
285     ImageChannelDataTypeUnormInt101010 = 6,
286     ImageChannelDataTypeSignedInt8 = 7,
287     ImageChannelDataTypeSignedInt16 = 8,
288     ImageChannelDataTypeSignedInt32 = 9,
289     ImageChannelDataTypeUnsignedInt8 = 10,
290     ImageChannelDataTypeUnsignedInt16 = 11,
291     ImageChannelDataTypeUnsignedInt32 = 12,
292     ImageChannelDataTypeHalfFloat = 13,
293     ImageChannelDataTypeFloat = 14,
294     ImageChannelDataTypeUnormInt24 = 15,
295     ImageChannelDataTypeUnormInt101010_2 = 16,
296     ImageChannelDataTypeMax = 0x7fffffff,
297 };
298 
299 enum ImageOperandsShift {
300     ImageOperandsBiasShift = 0,
301     ImageOperandsLodShift = 1,
302     ImageOperandsGradShift = 2,
303     ImageOperandsConstOffsetShift = 3,
304     ImageOperandsOffsetShift = 4,
305     ImageOperandsConstOffsetsShift = 5,
306     ImageOperandsSampleShift = 6,
307     ImageOperandsMinLodShift = 7,
308     ImageOperandsMakeTexelAvailableKHRShift = 8,
309     ImageOperandsMakeTexelVisibleKHRShift = 9,
310     ImageOperandsNonPrivateTexelKHRShift = 10,
311     ImageOperandsVolatileTexelKHRShift = 11,
312     ImageOperandsMax = 0x7fffffff,
313 };
314 
315 enum ImageOperandsMask {
316     ImageOperandsMaskNone = 0,
317     ImageOperandsBiasMask = 0x00000001,
318     ImageOperandsLodMask = 0x00000002,
319     ImageOperandsGradMask = 0x00000004,
320     ImageOperandsConstOffsetMask = 0x00000008,
321     ImageOperandsOffsetMask = 0x00000010,
322     ImageOperandsConstOffsetsMask = 0x00000020,
323     ImageOperandsSampleMask = 0x00000040,
324     ImageOperandsMinLodMask = 0x00000080,
325     ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
326     ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
327     ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
328     ImageOperandsVolatileTexelKHRMask = 0x00000800,
329 };
330 
331 enum FPFastMathModeShift {
332     FPFastMathModeNotNaNShift = 0,
333     FPFastMathModeNotInfShift = 1,
334     FPFastMathModeNSZShift = 2,
335     FPFastMathModeAllowRecipShift = 3,
336     FPFastMathModeFastShift = 4,
337     FPFastMathModeMax = 0x7fffffff,
338 };
339 
340 enum FPFastMathModeMask {
341     FPFastMathModeMaskNone = 0,
342     FPFastMathModeNotNaNMask = 0x00000001,
343     FPFastMathModeNotInfMask = 0x00000002,
344     FPFastMathModeNSZMask = 0x00000004,
345     FPFastMathModeAllowRecipMask = 0x00000008,
346     FPFastMathModeFastMask = 0x00000010,
347 };
348 
349 enum FPRoundingMode {
350     FPRoundingModeRTE = 0,
351     FPRoundingModeRTZ = 1,
352     FPRoundingModeRTP = 2,
353     FPRoundingModeRTN = 3,
354     FPRoundingModeMax = 0x7fffffff,
355 };
356 
357 enum LinkageType {
358     LinkageTypeExport = 0,
359     LinkageTypeImport = 1,
360     LinkageTypeMax = 0x7fffffff,
361 };
362 
363 enum AccessQualifier {
364     AccessQualifierReadOnly = 0,
365     AccessQualifierWriteOnly = 1,
366     AccessQualifierReadWrite = 2,
367     AccessQualifierMax = 0x7fffffff,
368 };
369 
370 enum FunctionParameterAttribute {
371     FunctionParameterAttributeZext = 0,
372     FunctionParameterAttributeSext = 1,
373     FunctionParameterAttributeByVal = 2,
374     FunctionParameterAttributeSret = 3,
375     FunctionParameterAttributeNoAlias = 4,
376     FunctionParameterAttributeNoCapture = 5,
377     FunctionParameterAttributeNoWrite = 6,
378     FunctionParameterAttributeNoReadWrite = 7,
379     FunctionParameterAttributeMax = 0x7fffffff,
380 };
381 
382 enum Decoration {
383     DecorationRelaxedPrecision = 0,
384     DecorationSpecId = 1,
385     DecorationBlock = 2,
386     DecorationBufferBlock = 3,
387     DecorationRowMajor = 4,
388     DecorationColMajor = 5,
389     DecorationArrayStride = 6,
390     DecorationMatrixStride = 7,
391     DecorationGLSLShared = 8,
392     DecorationGLSLPacked = 9,
393     DecorationCPacked = 10,
394     DecorationBuiltIn = 11,
395     DecorationNoPerspective = 13,
396     DecorationFlat = 14,
397     DecorationPatch = 15,
398     DecorationCentroid = 16,
399     DecorationSample = 17,
400     DecorationInvariant = 18,
401     DecorationRestrict = 19,
402     DecorationAliased = 20,
403     DecorationVolatile = 21,
404     DecorationConstant = 22,
405     DecorationCoherent = 23,
406     DecorationNonWritable = 24,
407     DecorationNonReadable = 25,
408     DecorationUniform = 26,
409     DecorationSaturatedConversion = 28,
410     DecorationStream = 29,
411     DecorationLocation = 30,
412     DecorationComponent = 31,
413     DecorationIndex = 32,
414     DecorationBinding = 33,
415     DecorationDescriptorSet = 34,
416     DecorationOffset = 35,
417     DecorationXfbBuffer = 36,
418     DecorationXfbStride = 37,
419     DecorationFuncParamAttr = 38,
420     DecorationFPRoundingMode = 39,
421     DecorationFPFastMathMode = 40,
422     DecorationLinkageAttributes = 41,
423     DecorationNoContraction = 42,
424     DecorationInputAttachmentIndex = 43,
425     DecorationAlignment = 44,
426     DecorationMaxByteOffset = 45,
427     DecorationAlignmentId = 46,
428     DecorationMaxByteOffsetId = 47,
429     DecorationNoSignedWrap = 4469,
430     DecorationNoUnsignedWrap = 4470,
431     DecorationExplicitInterpAMD = 4999,
432     DecorationOverrideCoverageNV = 5248,
433     DecorationPassthroughNV = 5250,
434     DecorationViewportRelativeNV = 5252,
435     DecorationSecondaryViewportRelativeNV = 5256,
436     DecorationPerPrimitiveNV = 5271,
437     DecorationPerViewNV = 5272,
438     DecorationPerTaskNV = 5273,
439     DecorationPerVertexNV = 5285,
440     DecorationNonUniformEXT = 5300,
441     DecorationRestrictPointerEXT = 5355,
442     DecorationAliasedPointerEXT = 5356,
443     DecorationHlslCounterBufferGOOGLE = 5634,
444     DecorationHlslSemanticGOOGLE = 5635,
445     DecorationMax = 0x7fffffff,
446 };
447 
448 enum BuiltIn {
449     BuiltInPosition = 0,
450     BuiltInPointSize = 1,
451     BuiltInClipDistance = 3,
452     BuiltInCullDistance = 4,
453     BuiltInVertexId = 5,
454     BuiltInInstanceId = 6,
455     BuiltInPrimitiveId = 7,
456     BuiltInInvocationId = 8,
457     BuiltInLayer = 9,
458     BuiltInViewportIndex = 10,
459     BuiltInTessLevelOuter = 11,
460     BuiltInTessLevelInner = 12,
461     BuiltInTessCoord = 13,
462     BuiltInPatchVertices = 14,
463     BuiltInFragCoord = 15,
464     BuiltInPointCoord = 16,
465     BuiltInFrontFacing = 17,
466     BuiltInSampleId = 18,
467     BuiltInSamplePosition = 19,
468     BuiltInSampleMask = 20,
469     BuiltInFragDepth = 22,
470     BuiltInHelperInvocation = 23,
471     BuiltInNumWorkgroups = 24,
472     BuiltInWorkgroupSize = 25,
473     BuiltInWorkgroupId = 26,
474     BuiltInLocalInvocationId = 27,
475     BuiltInGlobalInvocationId = 28,
476     BuiltInLocalInvocationIndex = 29,
477     BuiltInWorkDim = 30,
478     BuiltInGlobalSize = 31,
479     BuiltInEnqueuedWorkgroupSize = 32,
480     BuiltInGlobalOffset = 33,
481     BuiltInGlobalLinearId = 34,
482     BuiltInSubgroupSize = 36,
483     BuiltInSubgroupMaxSize = 37,
484     BuiltInNumSubgroups = 38,
485     BuiltInNumEnqueuedSubgroups = 39,
486     BuiltInSubgroupId = 40,
487     BuiltInSubgroupLocalInvocationId = 41,
488     BuiltInVertexIndex = 42,
489     BuiltInInstanceIndex = 43,
490     BuiltInSubgroupEqMask = 4416,
491     BuiltInSubgroupEqMaskKHR = 4416,
492     BuiltInSubgroupGeMask = 4417,
493     BuiltInSubgroupGeMaskKHR = 4417,
494     BuiltInSubgroupGtMask = 4418,
495     BuiltInSubgroupGtMaskKHR = 4418,
496     BuiltInSubgroupLeMask = 4419,
497     BuiltInSubgroupLeMaskKHR = 4419,
498     BuiltInSubgroupLtMask = 4420,
499     BuiltInSubgroupLtMaskKHR = 4420,
500     BuiltInBaseVertex = 4424,
501     BuiltInBaseInstance = 4425,
502     BuiltInDrawIndex = 4426,
503     BuiltInDeviceIndex = 4438,
504     BuiltInViewIndex = 4440,
505     BuiltInBaryCoordNoPerspAMD = 4992,
506     BuiltInBaryCoordNoPerspCentroidAMD = 4993,
507     BuiltInBaryCoordNoPerspSampleAMD = 4994,
508     BuiltInBaryCoordSmoothAMD = 4995,
509     BuiltInBaryCoordSmoothCentroidAMD = 4996,
510     BuiltInBaryCoordSmoothSampleAMD = 4997,
511     BuiltInBaryCoordPullModelAMD = 4998,
512     BuiltInFragStencilRefEXT = 5014,
513     BuiltInViewportMaskNV = 5253,
514     BuiltInSecondaryPositionNV = 5257,
515     BuiltInSecondaryViewportMaskNV = 5258,
516     BuiltInPositionPerViewNV = 5261,
517     BuiltInViewportMaskPerViewNV = 5262,
518     BuiltInFullyCoveredEXT = 5264,
519     BuiltInTaskCountNV = 5274,
520     BuiltInPrimitiveCountNV = 5275,
521     BuiltInPrimitiveIndicesNV = 5276,
522     BuiltInClipDistancePerViewNV = 5277,
523     BuiltInCullDistancePerViewNV = 5278,
524     BuiltInLayerPerViewNV = 5279,
525     BuiltInMeshViewCountNV = 5280,
526     BuiltInMeshViewIndicesNV = 5281,
527     BuiltInBaryCoordNV = 5286,
528     BuiltInBaryCoordNoPerspNV = 5287,
529     BuiltInFragSizeEXT = 5292,
530     BuiltInFragmentSizeNV = 5292,
531     BuiltInFragInvocationCountEXT = 5293,
532     BuiltInInvocationsPerPixelNV = 5293,
533     BuiltInLaunchIdNV = 5319,
534     BuiltInLaunchSizeNV = 5320,
535     BuiltInWorldRayOriginNV = 5321,
536     BuiltInWorldRayDirectionNV = 5322,
537     BuiltInObjectRayOriginNV = 5323,
538     BuiltInObjectRayDirectionNV = 5324,
539     BuiltInRayTminNV = 5325,
540     BuiltInRayTmaxNV = 5326,
541     BuiltInInstanceCustomIndexNV = 5327,
542     BuiltInObjectToWorldNV = 5330,
543     BuiltInWorldToObjectNV = 5331,
544     BuiltInHitTNV = 5332,
545     BuiltInHitKindNV = 5333,
546     BuiltInIncomingRayFlagsNV = 5351,
547     BuiltInMax = 0x7fffffff,
548 };
549 
550 enum SelectionControlShift {
551     SelectionControlFlattenShift = 0,
552     SelectionControlDontFlattenShift = 1,
553     SelectionControlMax = 0x7fffffff,
554 };
555 
556 enum SelectionControlMask {
557     SelectionControlMaskNone = 0,
558     SelectionControlFlattenMask = 0x00000001,
559     SelectionControlDontFlattenMask = 0x00000002,
560 };
561 
562 enum LoopControlShift {
563     LoopControlUnrollShift = 0,
564     LoopControlDontUnrollShift = 1,
565     LoopControlDependencyInfiniteShift = 2,
566     LoopControlDependencyLengthShift = 3,
567     LoopControlMax = 0x7fffffff,
568 };
569 
570 enum LoopControlMask {
571     LoopControlMaskNone = 0,
572     LoopControlUnrollMask = 0x00000001,
573     LoopControlDontUnrollMask = 0x00000002,
574     LoopControlDependencyInfiniteMask = 0x00000004,
575     LoopControlDependencyLengthMask = 0x00000008,
576 };
577 
578 enum FunctionControlShift {
579     FunctionControlInlineShift = 0,
580     FunctionControlDontInlineShift = 1,
581     FunctionControlPureShift = 2,
582     FunctionControlConstShift = 3,
583     FunctionControlMax = 0x7fffffff,
584 };
585 
586 enum FunctionControlMask {
587     FunctionControlMaskNone = 0,
588     FunctionControlInlineMask = 0x00000001,
589     FunctionControlDontInlineMask = 0x00000002,
590     FunctionControlPureMask = 0x00000004,
591     FunctionControlConstMask = 0x00000008,
592 };
593 
594 enum MemorySemanticsShift {
595     MemorySemanticsAcquireShift = 1,
596     MemorySemanticsReleaseShift = 2,
597     MemorySemanticsAcquireReleaseShift = 3,
598     MemorySemanticsSequentiallyConsistentShift = 4,
599     MemorySemanticsUniformMemoryShift = 6,
600     MemorySemanticsSubgroupMemoryShift = 7,
601     MemorySemanticsWorkgroupMemoryShift = 8,
602     MemorySemanticsCrossWorkgroupMemoryShift = 9,
603     MemorySemanticsAtomicCounterMemoryShift = 10,
604     MemorySemanticsImageMemoryShift = 11,
605     MemorySemanticsOutputMemoryKHRShift = 12,
606     MemorySemanticsMakeAvailableKHRShift = 13,
607     MemorySemanticsMakeVisibleKHRShift = 14,
608     MemorySemanticsMax = 0x7fffffff,
609 };
610 
611 enum MemorySemanticsMask {
612     MemorySemanticsMaskNone = 0,
613     MemorySemanticsAcquireMask = 0x00000002,
614     MemorySemanticsReleaseMask = 0x00000004,
615     MemorySemanticsAcquireReleaseMask = 0x00000008,
616     MemorySemanticsSequentiallyConsistentMask = 0x00000010,
617     MemorySemanticsUniformMemoryMask = 0x00000040,
618     MemorySemanticsSubgroupMemoryMask = 0x00000080,
619     MemorySemanticsWorkgroupMemoryMask = 0x00000100,
620     MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
621     MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
622     MemorySemanticsImageMemoryMask = 0x00000800,
623     MemorySemanticsOutputMemoryKHRMask = 0x00001000,
624     MemorySemanticsMakeAvailableKHRMask = 0x00002000,
625     MemorySemanticsMakeVisibleKHRMask = 0x00004000,
626 };
627 
628 enum MemoryAccessShift {
629     MemoryAccessVolatileShift = 0,
630     MemoryAccessAlignedShift = 1,
631     MemoryAccessNontemporalShift = 2,
632     MemoryAccessMakePointerAvailableKHRShift = 3,
633     MemoryAccessMakePointerVisibleKHRShift = 4,
634     MemoryAccessNonPrivatePointerKHRShift = 5,
635     MemoryAccessMax = 0x7fffffff,
636 };
637 
638 enum MemoryAccessMask {
639     MemoryAccessMaskNone = 0,
640     MemoryAccessVolatileMask = 0x00000001,
641     MemoryAccessAlignedMask = 0x00000002,
642     MemoryAccessNontemporalMask = 0x00000004,
643     MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
644     MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
645     MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
646 };
647 
648 enum Scope {
649     ScopeCrossDevice = 0,
650     ScopeDevice = 1,
651     ScopeWorkgroup = 2,
652     ScopeSubgroup = 3,
653     ScopeInvocation = 4,
654     ScopeQueueFamilyKHR = 5,
655     ScopeMax = 0x7fffffff,
656 };
657 
658 enum GroupOperation {
659     GroupOperationReduce = 0,
660     GroupOperationInclusiveScan = 1,
661     GroupOperationExclusiveScan = 2,
662     GroupOperationClusteredReduce = 3,
663     GroupOperationPartitionedReduceNV = 6,
664     GroupOperationPartitionedInclusiveScanNV = 7,
665     GroupOperationPartitionedExclusiveScanNV = 8,
666     GroupOperationMax = 0x7fffffff,
667 };
668 
669 enum KernelEnqueueFlags {
670     KernelEnqueueFlagsNoWait = 0,
671     KernelEnqueueFlagsWaitKernel = 1,
672     KernelEnqueueFlagsWaitWorkGroup = 2,
673     KernelEnqueueFlagsMax = 0x7fffffff,
674 };
675 
676 enum KernelProfilingInfoShift {
677     KernelProfilingInfoCmdExecTimeShift = 0,
678     KernelProfilingInfoMax = 0x7fffffff,
679 };
680 
681 enum KernelProfilingInfoMask {
682     KernelProfilingInfoMaskNone = 0,
683     KernelProfilingInfoCmdExecTimeMask = 0x00000001,
684 };
685 
686 enum Capability {
687     CapabilityMatrix = 0,
688     CapabilityShader = 1,
689     CapabilityGeometry = 2,
690     CapabilityTessellation = 3,
691     CapabilityAddresses = 4,
692     CapabilityLinkage = 5,
693     CapabilityKernel = 6,
694     CapabilityVector16 = 7,
695     CapabilityFloat16Buffer = 8,
696     CapabilityFloat16 = 9,
697     CapabilityFloat64 = 10,
698     CapabilityInt64 = 11,
699     CapabilityInt64Atomics = 12,
700     CapabilityImageBasic = 13,
701     CapabilityImageReadWrite = 14,
702     CapabilityImageMipmap = 15,
703     CapabilityPipes = 17,
704     CapabilityGroups = 18,
705     CapabilityDeviceEnqueue = 19,
706     CapabilityLiteralSampler = 20,
707     CapabilityAtomicStorage = 21,
708     CapabilityInt16 = 22,
709     CapabilityTessellationPointSize = 23,
710     CapabilityGeometryPointSize = 24,
711     CapabilityImageGatherExtended = 25,
712     CapabilityStorageImageMultisample = 27,
713     CapabilityUniformBufferArrayDynamicIndexing = 28,
714     CapabilitySampledImageArrayDynamicIndexing = 29,
715     CapabilityStorageBufferArrayDynamicIndexing = 30,
716     CapabilityStorageImageArrayDynamicIndexing = 31,
717     CapabilityClipDistance = 32,
718     CapabilityCullDistance = 33,
719     CapabilityImageCubeArray = 34,
720     CapabilitySampleRateShading = 35,
721     CapabilityImageRect = 36,
722     CapabilitySampledRect = 37,
723     CapabilityGenericPointer = 38,
724     CapabilityInt8 = 39,
725     CapabilityInputAttachment = 40,
726     CapabilitySparseResidency = 41,
727     CapabilityMinLod = 42,
728     CapabilitySampled1D = 43,
729     CapabilityImage1D = 44,
730     CapabilitySampledCubeArray = 45,
731     CapabilitySampledBuffer = 46,
732     CapabilityImageBuffer = 47,
733     CapabilityImageMSArray = 48,
734     CapabilityStorageImageExtendedFormats = 49,
735     CapabilityImageQuery = 50,
736     CapabilityDerivativeControl = 51,
737     CapabilityInterpolationFunction = 52,
738     CapabilityTransformFeedback = 53,
739     CapabilityGeometryStreams = 54,
740     CapabilityStorageImageReadWithoutFormat = 55,
741     CapabilityStorageImageWriteWithoutFormat = 56,
742     CapabilityMultiViewport = 57,
743     CapabilitySubgroupDispatch = 58,
744     CapabilityNamedBarrier = 59,
745     CapabilityPipeStorage = 60,
746     CapabilityGroupNonUniform = 61,
747     CapabilityGroupNonUniformVote = 62,
748     CapabilityGroupNonUniformArithmetic = 63,
749     CapabilityGroupNonUniformBallot = 64,
750     CapabilityGroupNonUniformShuffle = 65,
751     CapabilityGroupNonUniformShuffleRelative = 66,
752     CapabilityGroupNonUniformClustered = 67,
753     CapabilityGroupNonUniformQuad = 68,
754     CapabilitySubgroupBallotKHR = 4423,
755     CapabilityDrawParameters = 4427,
756     CapabilitySubgroupVoteKHR = 4431,
757     CapabilityStorageBuffer16BitAccess = 4433,
758     CapabilityStorageUniformBufferBlock16 = 4433,
759     CapabilityStorageUniform16 = 4434,
760     CapabilityUniformAndStorageBuffer16BitAccess = 4434,
761     CapabilityStoragePushConstant16 = 4435,
762     CapabilityStorageInputOutput16 = 4436,
763     CapabilityDeviceGroup = 4437,
764     CapabilityMultiView = 4439,
765     CapabilityVariablePointersStorageBuffer = 4441,
766     CapabilityVariablePointers = 4442,
767     CapabilityAtomicStorageOps = 4445,
768     CapabilitySampleMaskPostDepthCoverage = 4447,
769     CapabilityStorageBuffer8BitAccess = 4448,
770     CapabilityUniformAndStorageBuffer8BitAccess = 4449,
771     CapabilityStoragePushConstant8 = 4450,
772     CapabilityDenormPreserve = 4464,
773     CapabilityDenormFlushToZero = 4465,
774     CapabilitySignedZeroInfNanPreserve = 4466,
775     CapabilityRoundingModeRTE = 4467,
776     CapabilityRoundingModeRTZ = 4468,
777     CapabilityFloat16ImageAMD = 5008,
778     CapabilityImageGatherBiasLodAMD = 5009,
779     CapabilityFragmentMaskAMD = 5010,
780     CapabilityStencilExportEXT = 5013,
781     CapabilityImageReadWriteLodAMD = 5015,
782     CapabilitySampleMaskOverrideCoverageNV = 5249,
783     CapabilityGeometryShaderPassthroughNV = 5251,
784     CapabilityShaderViewportIndexLayerEXT = 5254,
785     CapabilityShaderViewportIndexLayerNV = 5254,
786     CapabilityShaderViewportMaskNV = 5255,
787     CapabilityShaderStereoViewNV = 5259,
788     CapabilityPerViewAttributesNV = 5260,
789     CapabilityFragmentFullyCoveredEXT = 5265,
790     CapabilityMeshShadingNV = 5266,
791     CapabilityImageFootprintNV = 5282,
792     CapabilityFragmentBarycentricNV = 5284,
793     CapabilityComputeDerivativeGroupQuadsNV = 5288,
794     CapabilityFragmentDensityEXT = 5291,
795     CapabilityShadingRateNV = 5291,
796     CapabilityGroupNonUniformPartitionedNV = 5297,
797     CapabilityShaderNonUniformEXT = 5301,
798     CapabilityRuntimeDescriptorArrayEXT = 5302,
799     CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
800     CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
801     CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
802     CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
803     CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
804     CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
805     CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
806     CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
807     CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
808     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
809     CapabilityRayTracingNV = 5340,
810     CapabilityVulkanMemoryModelKHR = 5345,
811     CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
812     CapabilityPhysicalStorageBufferAddressesEXT = 5347,
813     CapabilityComputeDerivativeGroupLinearNV = 5350,
814     CapabilitySubgroupShuffleINTEL = 5568,
815     CapabilitySubgroupBufferBlockIOINTEL = 5569,
816     CapabilitySubgroupImageBlockIOINTEL = 5570,
817     CapabilityMax = 0x7fffffff,
818 };
819 
820 enum Op {
821     OpNop = 0,
822     OpUndef = 1,
823     OpSourceContinued = 2,
824     OpSource = 3,
825     OpSourceExtension = 4,
826     OpName = 5,
827     OpMemberName = 6,
828     OpString = 7,
829     OpLine = 8,
830     OpExtension = 10,
831     OpExtInstImport = 11,
832     OpExtInst = 12,
833     OpMemoryModel = 14,
834     OpEntryPoint = 15,
835     OpExecutionMode = 16,
836     OpCapability = 17,
837     OpTypeVoid = 19,
838     OpTypeBool = 20,
839     OpTypeInt = 21,
840     OpTypeFloat = 22,
841     OpTypeVector = 23,
842     OpTypeMatrix = 24,
843     OpTypeImage = 25,
844     OpTypeSampler = 26,
845     OpTypeSampledImage = 27,
846     OpTypeArray = 28,
847     OpTypeRuntimeArray = 29,
848     OpTypeStruct = 30,
849     OpTypeOpaque = 31,
850     OpTypePointer = 32,
851     OpTypeFunction = 33,
852     OpTypeEvent = 34,
853     OpTypeDeviceEvent = 35,
854     OpTypeReserveId = 36,
855     OpTypeQueue = 37,
856     OpTypePipe = 38,
857     OpTypeForwardPointer = 39,
858     OpConstantTrue = 41,
859     OpConstantFalse = 42,
860     OpConstant = 43,
861     OpConstantComposite = 44,
862     OpConstantSampler = 45,
863     OpConstantNull = 46,
864     OpSpecConstantTrue = 48,
865     OpSpecConstantFalse = 49,
866     OpSpecConstant = 50,
867     OpSpecConstantComposite = 51,
868     OpSpecConstantOp = 52,
869     OpFunction = 54,
870     OpFunctionParameter = 55,
871     OpFunctionEnd = 56,
872     OpFunctionCall = 57,
873     OpVariable = 59,
874     OpImageTexelPointer = 60,
875     OpLoad = 61,
876     OpStore = 62,
877     OpCopyMemory = 63,
878     OpCopyMemorySized = 64,
879     OpAccessChain = 65,
880     OpInBoundsAccessChain = 66,
881     OpPtrAccessChain = 67,
882     OpArrayLength = 68,
883     OpGenericPtrMemSemantics = 69,
884     OpInBoundsPtrAccessChain = 70,
885     OpDecorate = 71,
886     OpMemberDecorate = 72,
887     OpDecorationGroup = 73,
888     OpGroupDecorate = 74,
889     OpGroupMemberDecorate = 75,
890     OpVectorExtractDynamic = 77,
891     OpVectorInsertDynamic = 78,
892     OpVectorShuffle = 79,
893     OpCompositeConstruct = 80,
894     OpCompositeExtract = 81,
895     OpCompositeInsert = 82,
896     OpCopyObject = 83,
897     OpTranspose = 84,
898     OpSampledImage = 86,
899     OpImageSampleImplicitLod = 87,
900     OpImageSampleExplicitLod = 88,
901     OpImageSampleDrefImplicitLod = 89,
902     OpImageSampleDrefExplicitLod = 90,
903     OpImageSampleProjImplicitLod = 91,
904     OpImageSampleProjExplicitLod = 92,
905     OpImageSampleProjDrefImplicitLod = 93,
906     OpImageSampleProjDrefExplicitLod = 94,
907     OpImageFetch = 95,
908     OpImageGather = 96,
909     OpImageDrefGather = 97,
910     OpImageRead = 98,
911     OpImageWrite = 99,
912     OpImage = 100,
913     OpImageQueryFormat = 101,
914     OpImageQueryOrder = 102,
915     OpImageQuerySizeLod = 103,
916     OpImageQuerySize = 104,
917     OpImageQueryLod = 105,
918     OpImageQueryLevels = 106,
919     OpImageQuerySamples = 107,
920     OpConvertFToU = 109,
921     OpConvertFToS = 110,
922     OpConvertSToF = 111,
923     OpConvertUToF = 112,
924     OpUConvert = 113,
925     OpSConvert = 114,
926     OpFConvert = 115,
927     OpQuantizeToF16 = 116,
928     OpConvertPtrToU = 117,
929     OpSatConvertSToU = 118,
930     OpSatConvertUToS = 119,
931     OpConvertUToPtr = 120,
932     OpPtrCastToGeneric = 121,
933     OpGenericCastToPtr = 122,
934     OpGenericCastToPtrExplicit = 123,
935     OpBitcast = 124,
936     OpSNegate = 126,
937     OpFNegate = 127,
938     OpIAdd = 128,
939     OpFAdd = 129,
940     OpISub = 130,
941     OpFSub = 131,
942     OpIMul = 132,
943     OpFMul = 133,
944     OpUDiv = 134,
945     OpSDiv = 135,
946     OpFDiv = 136,
947     OpUMod = 137,
948     OpSRem = 138,
949     OpSMod = 139,
950     OpFRem = 140,
951     OpFMod = 141,
952     OpVectorTimesScalar = 142,
953     OpMatrixTimesScalar = 143,
954     OpVectorTimesMatrix = 144,
955     OpMatrixTimesVector = 145,
956     OpMatrixTimesMatrix = 146,
957     OpOuterProduct = 147,
958     OpDot = 148,
959     OpIAddCarry = 149,
960     OpISubBorrow = 150,
961     OpUMulExtended = 151,
962     OpSMulExtended = 152,
963     OpAny = 154,
964     OpAll = 155,
965     OpIsNan = 156,
966     OpIsInf = 157,
967     OpIsFinite = 158,
968     OpIsNormal = 159,
969     OpSignBitSet = 160,
970     OpLessOrGreater = 161,
971     OpOrdered = 162,
972     OpUnordered = 163,
973     OpLogicalEqual = 164,
974     OpLogicalNotEqual = 165,
975     OpLogicalOr = 166,
976     OpLogicalAnd = 167,
977     OpLogicalNot = 168,
978     OpSelect = 169,
979     OpIEqual = 170,
980     OpINotEqual = 171,
981     OpUGreaterThan = 172,
982     OpSGreaterThan = 173,
983     OpUGreaterThanEqual = 174,
984     OpSGreaterThanEqual = 175,
985     OpULessThan = 176,
986     OpSLessThan = 177,
987     OpULessThanEqual = 178,
988     OpSLessThanEqual = 179,
989     OpFOrdEqual = 180,
990     OpFUnordEqual = 181,
991     OpFOrdNotEqual = 182,
992     OpFUnordNotEqual = 183,
993     OpFOrdLessThan = 184,
994     OpFUnordLessThan = 185,
995     OpFOrdGreaterThan = 186,
996     OpFUnordGreaterThan = 187,
997     OpFOrdLessThanEqual = 188,
998     OpFUnordLessThanEqual = 189,
999     OpFOrdGreaterThanEqual = 190,
1000     OpFUnordGreaterThanEqual = 191,
1001     OpShiftRightLogical = 194,
1002     OpShiftRightArithmetic = 195,
1003     OpShiftLeftLogical = 196,
1004     OpBitwiseOr = 197,
1005     OpBitwiseXor = 198,
1006     OpBitwiseAnd = 199,
1007     OpNot = 200,
1008     OpBitFieldInsert = 201,
1009     OpBitFieldSExtract = 202,
1010     OpBitFieldUExtract = 203,
1011     OpBitReverse = 204,
1012     OpBitCount = 205,
1013     OpDPdx = 207,
1014     OpDPdy = 208,
1015     OpFwidth = 209,
1016     OpDPdxFine = 210,
1017     OpDPdyFine = 211,
1018     OpFwidthFine = 212,
1019     OpDPdxCoarse = 213,
1020     OpDPdyCoarse = 214,
1021     OpFwidthCoarse = 215,
1022     OpEmitVertex = 218,
1023     OpEndPrimitive = 219,
1024     OpEmitStreamVertex = 220,
1025     OpEndStreamPrimitive = 221,
1026     OpControlBarrier = 224,
1027     OpMemoryBarrier = 225,
1028     OpAtomicLoad = 227,
1029     OpAtomicStore = 228,
1030     OpAtomicExchange = 229,
1031     OpAtomicCompareExchange = 230,
1032     OpAtomicCompareExchangeWeak = 231,
1033     OpAtomicIIncrement = 232,
1034     OpAtomicIDecrement = 233,
1035     OpAtomicIAdd = 234,
1036     OpAtomicISub = 235,
1037     OpAtomicSMin = 236,
1038     OpAtomicUMin = 237,
1039     OpAtomicSMax = 238,
1040     OpAtomicUMax = 239,
1041     OpAtomicAnd = 240,
1042     OpAtomicOr = 241,
1043     OpAtomicXor = 242,
1044     OpPhi = 245,
1045     OpLoopMerge = 246,
1046     OpSelectionMerge = 247,
1047     OpLabel = 248,
1048     OpBranch = 249,
1049     OpBranchConditional = 250,
1050     OpSwitch = 251,
1051     OpKill = 252,
1052     OpReturn = 253,
1053     OpReturnValue = 254,
1054     OpUnreachable = 255,
1055     OpLifetimeStart = 256,
1056     OpLifetimeStop = 257,
1057     OpGroupAsyncCopy = 259,
1058     OpGroupWaitEvents = 260,
1059     OpGroupAll = 261,
1060     OpGroupAny = 262,
1061     OpGroupBroadcast = 263,
1062     OpGroupIAdd = 264,
1063     OpGroupFAdd = 265,
1064     OpGroupFMin = 266,
1065     OpGroupUMin = 267,
1066     OpGroupSMin = 268,
1067     OpGroupFMax = 269,
1068     OpGroupUMax = 270,
1069     OpGroupSMax = 271,
1070     OpReadPipe = 274,
1071     OpWritePipe = 275,
1072     OpReservedReadPipe = 276,
1073     OpReservedWritePipe = 277,
1074     OpReserveReadPipePackets = 278,
1075     OpReserveWritePipePackets = 279,
1076     OpCommitReadPipe = 280,
1077     OpCommitWritePipe = 281,
1078     OpIsValidReserveId = 282,
1079     OpGetNumPipePackets = 283,
1080     OpGetMaxPipePackets = 284,
1081     OpGroupReserveReadPipePackets = 285,
1082     OpGroupReserveWritePipePackets = 286,
1083     OpGroupCommitReadPipe = 287,
1084     OpGroupCommitWritePipe = 288,
1085     OpEnqueueMarker = 291,
1086     OpEnqueueKernel = 292,
1087     OpGetKernelNDrangeSubGroupCount = 293,
1088     OpGetKernelNDrangeMaxSubGroupSize = 294,
1089     OpGetKernelWorkGroupSize = 295,
1090     OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1091     OpRetainEvent = 297,
1092     OpReleaseEvent = 298,
1093     OpCreateUserEvent = 299,
1094     OpIsValidEvent = 300,
1095     OpSetUserEventStatus = 301,
1096     OpCaptureEventProfilingInfo = 302,
1097     OpGetDefaultQueue = 303,
1098     OpBuildNDRange = 304,
1099     OpImageSparseSampleImplicitLod = 305,
1100     OpImageSparseSampleExplicitLod = 306,
1101     OpImageSparseSampleDrefImplicitLod = 307,
1102     OpImageSparseSampleDrefExplicitLod = 308,
1103     OpImageSparseSampleProjImplicitLod = 309,
1104     OpImageSparseSampleProjExplicitLod = 310,
1105     OpImageSparseSampleProjDrefImplicitLod = 311,
1106     OpImageSparseSampleProjDrefExplicitLod = 312,
1107     OpImageSparseFetch = 313,
1108     OpImageSparseGather = 314,
1109     OpImageSparseDrefGather = 315,
1110     OpImageSparseTexelsResident = 316,
1111     OpNoLine = 317,
1112     OpAtomicFlagTestAndSet = 318,
1113     OpAtomicFlagClear = 319,
1114     OpImageSparseRead = 320,
1115     OpSizeOf = 321,
1116     OpTypePipeStorage = 322,
1117     OpConstantPipeStorage = 323,
1118     OpCreatePipeFromPipeStorage = 324,
1119     OpGetKernelLocalSizeForSubgroupCount = 325,
1120     OpGetKernelMaxNumSubgroups = 326,
1121     OpTypeNamedBarrier = 327,
1122     OpNamedBarrierInitialize = 328,
1123     OpMemoryNamedBarrier = 329,
1124     OpModuleProcessed = 330,
1125     OpExecutionModeId = 331,
1126     OpDecorateId = 332,
1127     OpGroupNonUniformElect = 333,
1128     OpGroupNonUniformAll = 334,
1129     OpGroupNonUniformAny = 335,
1130     OpGroupNonUniformAllEqual = 336,
1131     OpGroupNonUniformBroadcast = 337,
1132     OpGroupNonUniformBroadcastFirst = 338,
1133     OpGroupNonUniformBallot = 339,
1134     OpGroupNonUniformInverseBallot = 340,
1135     OpGroupNonUniformBallotBitExtract = 341,
1136     OpGroupNonUniformBallotBitCount = 342,
1137     OpGroupNonUniformBallotFindLSB = 343,
1138     OpGroupNonUniformBallotFindMSB = 344,
1139     OpGroupNonUniformShuffle = 345,
1140     OpGroupNonUniformShuffleXor = 346,
1141     OpGroupNonUniformShuffleUp = 347,
1142     OpGroupNonUniformShuffleDown = 348,
1143     OpGroupNonUniformIAdd = 349,
1144     OpGroupNonUniformFAdd = 350,
1145     OpGroupNonUniformIMul = 351,
1146     OpGroupNonUniformFMul = 352,
1147     OpGroupNonUniformSMin = 353,
1148     OpGroupNonUniformUMin = 354,
1149     OpGroupNonUniformFMin = 355,
1150     OpGroupNonUniformSMax = 356,
1151     OpGroupNonUniformUMax = 357,
1152     OpGroupNonUniformFMax = 358,
1153     OpGroupNonUniformBitwiseAnd = 359,
1154     OpGroupNonUniformBitwiseOr = 360,
1155     OpGroupNonUniformBitwiseXor = 361,
1156     OpGroupNonUniformLogicalAnd = 362,
1157     OpGroupNonUniformLogicalOr = 363,
1158     OpGroupNonUniformLogicalXor = 364,
1159     OpGroupNonUniformQuadBroadcast = 365,
1160     OpGroupNonUniformQuadSwap = 366,
1161     OpSubgroupBallotKHR = 4421,
1162     OpSubgroupFirstInvocationKHR = 4422,
1163     OpSubgroupAllKHR = 4428,
1164     OpSubgroupAnyKHR = 4429,
1165     OpSubgroupAllEqualKHR = 4430,
1166     OpSubgroupReadInvocationKHR = 4432,
1167     OpGroupIAddNonUniformAMD = 5000,
1168     OpGroupFAddNonUniformAMD = 5001,
1169     OpGroupFMinNonUniformAMD = 5002,
1170     OpGroupUMinNonUniformAMD = 5003,
1171     OpGroupSMinNonUniformAMD = 5004,
1172     OpGroupFMaxNonUniformAMD = 5005,
1173     OpGroupUMaxNonUniformAMD = 5006,
1174     OpGroupSMaxNonUniformAMD = 5007,
1175     OpFragmentMaskFetchAMD = 5011,
1176     OpFragmentFetchAMD = 5012,
1177     OpImageSampleFootprintNV = 5283,
1178     OpGroupNonUniformPartitionNV = 5296,
1179     OpWritePackedPrimitiveIndices4x8NV = 5299,
1180     OpReportIntersectionNV = 5334,
1181     OpIgnoreIntersectionNV = 5335,
1182     OpTerminateRayNV = 5336,
1183     OpTraceNV = 5337,
1184     OpTypeAccelerationStructureNV = 5341,
1185     OpExecuteCallableNV = 5344,
1186     OpSubgroupShuffleINTEL = 5571,
1187     OpSubgroupShuffleDownINTEL = 5572,
1188     OpSubgroupShuffleUpINTEL = 5573,
1189     OpSubgroupShuffleXorINTEL = 5574,
1190     OpSubgroupBlockReadINTEL = 5575,
1191     OpSubgroupBlockWriteINTEL = 5576,
1192     OpSubgroupImageBlockReadINTEL = 5577,
1193     OpSubgroupImageBlockWriteINTEL = 5578,
1194     OpDecorateStringGOOGLE = 5632,
1195     OpMemberDecorateStringGOOGLE = 5633,
1196     OpMax = 0x7fffffff,
1197 };
1198 
1199 // Overload operator| for mask bit combining
1200 
operator |(ImageOperandsMask a,ImageOperandsMask b)1201 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
operator |(FPFastMathModeMask a,FPFastMathModeMask b)1202 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
operator |(SelectionControlMask a,SelectionControlMask b)1203 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
operator |(LoopControlMask a,LoopControlMask b)1204 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
operator |(FunctionControlMask a,FunctionControlMask b)1205 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
operator |(MemorySemanticsMask a,MemorySemanticsMask b)1206 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
operator |(MemoryAccessMask a,MemoryAccessMask b)1207 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
operator |(KernelProfilingInfoMask a,KernelProfilingInfoMask b)1208 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
1209 
1210 }  // end namespace spv
1211 
1212 #endif  // #ifndef spirv_HPP
1213 
1214