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 CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
818 CapabilityMax = 0x7fffffff,
819 };
820
821 enum Op {
822 OpNop = 0,
823 OpUndef = 1,
824 OpSourceContinued = 2,
825 OpSource = 3,
826 OpSourceExtension = 4,
827 OpName = 5,
828 OpMemberName = 6,
829 OpString = 7,
830 OpLine = 8,
831 OpExtension = 10,
832 OpExtInstImport = 11,
833 OpExtInst = 12,
834 OpMemoryModel = 14,
835 OpEntryPoint = 15,
836 OpExecutionMode = 16,
837 OpCapability = 17,
838 OpTypeVoid = 19,
839 OpTypeBool = 20,
840 OpTypeInt = 21,
841 OpTypeFloat = 22,
842 OpTypeVector = 23,
843 OpTypeMatrix = 24,
844 OpTypeImage = 25,
845 OpTypeSampler = 26,
846 OpTypeSampledImage = 27,
847 OpTypeArray = 28,
848 OpTypeRuntimeArray = 29,
849 OpTypeStruct = 30,
850 OpTypeOpaque = 31,
851 OpTypePointer = 32,
852 OpTypeFunction = 33,
853 OpTypeEvent = 34,
854 OpTypeDeviceEvent = 35,
855 OpTypeReserveId = 36,
856 OpTypeQueue = 37,
857 OpTypePipe = 38,
858 OpTypeForwardPointer = 39,
859 OpConstantTrue = 41,
860 OpConstantFalse = 42,
861 OpConstant = 43,
862 OpConstantComposite = 44,
863 OpConstantSampler = 45,
864 OpConstantNull = 46,
865 OpSpecConstantTrue = 48,
866 OpSpecConstantFalse = 49,
867 OpSpecConstant = 50,
868 OpSpecConstantComposite = 51,
869 OpSpecConstantOp = 52,
870 OpFunction = 54,
871 OpFunctionParameter = 55,
872 OpFunctionEnd = 56,
873 OpFunctionCall = 57,
874 OpVariable = 59,
875 OpImageTexelPointer = 60,
876 OpLoad = 61,
877 OpStore = 62,
878 OpCopyMemory = 63,
879 OpCopyMemorySized = 64,
880 OpAccessChain = 65,
881 OpInBoundsAccessChain = 66,
882 OpPtrAccessChain = 67,
883 OpArrayLength = 68,
884 OpGenericPtrMemSemantics = 69,
885 OpInBoundsPtrAccessChain = 70,
886 OpDecorate = 71,
887 OpMemberDecorate = 72,
888 OpDecorationGroup = 73,
889 OpGroupDecorate = 74,
890 OpGroupMemberDecorate = 75,
891 OpVectorExtractDynamic = 77,
892 OpVectorInsertDynamic = 78,
893 OpVectorShuffle = 79,
894 OpCompositeConstruct = 80,
895 OpCompositeExtract = 81,
896 OpCompositeInsert = 82,
897 OpCopyObject = 83,
898 OpTranspose = 84,
899 OpSampledImage = 86,
900 OpImageSampleImplicitLod = 87,
901 OpImageSampleExplicitLod = 88,
902 OpImageSampleDrefImplicitLod = 89,
903 OpImageSampleDrefExplicitLod = 90,
904 OpImageSampleProjImplicitLod = 91,
905 OpImageSampleProjExplicitLod = 92,
906 OpImageSampleProjDrefImplicitLod = 93,
907 OpImageSampleProjDrefExplicitLod = 94,
908 OpImageFetch = 95,
909 OpImageGather = 96,
910 OpImageDrefGather = 97,
911 OpImageRead = 98,
912 OpImageWrite = 99,
913 OpImage = 100,
914 OpImageQueryFormat = 101,
915 OpImageQueryOrder = 102,
916 OpImageQuerySizeLod = 103,
917 OpImageQuerySize = 104,
918 OpImageQueryLod = 105,
919 OpImageQueryLevels = 106,
920 OpImageQuerySamples = 107,
921 OpConvertFToU = 109,
922 OpConvertFToS = 110,
923 OpConvertSToF = 111,
924 OpConvertUToF = 112,
925 OpUConvert = 113,
926 OpSConvert = 114,
927 OpFConvert = 115,
928 OpQuantizeToF16 = 116,
929 OpConvertPtrToU = 117,
930 OpSatConvertSToU = 118,
931 OpSatConvertUToS = 119,
932 OpConvertUToPtr = 120,
933 OpPtrCastToGeneric = 121,
934 OpGenericCastToPtr = 122,
935 OpGenericCastToPtrExplicit = 123,
936 OpBitcast = 124,
937 OpSNegate = 126,
938 OpFNegate = 127,
939 OpIAdd = 128,
940 OpFAdd = 129,
941 OpISub = 130,
942 OpFSub = 131,
943 OpIMul = 132,
944 OpFMul = 133,
945 OpUDiv = 134,
946 OpSDiv = 135,
947 OpFDiv = 136,
948 OpUMod = 137,
949 OpSRem = 138,
950 OpSMod = 139,
951 OpFRem = 140,
952 OpFMod = 141,
953 OpVectorTimesScalar = 142,
954 OpMatrixTimesScalar = 143,
955 OpVectorTimesMatrix = 144,
956 OpMatrixTimesVector = 145,
957 OpMatrixTimesMatrix = 146,
958 OpOuterProduct = 147,
959 OpDot = 148,
960 OpIAddCarry = 149,
961 OpISubBorrow = 150,
962 OpUMulExtended = 151,
963 OpSMulExtended = 152,
964 OpAny = 154,
965 OpAll = 155,
966 OpIsNan = 156,
967 OpIsInf = 157,
968 OpIsFinite = 158,
969 OpIsNormal = 159,
970 OpSignBitSet = 160,
971 OpLessOrGreater = 161,
972 OpOrdered = 162,
973 OpUnordered = 163,
974 OpLogicalEqual = 164,
975 OpLogicalNotEqual = 165,
976 OpLogicalOr = 166,
977 OpLogicalAnd = 167,
978 OpLogicalNot = 168,
979 OpSelect = 169,
980 OpIEqual = 170,
981 OpINotEqual = 171,
982 OpUGreaterThan = 172,
983 OpSGreaterThan = 173,
984 OpUGreaterThanEqual = 174,
985 OpSGreaterThanEqual = 175,
986 OpULessThan = 176,
987 OpSLessThan = 177,
988 OpULessThanEqual = 178,
989 OpSLessThanEqual = 179,
990 OpFOrdEqual = 180,
991 OpFUnordEqual = 181,
992 OpFOrdNotEqual = 182,
993 OpFUnordNotEqual = 183,
994 OpFOrdLessThan = 184,
995 OpFUnordLessThan = 185,
996 OpFOrdGreaterThan = 186,
997 OpFUnordGreaterThan = 187,
998 OpFOrdLessThanEqual = 188,
999 OpFUnordLessThanEqual = 189,
1000 OpFOrdGreaterThanEqual = 190,
1001 OpFUnordGreaterThanEqual = 191,
1002 OpShiftRightLogical = 194,
1003 OpShiftRightArithmetic = 195,
1004 OpShiftLeftLogical = 196,
1005 OpBitwiseOr = 197,
1006 OpBitwiseXor = 198,
1007 OpBitwiseAnd = 199,
1008 OpNot = 200,
1009 OpBitFieldInsert = 201,
1010 OpBitFieldSExtract = 202,
1011 OpBitFieldUExtract = 203,
1012 OpBitReverse = 204,
1013 OpBitCount = 205,
1014 OpDPdx = 207,
1015 OpDPdy = 208,
1016 OpFwidth = 209,
1017 OpDPdxFine = 210,
1018 OpDPdyFine = 211,
1019 OpFwidthFine = 212,
1020 OpDPdxCoarse = 213,
1021 OpDPdyCoarse = 214,
1022 OpFwidthCoarse = 215,
1023 OpEmitVertex = 218,
1024 OpEndPrimitive = 219,
1025 OpEmitStreamVertex = 220,
1026 OpEndStreamPrimitive = 221,
1027 OpControlBarrier = 224,
1028 OpMemoryBarrier = 225,
1029 OpAtomicLoad = 227,
1030 OpAtomicStore = 228,
1031 OpAtomicExchange = 229,
1032 OpAtomicCompareExchange = 230,
1033 OpAtomicCompareExchangeWeak = 231,
1034 OpAtomicIIncrement = 232,
1035 OpAtomicIDecrement = 233,
1036 OpAtomicIAdd = 234,
1037 OpAtomicISub = 235,
1038 OpAtomicSMin = 236,
1039 OpAtomicUMin = 237,
1040 OpAtomicSMax = 238,
1041 OpAtomicUMax = 239,
1042 OpAtomicAnd = 240,
1043 OpAtomicOr = 241,
1044 OpAtomicXor = 242,
1045 OpPhi = 245,
1046 OpLoopMerge = 246,
1047 OpSelectionMerge = 247,
1048 OpLabel = 248,
1049 OpBranch = 249,
1050 OpBranchConditional = 250,
1051 OpSwitch = 251,
1052 OpKill = 252,
1053 OpReturn = 253,
1054 OpReturnValue = 254,
1055 OpUnreachable = 255,
1056 OpLifetimeStart = 256,
1057 OpLifetimeStop = 257,
1058 OpGroupAsyncCopy = 259,
1059 OpGroupWaitEvents = 260,
1060 OpGroupAll = 261,
1061 OpGroupAny = 262,
1062 OpGroupBroadcast = 263,
1063 OpGroupIAdd = 264,
1064 OpGroupFAdd = 265,
1065 OpGroupFMin = 266,
1066 OpGroupUMin = 267,
1067 OpGroupSMin = 268,
1068 OpGroupFMax = 269,
1069 OpGroupUMax = 270,
1070 OpGroupSMax = 271,
1071 OpReadPipe = 274,
1072 OpWritePipe = 275,
1073 OpReservedReadPipe = 276,
1074 OpReservedWritePipe = 277,
1075 OpReserveReadPipePackets = 278,
1076 OpReserveWritePipePackets = 279,
1077 OpCommitReadPipe = 280,
1078 OpCommitWritePipe = 281,
1079 OpIsValidReserveId = 282,
1080 OpGetNumPipePackets = 283,
1081 OpGetMaxPipePackets = 284,
1082 OpGroupReserveReadPipePackets = 285,
1083 OpGroupReserveWritePipePackets = 286,
1084 OpGroupCommitReadPipe = 287,
1085 OpGroupCommitWritePipe = 288,
1086 OpEnqueueMarker = 291,
1087 OpEnqueueKernel = 292,
1088 OpGetKernelNDrangeSubGroupCount = 293,
1089 OpGetKernelNDrangeMaxSubGroupSize = 294,
1090 OpGetKernelWorkGroupSize = 295,
1091 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1092 OpRetainEvent = 297,
1093 OpReleaseEvent = 298,
1094 OpCreateUserEvent = 299,
1095 OpIsValidEvent = 300,
1096 OpSetUserEventStatus = 301,
1097 OpCaptureEventProfilingInfo = 302,
1098 OpGetDefaultQueue = 303,
1099 OpBuildNDRange = 304,
1100 OpImageSparseSampleImplicitLod = 305,
1101 OpImageSparseSampleExplicitLod = 306,
1102 OpImageSparseSampleDrefImplicitLod = 307,
1103 OpImageSparseSampleDrefExplicitLod = 308,
1104 OpImageSparseSampleProjImplicitLod = 309,
1105 OpImageSparseSampleProjExplicitLod = 310,
1106 OpImageSparseSampleProjDrefImplicitLod = 311,
1107 OpImageSparseSampleProjDrefExplicitLod = 312,
1108 OpImageSparseFetch = 313,
1109 OpImageSparseGather = 314,
1110 OpImageSparseDrefGather = 315,
1111 OpImageSparseTexelsResident = 316,
1112 OpNoLine = 317,
1113 OpAtomicFlagTestAndSet = 318,
1114 OpAtomicFlagClear = 319,
1115 OpImageSparseRead = 320,
1116 OpSizeOf = 321,
1117 OpTypePipeStorage = 322,
1118 OpConstantPipeStorage = 323,
1119 OpCreatePipeFromPipeStorage = 324,
1120 OpGetKernelLocalSizeForSubgroupCount = 325,
1121 OpGetKernelMaxNumSubgroups = 326,
1122 OpTypeNamedBarrier = 327,
1123 OpNamedBarrierInitialize = 328,
1124 OpMemoryNamedBarrier = 329,
1125 OpModuleProcessed = 330,
1126 OpExecutionModeId = 331,
1127 OpDecorateId = 332,
1128 OpGroupNonUniformElect = 333,
1129 OpGroupNonUniformAll = 334,
1130 OpGroupNonUniformAny = 335,
1131 OpGroupNonUniformAllEqual = 336,
1132 OpGroupNonUniformBroadcast = 337,
1133 OpGroupNonUniformBroadcastFirst = 338,
1134 OpGroupNonUniformBallot = 339,
1135 OpGroupNonUniformInverseBallot = 340,
1136 OpGroupNonUniformBallotBitExtract = 341,
1137 OpGroupNonUniformBallotBitCount = 342,
1138 OpGroupNonUniformBallotFindLSB = 343,
1139 OpGroupNonUniformBallotFindMSB = 344,
1140 OpGroupNonUniformShuffle = 345,
1141 OpGroupNonUniformShuffleXor = 346,
1142 OpGroupNonUniformShuffleUp = 347,
1143 OpGroupNonUniformShuffleDown = 348,
1144 OpGroupNonUniformIAdd = 349,
1145 OpGroupNonUniformFAdd = 350,
1146 OpGroupNonUniformIMul = 351,
1147 OpGroupNonUniformFMul = 352,
1148 OpGroupNonUniformSMin = 353,
1149 OpGroupNonUniformUMin = 354,
1150 OpGroupNonUniformFMin = 355,
1151 OpGroupNonUniformSMax = 356,
1152 OpGroupNonUniformUMax = 357,
1153 OpGroupNonUniformFMax = 358,
1154 OpGroupNonUniformBitwiseAnd = 359,
1155 OpGroupNonUniformBitwiseOr = 360,
1156 OpGroupNonUniformBitwiseXor = 361,
1157 OpGroupNonUniformLogicalAnd = 362,
1158 OpGroupNonUniformLogicalOr = 363,
1159 OpGroupNonUniformLogicalXor = 364,
1160 OpGroupNonUniformQuadBroadcast = 365,
1161 OpGroupNonUniformQuadSwap = 366,
1162 OpSubgroupBallotKHR = 4421,
1163 OpSubgroupFirstInvocationKHR = 4422,
1164 OpSubgroupAllKHR = 4428,
1165 OpSubgroupAnyKHR = 4429,
1166 OpSubgroupAllEqualKHR = 4430,
1167 OpSubgroupReadInvocationKHR = 4432,
1168 OpGroupIAddNonUniformAMD = 5000,
1169 OpGroupFAddNonUniformAMD = 5001,
1170 OpGroupFMinNonUniformAMD = 5002,
1171 OpGroupUMinNonUniformAMD = 5003,
1172 OpGroupSMinNonUniformAMD = 5004,
1173 OpGroupFMaxNonUniformAMD = 5005,
1174 OpGroupUMaxNonUniformAMD = 5006,
1175 OpGroupSMaxNonUniformAMD = 5007,
1176 OpFragmentMaskFetchAMD = 5011,
1177 OpFragmentFetchAMD = 5012,
1178 OpImageSampleFootprintNV = 5283,
1179 OpGroupNonUniformPartitionNV = 5296,
1180 OpWritePackedPrimitiveIndices4x8NV = 5299,
1181 OpReportIntersectionNV = 5334,
1182 OpIgnoreIntersectionNV = 5335,
1183 OpTerminateRayNV = 5336,
1184 OpTraceNV = 5337,
1185 OpTypeAccelerationStructureNV = 5341,
1186 OpExecuteCallableNV = 5344,
1187 OpSubgroupShuffleINTEL = 5571,
1188 OpSubgroupShuffleDownINTEL = 5572,
1189 OpSubgroupShuffleUpINTEL = 5573,
1190 OpSubgroupShuffleXorINTEL = 5574,
1191 OpSubgroupBlockReadINTEL = 5575,
1192 OpSubgroupBlockWriteINTEL = 5576,
1193 OpSubgroupImageBlockReadINTEL = 5577,
1194 OpSubgroupImageBlockWriteINTEL = 5578,
1195 OpSubgroupImageMediaBlockReadINTEL = 5580,
1196 OpSubgroupImageMediaBlockWriteINTEL = 5581,
1197 OpDecorateStringGOOGLE = 5632,
1198 OpMemberDecorateStringGOOGLE = 5633,
1199 OpMax = 0x7fffffff,
1200 };
1201
1202 // Overload operator| for mask bit combining
1203
operator |(ImageOperandsMask a,ImageOperandsMask b)1204 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
operator |(FPFastMathModeMask a,FPFastMathModeMask b)1205 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
operator |(SelectionControlMask a,SelectionControlMask b)1206 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
operator |(LoopControlMask a,LoopControlMask b)1207 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
operator |(FunctionControlMask a,FunctionControlMask b)1208 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
operator |(MemorySemanticsMask a,MemorySemanticsMask b)1209 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
operator |(MemoryAccessMask a,MemoryAccessMask b)1210 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
operator |(KernelProfilingInfoMask a,KernelProfilingInfoMask b)1211 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
1212
1213 } // end namespace spv
1214
1215 #endif // #ifndef spirv_HPP
1216
1217