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