1 // Copyright (c) 2014-2016 The Khronos Group Inc.
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:
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
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/
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
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
28 // Enumeration tokens for SPIR-V, in various styles:
29 // C, C++, C++11, JSON, Lua, Python
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']
37 // Some tokens act like mask values, which can be OR'd together,
38 // while others are mutually exclusive. The mask-like ones have
39 // "Mask" in their name, and a parallel enum that has the shift
40 // amount (1 << x) for each corresponding enumerant.
47 typedef unsigned int Id;
49 #define SPV_VERSION 0x10000
50 #define SPV_REVISION 5
52 static const unsigned int MagicNumber = 0x07230203;
53 static const unsigned int Version = 0x00010000;
54 static const unsigned int Revision = 5;
55 static const unsigned int OpCodeMask = 0xffff;
56 static const unsigned int WordCountShift = 16;
59 SourceLanguageUnknown = 0,
60 SourceLanguageESSL = 1,
61 SourceLanguageGLSL = 2,
62 SourceLanguageOpenCL_C = 3,
63 SourceLanguageOpenCL_CPP = 4,
67 ExecutionModelVertex = 0,
68 ExecutionModelTessellationControl = 1,
69 ExecutionModelTessellationEvaluation = 2,
70 ExecutionModelGeometry = 3,
71 ExecutionModelFragment = 4,
72 ExecutionModelGLCompute = 5,
73 ExecutionModelKernel = 6,
76 enum AddressingModel {
77 AddressingModelLogical = 0,
78 AddressingModelPhysical32 = 1,
79 AddressingModelPhysical64 = 2,
83 MemoryModelSimple = 0,
84 MemoryModelGLSL450 = 1,
85 MemoryModelOpenCL = 2,
89 ExecutionModeInvocations = 0,
90 ExecutionModeSpacingEqual = 1,
91 ExecutionModeSpacingFractionalEven = 2,
92 ExecutionModeSpacingFractionalOdd = 3,
93 ExecutionModeVertexOrderCw = 4,
94 ExecutionModeVertexOrderCcw = 5,
95 ExecutionModePixelCenterInteger = 6,
96 ExecutionModeOriginUpperLeft = 7,
97 ExecutionModeOriginLowerLeft = 8,
98 ExecutionModeEarlyFragmentTests = 9,
99 ExecutionModePointMode = 10,
100 ExecutionModeXfb = 11,
101 ExecutionModeDepthReplacing = 12,
102 ExecutionModeDepthGreater = 14,
103 ExecutionModeDepthLess = 15,
104 ExecutionModeDepthUnchanged = 16,
105 ExecutionModeLocalSize = 17,
106 ExecutionModeLocalSizeHint = 18,
107 ExecutionModeInputPoints = 19,
108 ExecutionModeInputLines = 20,
109 ExecutionModeInputLinesAdjacency = 21,
110 ExecutionModeTriangles = 22,
111 ExecutionModeInputTrianglesAdjacency = 23,
112 ExecutionModeQuads = 24,
113 ExecutionModeIsolines = 25,
114 ExecutionModeOutputVertices = 26,
115 ExecutionModeOutputPoints = 27,
116 ExecutionModeOutputLineStrip = 28,
117 ExecutionModeOutputTriangleStrip = 29,
118 ExecutionModeVecTypeHint = 30,
119 ExecutionModeContractionOff = 31,
123 StorageClassUniformConstant = 0,
124 StorageClassInput = 1,
125 StorageClassUniform = 2,
126 StorageClassOutput = 3,
127 StorageClassWorkgroup = 4,
128 StorageClassCrossWorkgroup = 5,
129 StorageClassPrivate = 6,
130 StorageClassFunction = 7,
131 StorageClassGeneric = 8,
132 StorageClassPushConstant = 9,
133 StorageClassAtomicCounter = 10,
134 StorageClassImage = 11,
147 enum SamplerAddressingMode {
148 SamplerAddressingModeNone = 0,
149 SamplerAddressingModeClampToEdge = 1,
150 SamplerAddressingModeClamp = 2,
151 SamplerAddressingModeRepeat = 3,
152 SamplerAddressingModeRepeatMirrored = 4,
155 enum SamplerFilterMode {
156 SamplerFilterModeNearest = 0,
157 SamplerFilterModeLinear = 1,
161 ImageFormatUnknown = 0,
162 ImageFormatRgba32f = 1,
163 ImageFormatRgba16f = 2,
165 ImageFormatRgba8 = 4,
166 ImageFormatRgba8Snorm = 5,
167 ImageFormatRg32f = 6,
168 ImageFormatRg16f = 7,
169 ImageFormatR11fG11fB10f = 8,
171 ImageFormatRgba16 = 10,
172 ImageFormatRgb10A2 = 11,
173 ImageFormatRg16 = 12,
177 ImageFormatRgba16Snorm = 16,
178 ImageFormatRg16Snorm = 17,
179 ImageFormatRg8Snorm = 18,
180 ImageFormatR16Snorm = 19,
181 ImageFormatR8Snorm = 20,
182 ImageFormatRgba32i = 21,
183 ImageFormatRgba16i = 22,
184 ImageFormatRgba8i = 23,
185 ImageFormatR32i = 24,
186 ImageFormatRg32i = 25,
187 ImageFormatRg16i = 26,
188 ImageFormatRg8i = 27,
189 ImageFormatR16i = 28,
191 ImageFormatRgba32ui = 30,
192 ImageFormatRgba16ui = 31,
193 ImageFormatRgba8ui = 32,
194 ImageFormatR32ui = 33,
195 ImageFormatRgb10a2ui = 34,
196 ImageFormatRg32ui = 35,
197 ImageFormatRg16ui = 36,
198 ImageFormatRg8ui = 37,
199 ImageFormatR16ui = 38,
200 ImageFormatR8ui = 39,
203 enum ImageChannelOrder {
204 ImageChannelOrderR = 0,
205 ImageChannelOrderA = 1,
206 ImageChannelOrderRG = 2,
207 ImageChannelOrderRA = 3,
208 ImageChannelOrderRGB = 4,
209 ImageChannelOrderRGBA = 5,
210 ImageChannelOrderBGRA = 6,
211 ImageChannelOrderARGB = 7,
212 ImageChannelOrderIntensity = 8,
213 ImageChannelOrderLuminance = 9,
214 ImageChannelOrderRx = 10,
215 ImageChannelOrderRGx = 11,
216 ImageChannelOrderRGBx = 12,
217 ImageChannelOrderDepth = 13,
218 ImageChannelOrderDepthStencil = 14,
219 ImageChannelOrdersRGB = 15,
220 ImageChannelOrdersRGBx = 16,
221 ImageChannelOrdersRGBA = 17,
222 ImageChannelOrdersBGRA = 18,
223 ImageChannelOrderABGR = 19,
226 enum ImageChannelDataType {
227 ImageChannelDataTypeSnormInt8 = 0,
228 ImageChannelDataTypeSnormInt16 = 1,
229 ImageChannelDataTypeUnormInt8 = 2,
230 ImageChannelDataTypeUnormInt16 = 3,
231 ImageChannelDataTypeUnormShort565 = 4,
232 ImageChannelDataTypeUnormShort555 = 5,
233 ImageChannelDataTypeUnormInt101010 = 6,
234 ImageChannelDataTypeSignedInt8 = 7,
235 ImageChannelDataTypeSignedInt16 = 8,
236 ImageChannelDataTypeSignedInt32 = 9,
237 ImageChannelDataTypeUnsignedInt8 = 10,
238 ImageChannelDataTypeUnsignedInt16 = 11,
239 ImageChannelDataTypeUnsignedInt32 = 12,
240 ImageChannelDataTypeHalfFloat = 13,
241 ImageChannelDataTypeFloat = 14,
242 ImageChannelDataTypeUnormInt24 = 15,
243 ImageChannelDataTypeUnormInt101010_2 = 16,
246 enum ImageOperandsShift {
247 ImageOperandsBiasShift = 0,
248 ImageOperandsLodShift = 1,
249 ImageOperandsGradShift = 2,
250 ImageOperandsConstOffsetShift = 3,
251 ImageOperandsOffsetShift = 4,
252 ImageOperandsConstOffsetsShift = 5,
253 ImageOperandsSampleShift = 6,
254 ImageOperandsMinLodShift = 7,
257 enum ImageOperandsMask {
258 ImageOperandsMaskNone = 0,
259 ImageOperandsBiasMask = 0x00000001,
260 ImageOperandsLodMask = 0x00000002,
261 ImageOperandsGradMask = 0x00000004,
262 ImageOperandsConstOffsetMask = 0x00000008,
263 ImageOperandsOffsetMask = 0x00000010,
264 ImageOperandsConstOffsetsMask = 0x00000020,
265 ImageOperandsSampleMask = 0x00000040,
266 ImageOperandsMinLodMask = 0x00000080,
269 enum FPFastMathModeShift {
270 FPFastMathModeNotNaNShift = 0,
271 FPFastMathModeNotInfShift = 1,
272 FPFastMathModeNSZShift = 2,
273 FPFastMathModeAllowRecipShift = 3,
274 FPFastMathModeFastShift = 4,
277 enum FPFastMathModeMask {
278 FPFastMathModeMaskNone = 0,
279 FPFastMathModeNotNaNMask = 0x00000001,
280 FPFastMathModeNotInfMask = 0x00000002,
281 FPFastMathModeNSZMask = 0x00000004,
282 FPFastMathModeAllowRecipMask = 0x00000008,
283 FPFastMathModeFastMask = 0x00000010,
286 enum FPRoundingMode {
287 FPRoundingModeRTE = 0,
288 FPRoundingModeRTZ = 1,
289 FPRoundingModeRTP = 2,
290 FPRoundingModeRTN = 3,
294 LinkageTypeExport = 0,
295 LinkageTypeImport = 1,
298 enum AccessQualifier {
299 AccessQualifierReadOnly = 0,
300 AccessQualifierWriteOnly = 1,
301 AccessQualifierReadWrite = 2,
304 enum FunctionParameterAttribute {
305 FunctionParameterAttributeZext = 0,
306 FunctionParameterAttributeSext = 1,
307 FunctionParameterAttributeByVal = 2,
308 FunctionParameterAttributeSret = 3,
309 FunctionParameterAttributeNoAlias = 4,
310 FunctionParameterAttributeNoCapture = 5,
311 FunctionParameterAttributeNoWrite = 6,
312 FunctionParameterAttributeNoReadWrite = 7,
316 DecorationRelaxedPrecision = 0,
317 DecorationSpecId = 1,
319 DecorationBufferBlock = 3,
320 DecorationRowMajor = 4,
321 DecorationColMajor = 5,
322 DecorationArrayStride = 6,
323 DecorationMatrixStride = 7,
324 DecorationGLSLShared = 8,
325 DecorationGLSLPacked = 9,
326 DecorationCPacked = 10,
327 DecorationBuiltIn = 11,
328 DecorationNoPerspective = 13,
330 DecorationPatch = 15,
331 DecorationCentroid = 16,
332 DecorationSample = 17,
333 DecorationInvariant = 18,
334 DecorationRestrict = 19,
335 DecorationAliased = 20,
336 DecorationVolatile = 21,
337 DecorationConstant = 22,
338 DecorationCoherent = 23,
339 DecorationNonWritable = 24,
340 DecorationNonReadable = 25,
341 DecorationUniform = 26,
342 DecorationSaturatedConversion = 28,
343 DecorationStream = 29,
344 DecorationLocation = 30,
345 DecorationComponent = 31,
346 DecorationIndex = 32,
347 DecorationBinding = 33,
348 DecorationDescriptorSet = 34,
349 DecorationOffset = 35,
350 DecorationXfbBuffer = 36,
351 DecorationXfbStride = 37,
352 DecorationFuncParamAttr = 38,
353 DecorationFPRoundingMode = 39,
354 DecorationFPFastMathMode = 40,
355 DecorationLinkageAttributes = 41,
356 DecorationNoContraction = 42,
357 DecorationInputAttachmentIndex = 43,
358 DecorationAlignment = 44,
363 BuiltInPointSize = 1,
364 BuiltInClipDistance = 3,
365 BuiltInCullDistance = 4,
367 BuiltInInstanceId = 6,
368 BuiltInPrimitiveId = 7,
369 BuiltInInvocationId = 8,
371 BuiltInViewportIndex = 10,
372 BuiltInTessLevelOuter = 11,
373 BuiltInTessLevelInner = 12,
374 BuiltInTessCoord = 13,
375 BuiltInPatchVertices = 14,
376 BuiltInFragCoord = 15,
377 BuiltInPointCoord = 16,
378 BuiltInFrontFacing = 17,
379 BuiltInSampleId = 18,
380 BuiltInSamplePosition = 19,
381 BuiltInSampleMask = 20,
382 BuiltInFragDepth = 22,
383 BuiltInHelperInvocation = 23,
384 BuiltInNumWorkgroups = 24,
385 BuiltInWorkgroupSize = 25,
386 BuiltInWorkgroupId = 26,
387 BuiltInLocalInvocationId = 27,
388 BuiltInGlobalInvocationId = 28,
389 BuiltInLocalInvocationIndex = 29,
391 BuiltInGlobalSize = 31,
392 BuiltInEnqueuedWorkgroupSize = 32,
393 BuiltInGlobalOffset = 33,
394 BuiltInGlobalLinearId = 34,
395 BuiltInSubgroupSize = 36,
396 BuiltInSubgroupMaxSize = 37,
397 BuiltInNumSubgroups = 38,
398 BuiltInNumEnqueuedSubgroups = 39,
399 BuiltInSubgroupId = 40,
400 BuiltInSubgroupLocalInvocationId = 41,
401 BuiltInVertexIndex = 42,
402 BuiltInInstanceIndex = 43,
405 enum SelectionControlShift {
406 SelectionControlFlattenShift = 0,
407 SelectionControlDontFlattenShift = 1,
410 enum SelectionControlMask {
411 SelectionControlMaskNone = 0,
412 SelectionControlFlattenMask = 0x00000001,
413 SelectionControlDontFlattenMask = 0x00000002,
416 enum LoopControlShift {
417 LoopControlUnrollShift = 0,
418 LoopControlDontUnrollShift = 1,
421 enum LoopControlMask {
422 LoopControlMaskNone = 0,
423 LoopControlUnrollMask = 0x00000001,
424 LoopControlDontUnrollMask = 0x00000002,
427 enum FunctionControlShift {
428 FunctionControlInlineShift = 0,
429 FunctionControlDontInlineShift = 1,
430 FunctionControlPureShift = 2,
431 FunctionControlConstShift = 3,
434 enum FunctionControlMask {
435 FunctionControlMaskNone = 0,
436 FunctionControlInlineMask = 0x00000001,
437 FunctionControlDontInlineMask = 0x00000002,
438 FunctionControlPureMask = 0x00000004,
439 FunctionControlConstMask = 0x00000008,
442 enum MemorySemanticsShift {
443 MemorySemanticsAcquireShift = 1,
444 MemorySemanticsReleaseShift = 2,
445 MemorySemanticsAcquireReleaseShift = 3,
446 MemorySemanticsSequentiallyConsistentShift = 4,
447 MemorySemanticsUniformMemoryShift = 6,
448 MemorySemanticsSubgroupMemoryShift = 7,
449 MemorySemanticsWorkgroupMemoryShift = 8,
450 MemorySemanticsCrossWorkgroupMemoryShift = 9,
451 MemorySemanticsAtomicCounterMemoryShift = 10,
452 MemorySemanticsImageMemoryShift = 11,
455 enum MemorySemanticsMask {
456 MemorySemanticsMaskNone = 0,
457 MemorySemanticsAcquireMask = 0x00000002,
458 MemorySemanticsReleaseMask = 0x00000004,
459 MemorySemanticsAcquireReleaseMask = 0x00000008,
460 MemorySemanticsSequentiallyConsistentMask = 0x00000010,
461 MemorySemanticsUniformMemoryMask = 0x00000040,
462 MemorySemanticsSubgroupMemoryMask = 0x00000080,
463 MemorySemanticsWorkgroupMemoryMask = 0x00000100,
464 MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
465 MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
466 MemorySemanticsImageMemoryMask = 0x00000800,
469 enum MemoryAccessShift {
470 MemoryAccessVolatileShift = 0,
471 MemoryAccessAlignedShift = 1,
472 MemoryAccessNontemporalShift = 2,
475 enum MemoryAccessMask {
476 MemoryAccessMaskNone = 0,
477 MemoryAccessVolatileMask = 0x00000001,
478 MemoryAccessAlignedMask = 0x00000002,
479 MemoryAccessNontemporalMask = 0x00000004,
483 ScopeCrossDevice = 0,
490 enum GroupOperation {
491 GroupOperationReduce = 0,
492 GroupOperationInclusiveScan = 1,
493 GroupOperationExclusiveScan = 2,
496 enum KernelEnqueueFlags {
497 KernelEnqueueFlagsNoWait = 0,
498 KernelEnqueueFlagsWaitKernel = 1,
499 KernelEnqueueFlagsWaitWorkGroup = 2,
502 enum KernelProfilingInfoShift {
503 KernelProfilingInfoCmdExecTimeShift = 0,
506 enum KernelProfilingInfoMask {
507 KernelProfilingInfoMaskNone = 0,
508 KernelProfilingInfoCmdExecTimeMask = 0x00000001,
512 CapabilityMatrix = 0,
513 CapabilityShader = 1,
514 CapabilityGeometry = 2,
515 CapabilityTessellation = 3,
516 CapabilityAddresses = 4,
517 CapabilityLinkage = 5,
518 CapabilityKernel = 6,
519 CapabilityVector16 = 7,
520 CapabilityFloat16Buffer = 8,
521 CapabilityFloat16 = 9,
522 CapabilityFloat64 = 10,
523 CapabilityInt64 = 11,
524 CapabilityInt64Atomics = 12,
525 CapabilityImageBasic = 13,
526 CapabilityImageReadWrite = 14,
527 CapabilityImageMipmap = 15,
528 CapabilityPipes = 17,
529 CapabilityGroups = 18,
530 CapabilityDeviceEnqueue = 19,
531 CapabilityLiteralSampler = 20,
532 CapabilityAtomicStorage = 21,
533 CapabilityInt16 = 22,
534 CapabilityTessellationPointSize = 23,
535 CapabilityGeometryPointSize = 24,
536 CapabilityImageGatherExtended = 25,
537 CapabilityStorageImageMultisample = 27,
538 CapabilityUniformBufferArrayDynamicIndexing = 28,
539 CapabilitySampledImageArrayDynamicIndexing = 29,
540 CapabilityStorageBufferArrayDynamicIndexing = 30,
541 CapabilityStorageImageArrayDynamicIndexing = 31,
542 CapabilityClipDistance = 32,
543 CapabilityCullDistance = 33,
544 CapabilityImageCubeArray = 34,
545 CapabilitySampleRateShading = 35,
546 CapabilityImageRect = 36,
547 CapabilitySampledRect = 37,
548 CapabilityGenericPointer = 38,
550 CapabilityInputAttachment = 40,
551 CapabilitySparseResidency = 41,
552 CapabilityMinLod = 42,
553 CapabilitySampled1D = 43,
554 CapabilityImage1D = 44,
555 CapabilitySampledCubeArray = 45,
556 CapabilitySampledBuffer = 46,
557 CapabilityImageBuffer = 47,
558 CapabilityImageMSArray = 48,
559 CapabilityStorageImageExtendedFormats = 49,
560 CapabilityImageQuery = 50,
561 CapabilityDerivativeControl = 51,
562 CapabilityInterpolationFunction = 52,
563 CapabilityTransformFeedback = 53,
564 CapabilityGeometryStreams = 54,
565 CapabilityStorageImageReadWithoutFormat = 55,
566 CapabilityStorageImageWriteWithoutFormat = 56,
567 CapabilityMultiViewport = 57,
573 OpSourceContinued = 2,
575 OpSourceExtension = 4,
581 OpExtInstImport = 11,
585 OpExecutionMode = 16,
595 OpTypeSampledImage = 27,
597 OpTypeRuntimeArray = 29,
603 OpTypeDeviceEvent = 35,
604 OpTypeReserveId = 36,
607 OpTypeForwardPointer = 39,
609 OpConstantFalse = 42,
611 OpConstantComposite = 44,
612 OpConstantSampler = 45,
614 OpSpecConstantTrue = 48,
615 OpSpecConstantFalse = 49,
617 OpSpecConstantComposite = 51,
618 OpSpecConstantOp = 52,
620 OpFunctionParameter = 55,
624 OpImageTexelPointer = 60,
628 OpCopyMemorySized = 64,
630 OpInBoundsAccessChain = 66,
631 OpPtrAccessChain = 67,
633 OpGenericPtrMemSemantics = 69,
634 OpInBoundsPtrAccessChain = 70,
636 OpMemberDecorate = 72,
637 OpDecorationGroup = 73,
638 OpGroupDecorate = 74,
639 OpGroupMemberDecorate = 75,
640 OpVectorExtractDynamic = 77,
641 OpVectorInsertDynamic = 78,
642 OpVectorShuffle = 79,
643 OpCompositeConstruct = 80,
644 OpCompositeExtract = 81,
645 OpCompositeInsert = 82,
649 OpImageSampleImplicitLod = 87,
650 OpImageSampleExplicitLod = 88,
651 OpImageSampleDrefImplicitLod = 89,
652 OpImageSampleDrefExplicitLod = 90,
653 OpImageSampleProjImplicitLod = 91,
654 OpImageSampleProjExplicitLod = 92,
655 OpImageSampleProjDrefImplicitLod = 93,
656 OpImageSampleProjDrefExplicitLod = 94,
659 OpImageDrefGather = 97,
663 OpImageQueryFormat = 101,
664 OpImageQueryOrder = 102,
665 OpImageQuerySizeLod = 103,
666 OpImageQuerySize = 104,
667 OpImageQueryLod = 105,
668 OpImageQueryLevels = 106,
669 OpImageQuerySamples = 107,
677 OpQuantizeToF16 = 116,
678 OpConvertPtrToU = 117,
679 OpSatConvertSToU = 118,
680 OpSatConvertUToS = 119,
681 OpConvertUToPtr = 120,
682 OpPtrCastToGeneric = 121,
683 OpGenericCastToPtr = 122,
684 OpGenericCastToPtrExplicit = 123,
702 OpVectorTimesScalar = 142,
703 OpMatrixTimesScalar = 143,
704 OpVectorTimesMatrix = 144,
705 OpMatrixTimesVector = 145,
706 OpMatrixTimesMatrix = 146,
707 OpOuterProduct = 147,
711 OpUMulExtended = 151,
712 OpSMulExtended = 152,
720 OpLessOrGreater = 161,
723 OpLogicalEqual = 164,
724 OpLogicalNotEqual = 165,
731 OpUGreaterThan = 172,
732 OpSGreaterThan = 173,
733 OpUGreaterThanEqual = 174,
734 OpSGreaterThanEqual = 175,
737 OpULessThanEqual = 178,
738 OpSLessThanEqual = 179,
741 OpFOrdNotEqual = 182,
742 OpFUnordNotEqual = 183,
743 OpFOrdLessThan = 184,
744 OpFUnordLessThan = 185,
745 OpFOrdGreaterThan = 186,
746 OpFUnordGreaterThan = 187,
747 OpFOrdLessThanEqual = 188,
748 OpFUnordLessThanEqual = 189,
749 OpFOrdGreaterThanEqual = 190,
750 OpFUnordGreaterThanEqual = 191,
751 OpShiftRightLogical = 194,
752 OpShiftRightArithmetic = 195,
753 OpShiftLeftLogical = 196,
758 OpBitFieldInsert = 201,
759 OpBitFieldSExtract = 202,
760 OpBitFieldUExtract = 203,
771 OpFwidthCoarse = 215,
773 OpEndPrimitive = 219,
774 OpEmitStreamVertex = 220,
775 OpEndStreamPrimitive = 221,
776 OpControlBarrier = 224,
777 OpMemoryBarrier = 225,
780 OpAtomicExchange = 229,
781 OpAtomicCompareExchange = 230,
782 OpAtomicCompareExchangeWeak = 231,
783 OpAtomicIIncrement = 232,
784 OpAtomicIDecrement = 233,
796 OpSelectionMerge = 247,
799 OpBranchConditional = 250,
805 OpLifetimeStart = 256,
806 OpLifetimeStop = 257,
807 OpGroupAsyncCopy = 259,
808 OpGroupWaitEvents = 260,
811 OpGroupBroadcast = 263,
822 OpReservedReadPipe = 276,
823 OpReservedWritePipe = 277,
824 OpReserveReadPipePackets = 278,
825 OpReserveWritePipePackets = 279,
826 OpCommitReadPipe = 280,
827 OpCommitWritePipe = 281,
828 OpIsValidReserveId = 282,
829 OpGetNumPipePackets = 283,
830 OpGetMaxPipePackets = 284,
831 OpGroupReserveReadPipePackets = 285,
832 OpGroupReserveWritePipePackets = 286,
833 OpGroupCommitReadPipe = 287,
834 OpGroupCommitWritePipe = 288,
835 OpEnqueueMarker = 291,
836 OpEnqueueKernel = 292,
837 OpGetKernelNDrangeSubGroupCount = 293,
838 OpGetKernelNDrangeMaxSubGroupSize = 294,
839 OpGetKernelWorkGroupSize = 295,
840 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
842 OpReleaseEvent = 298,
843 OpCreateUserEvent = 299,
844 OpIsValidEvent = 300,
845 OpSetUserEventStatus = 301,
846 OpCaptureEventProfilingInfo = 302,
847 OpGetDefaultQueue = 303,
848 OpBuildNDRange = 304,
849 OpImageSparseSampleImplicitLod = 305,
850 OpImageSparseSampleExplicitLod = 306,
851 OpImageSparseSampleDrefImplicitLod = 307,
852 OpImageSparseSampleDrefExplicitLod = 308,
853 OpImageSparseSampleProjImplicitLod = 309,
854 OpImageSparseSampleProjExplicitLod = 310,
855 OpImageSparseSampleProjDrefImplicitLod = 311,
856 OpImageSparseSampleProjDrefExplicitLod = 312,
857 OpImageSparseFetch = 313,
858 OpImageSparseGather = 314,
859 OpImageSparseDrefGather = 315,
860 OpImageSparseTexelsResident = 316,
862 OpAtomicFlagTestAndSet = 318,
863 OpAtomicFlagClear = 319,
864 OpImageSparseRead = 320,
867 // Overload operator| for mask bit combining
869 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
870 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
871 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
872 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
873 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
874 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
875 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
876 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
878 } // end namespace spv
880 #endif // #ifndef spirv_HPP