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