--- /dev/null
+// Copyright (c) 2014-2015 The Khronos Group Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and/or associated documentation files (the "Materials"),\r
+// to deal in the Materials without restriction, including without limitation\r
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+// and/or sell copies of the Materials, and to permit persons to whom the\r
+// Materials are furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Materials.\r
+// \r
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\r
+// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\r
+// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \r
+// \r
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
+// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\r
+// IN THE MATERIALS.\r
+\r
+// This header is automatically generated by the same tool that creates\r
+// the Binary Section of the SPIR-V specification.\r
+\r
+// Specification revision 31.\r
+// Enumeration tokens for SPIR-V, in various styles:\r
+// C, C++, C++11, JSON, Lua, Python\r
+// \r
+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL\r
+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL\r
+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL\r
+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL\r
+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']\r
+// \r
+// Some tokens act like mask values, which can be OR'd together,\r
+// while others are mutually exclusive. The mask-like ones have\r
+// "Mask" in their name, and a parallel enum that has the shift\r
+// amount (1 << x) for each corresponding enumerant.\r
+\r
+#ifndef spirv_H\r
+#define spirv_H\r
+\r
+namespace spv {\r
+\r
+typedef unsigned int Id;\r
+\r
+static const unsigned int MagicNumber = 0x07230203;\r
+static const unsigned int Version = 99;\r
+static const unsigned int Revision = 31;\r
+static const unsigned int OpCodeMask = 0xffff;\r
+static const unsigned int WordCountShift = 16;\r
+\r
+enum SourceLanguage {\r
+ SourceLanguageUnknown = 0,\r
+ SourceLanguageESSL = 1,\r
+ SourceLanguageGLSL = 2,\r
+ SourceLanguageOpenCL = 3,\r
+};\r
+\r
+enum ExecutionModel {\r
+ ExecutionModelVertex = 0,\r
+ ExecutionModelTessellationControl = 1,\r
+ ExecutionModelTessellationEvaluation = 2,\r
+ ExecutionModelGeometry = 3,\r
+ ExecutionModelFragment = 4,\r
+ ExecutionModelGLCompute = 5,\r
+ ExecutionModelKernel = 6,\r
+};\r
+\r
+enum AddressingModel {\r
+ AddressingModelLogical = 0,\r
+ AddressingModelPhysical32 = 1,\r
+ AddressingModelPhysical64 = 2,\r
+};\r
+\r
+enum MemoryModel {\r
+ MemoryModelSimple = 0,\r
+ MemoryModelGLSL450 = 1,\r
+ MemoryModelOpenCL = 2,\r
+};\r
+\r
+enum ExecutionMode {\r
+ ExecutionModeInvocations = 0,\r
+ ExecutionModeSpacingEqual = 1,\r
+ ExecutionModeSpacingFractionalEven = 2,\r
+ ExecutionModeSpacingFractionalOdd = 3,\r
+ ExecutionModeVertexOrderCw = 4,\r
+ ExecutionModeVertexOrderCcw = 5,\r
+ ExecutionModePixelCenterInteger = 6,\r
+ ExecutionModeOriginUpperLeft = 7,\r
+ ExecutionModeOriginLowerLeft = 8,\r
+ ExecutionModeEarlyFragmentTests = 9,\r
+ ExecutionModePointMode = 10,\r
+ ExecutionModeXfb = 11,\r
+ ExecutionModeDepthReplacing = 12,\r
+ ExecutionModeDepthAny = 13,\r
+ ExecutionModeDepthGreater = 14,\r
+ ExecutionModeDepthLess = 15,\r
+ ExecutionModeDepthUnchanged = 16,\r
+ ExecutionModeLocalSize = 17,\r
+ ExecutionModeLocalSizeHint = 18,\r
+ ExecutionModeInputPoints = 19,\r
+ ExecutionModeInputLines = 20,\r
+ ExecutionModeInputLinesAdjacency = 21,\r
+ ExecutionModeInputTriangles = 22,\r
+ ExecutionModeInputTrianglesAdjacency = 23,\r
+ ExecutionModeInputQuads = 24,\r
+ ExecutionModeInputIsolines = 25,\r
+ ExecutionModeOutputVertices = 26,\r
+ ExecutionModeOutputPoints = 27,\r
+ ExecutionModeOutputLineStrip = 28,\r
+ ExecutionModeOutputTriangleStrip = 29,\r
+ ExecutionModeVecTypeHint = 30,\r
+ ExecutionModeContractionOff = 31,\r
+};\r
+\r
+enum StorageClass {\r
+ StorageClassUniformConstant = 0,\r
+ StorageClassInput = 1,\r
+ StorageClassUniform = 2,\r
+ StorageClassOutput = 3,\r
+ StorageClassWorkgroupLocal = 4,\r
+ StorageClassWorkgroupGlobal = 5,\r
+ StorageClassPrivateGlobal = 6,\r
+ StorageClassFunction = 7,\r
+ StorageClassGeneric = 8,\r
+ StorageClassAtomicCounter = 10,\r
+ StorageClassImage = 11,\r
+};\r
+\r
+enum Dim {\r
+ Dim1D = 0,\r
+ Dim2D = 1,\r
+ Dim3D = 2,\r
+ DimCube = 3,\r
+ DimRect = 4,\r
+ DimBuffer = 5,\r
+};\r
+\r
+enum SamplerAddressingMode {\r
+ SamplerAddressingModeNone = 0,\r
+ SamplerAddressingModeClampToEdge = 1,\r
+ SamplerAddressingModeClamp = 2,\r
+ SamplerAddressingModeRepeat = 3,\r
+ SamplerAddressingModeRepeatMirrored = 4,\r
+};\r
+\r
+enum SamplerFilterMode {\r
+ SamplerFilterModeNearest = 0,\r
+ SamplerFilterModeLinear = 1,\r
+};\r
+\r
+enum ImageFormat {\r
+ ImageFormatUnknown = 0,\r
+ ImageFormatRgba32f = 1,\r
+ ImageFormatRgba16f = 2,\r
+ ImageFormatR32f = 3,\r
+ ImageFormatRgba8 = 4,\r
+ ImageFormatRgba8Snorm = 5,\r
+ ImageFormatRg32f = 6,\r
+ ImageFormatRg16f = 7,\r
+ ImageFormatR11fG11fB10f = 8,\r
+ ImageFormatR16f = 9,\r
+ ImageFormatRgba16 = 10,\r
+ ImageFormatRgb10A2 = 11,\r
+ ImageFormatRg16 = 12,\r
+ ImageFormatRg8 = 13,\r
+ ImageFormatR16 = 14,\r
+ ImageFormatR8 = 15,\r
+ ImageFormatRgba16Snorm = 16,\r
+ ImageFormatRg16Snorm = 17,\r
+ ImageFormatRg8Snorm = 18,\r
+ ImageFormatR16Snorm = 19,\r
+ ImageFormatR8Snorm = 20,\r
+ ImageFormatRgba32i = 21,\r
+ ImageFormatRgba16i = 22,\r
+ ImageFormatRgba8i = 23,\r
+ ImageFormatR32i = 24,\r
+ ImageFormatRg32i = 25,\r
+ ImageFormatRg16i = 26,\r
+ ImageFormatRg8i = 27,\r
+ ImageFormatR16i = 28,\r
+ ImageFormatR8i = 29,\r
+ ImageFormatRgba32ui = 30,\r
+ ImageFormatRgba16ui = 31,\r
+ ImageFormatRgba8ui = 32,\r
+ ImageFormatR32ui = 33,\r
+ ImageFormatRgb10a2ui = 34,\r
+ ImageFormatRg32ui = 35,\r
+ ImageFormatRg16ui = 36,\r
+ ImageFormatRg8ui = 37,\r
+ ImageFormatR16ui = 38,\r
+ ImageFormatR8ui = 39,\r
+};\r
+\r
+enum ImageChannelOrder {\r
+ ImageChannelOrderR = 0,\r
+ ImageChannelOrderA = 1,\r
+ ImageChannelOrderRG = 2,\r
+ ImageChannelOrderRA = 3,\r
+ ImageChannelOrderRGB = 4,\r
+ ImageChannelOrderRGBA = 5,\r
+ ImageChannelOrderBGRA = 6,\r
+ ImageChannelOrderARGB = 7,\r
+ ImageChannelOrderIntensity = 8,\r
+ ImageChannelOrderLuminance = 9,\r
+ ImageChannelOrderRx = 10,\r
+ ImageChannelOrderRGx = 11,\r
+ ImageChannelOrderRGBx = 12,\r
+ ImageChannelOrderDepth = 13,\r
+ ImageChannelOrderDepthStencil = 14,\r
+ ImageChannelOrdersRGB = 15,\r
+ ImageChannelOrdersRGBx = 16,\r
+ ImageChannelOrdersRGBA = 17,\r
+ ImageChannelOrdersBGRA = 18,\r
+};\r
+\r
+enum ImageChannelDataType {\r
+ ImageChannelDataTypeSnormInt8 = 0,\r
+ ImageChannelDataTypeSnormInt16 = 1,\r
+ ImageChannelDataTypeUnormInt8 = 2,\r
+ ImageChannelDataTypeUnormInt16 = 3,\r
+ ImageChannelDataTypeUnormShort565 = 4,\r
+ ImageChannelDataTypeUnormShort555 = 5,\r
+ ImageChannelDataTypeUnormInt101010 = 6,\r
+ ImageChannelDataTypeSignedInt8 = 7,\r
+ ImageChannelDataTypeSignedInt16 = 8,\r
+ ImageChannelDataTypeSignedInt32 = 9,\r
+ ImageChannelDataTypeUnsignedInt8 = 10,\r
+ ImageChannelDataTypeUnsignedInt16 = 11,\r
+ ImageChannelDataTypeUnsignedInt32 = 12,\r
+ ImageChannelDataTypeHalfFloat = 13,\r
+ ImageChannelDataTypeFloat = 14,\r
+ ImageChannelDataTypeUnormInt24 = 15,\r
+};\r
+\r
+enum ImageOperandsShift {\r
+ ImageOperandsBiasShift = 0,\r
+ ImageOperandsLodShift = 1,\r
+ ImageOperandsGradShift = 2,\r
+ ImageOperandsConstOffsetShift = 3,\r
+ ImageOperandsOffsetShift = 4,\r
+ ImageOperandsConstOffsetsShift = 5,\r
+ ImageOperandsSampleShift = 6,\r
+};\r
+\r
+enum ImageOperandsMask {\r
+ ImageOperandsMaskNone = 0,\r
+ ImageOperandsBiasMask = 0x00000001,\r
+ ImageOperandsLodMask = 0x00000002,\r
+ ImageOperandsGradMask = 0x00000004,\r
+ ImageOperandsConstOffsetMask = 0x00000008,\r
+ ImageOperandsOffsetMask = 0x00000010,\r
+ ImageOperandsConstOffsetsMask = 0x00000020,\r
+ ImageOperandsSampleMask = 0x00000040,\r
+};\r
+\r
+enum FPFastMathModeShift {\r
+ FPFastMathModeNotNaNShift = 0,\r
+ FPFastMathModeNotInfShift = 1,\r
+ FPFastMathModeNSZShift = 2,\r
+ FPFastMathModeAllowRecipShift = 3,\r
+ FPFastMathModeFastShift = 4,\r
+};\r
+\r
+enum FPFastMathModeMask {\r
+ FPFastMathModeMaskNone = 0,\r
+ FPFastMathModeNotNaNMask = 0x00000001,\r
+ FPFastMathModeNotInfMask = 0x00000002,\r
+ FPFastMathModeNSZMask = 0x00000004,\r
+ FPFastMathModeAllowRecipMask = 0x00000008,\r
+ FPFastMathModeFastMask = 0x00000010,\r
+};\r
+\r
+enum FPRoundingMode {\r
+ FPRoundingModeRTE = 0,\r
+ FPRoundingModeRTZ = 1,\r
+ FPRoundingModeRTP = 2,\r
+ FPRoundingModeRTN = 3,\r
+};\r
+\r
+enum LinkageType {\r
+ LinkageTypeExport = 0,\r
+ LinkageTypeImport = 1,\r
+};\r
+\r
+enum AccessQualifier {\r
+ AccessQualifierReadOnly = 0,\r
+ AccessQualifierWriteOnly = 1,\r
+ AccessQualifierReadWrite = 2,\r
+};\r
+\r
+enum FunctionParameterAttribute {\r
+ FunctionParameterAttributeZext = 0,\r
+ FunctionParameterAttributeSext = 1,\r
+ FunctionParameterAttributeByVal = 2,\r
+ FunctionParameterAttributeSret = 3,\r
+ FunctionParameterAttributeNoAlias = 4,\r
+ FunctionParameterAttributeNoCapture = 5,\r
+ FunctionParameterAttributeNoWrite = 6,\r
+ FunctionParameterAttributeNoReadWrite = 7,\r
+};\r
+\r
+enum Decoration {\r
+ DecorationRelaxedPrecision = 0,\r
+ DecorationSpecId = 1,\r
+ DecorationBlock = 2,\r
+ DecorationBufferBlock = 3,\r
+ DecorationRowMajor = 4,\r
+ DecorationColMajor = 5,\r
+ DecorationArrayStride = 6,\r
+ DecorationMatrixStride = 7,\r
+ DecorationGLSLShared = 8,\r
+ DecorationGLSLPacked = 9,\r
+ DecorationCPacked = 10,\r
+ DecorationBuiltIn = 11,\r
+ DecorationSmooth = 12,\r
+ DecorationNoperspective = 13,\r
+ DecorationFlat = 14,\r
+ DecorationPatch = 15,\r
+ DecorationCentroid = 16,\r
+ DecorationSample = 17,\r
+ DecorationInvariant = 18,\r
+ DecorationRestrict = 19,\r
+ DecorationAliased = 20,\r
+ DecorationVolatile = 21,\r
+ DecorationConstant = 22,\r
+ DecorationCoherent = 23,\r
+ DecorationNonwritable = 24,\r
+ DecorationNonreadable = 25,\r
+ DecorationUniform = 26,\r
+ DecorationNoStaticUse = 27,\r
+ DecorationSaturatedConversion = 28,\r
+ DecorationStream = 29,\r
+ DecorationLocation = 30,\r
+ DecorationComponent = 31,\r
+ DecorationIndex = 32,\r
+ DecorationBinding = 33,\r
+ DecorationDescriptorSet = 34,\r
+ DecorationOffset = 35,\r
+ DecorationXfbBuffer = 36,\r
+ DecorationXfbStride = 37,\r
+ DecorationFuncParamAttr = 38,\r
+ DecorationFPRoundingMode = 39,\r
+ DecorationFPFastMathMode = 40,\r
+ DecorationLinkageAttributes = 41,\r
+};\r
+\r
+enum BuiltIn {\r
+ BuiltInPosition = 0,\r
+ BuiltInPointSize = 1,\r
+ BuiltInClipDistance = 3,\r
+ BuiltInCullDistance = 4,\r
+ BuiltInVertexId = 5,\r
+ BuiltInInstanceId = 6,\r
+ BuiltInPrimitiveId = 7,\r
+ BuiltInInvocationId = 8,\r
+ BuiltInLayer = 9,\r
+ BuiltInViewportIndex = 10,\r
+ BuiltInTessLevelOuter = 11,\r
+ BuiltInTessLevelInner = 12,\r
+ BuiltInTessCoord = 13,\r
+ BuiltInPatchVertices = 14,\r
+ BuiltInFragCoord = 15,\r
+ BuiltInPointCoord = 16,\r
+ BuiltInFrontFacing = 17,\r
+ BuiltInSampleId = 18,\r
+ BuiltInSamplePosition = 19,\r
+ BuiltInSampleMask = 20,\r
+ BuiltInFragColor = 21,\r
+ BuiltInFragDepth = 22,\r
+ BuiltInHelperInvocation = 23,\r
+ BuiltInNumWorkgroups = 24,\r
+ BuiltInWorkgroupSize = 25,\r
+ BuiltInWorkgroupId = 26,\r
+ BuiltInLocalInvocationId = 27,\r
+ BuiltInGlobalInvocationId = 28,\r
+ BuiltInLocalInvocationIndex = 29,\r
+ BuiltInWorkDim = 30,\r
+ BuiltInGlobalSize = 31,\r
+ BuiltInEnqueuedWorkgroupSize = 32,\r
+ BuiltInGlobalOffset = 33,\r
+ BuiltInGlobalLinearId = 34,\r
+ BuiltInWorkgroupLinearId = 35,\r
+ BuiltInSubgroupSize = 36,\r
+ BuiltInSubgroupMaxSize = 37,\r
+ BuiltInNumSubgroups = 38,\r
+ BuiltInNumEnqueuedSubgroups = 39,\r
+ BuiltInSubgroupId = 40,\r
+ BuiltInSubgroupLocalInvocationId = 41,\r
+};\r
+\r
+enum SelectionControlShift {\r
+ SelectionControlFlattenShift = 0,\r
+ SelectionControlDontFlattenShift = 1,\r
+};\r
+\r
+enum SelectionControlMask {\r
+ SelectionControlMaskNone = 0,\r
+ SelectionControlFlattenMask = 0x00000001,\r
+ SelectionControlDontFlattenMask = 0x00000002,\r
+};\r
+\r
+enum LoopControlShift {\r
+ LoopControlUnrollShift = 0,\r
+ LoopControlDontUnrollShift = 1,\r
+};\r
+\r
+enum LoopControlMask {\r
+ LoopControlMaskNone = 0,\r
+ LoopControlUnrollMask = 0x00000001,\r
+ LoopControlDontUnrollMask = 0x00000002,\r
+};\r
+\r
+enum FunctionControlShift {\r
+ FunctionControlInlineShift = 0,\r
+ FunctionControlDontInlineShift = 1,\r
+ FunctionControlPureShift = 2,\r
+ FunctionControlConstShift = 3,\r
+};\r
+\r
+enum FunctionControlMask {\r
+ FunctionControlMaskNone = 0,\r
+ FunctionControlInlineMask = 0x00000001,\r
+ FunctionControlDontInlineMask = 0x00000002,\r
+ FunctionControlPureMask = 0x00000004,\r
+ FunctionControlConstMask = 0x00000008,\r
+};\r
+\r
+enum MemorySemanticsShift {\r
+ MemorySemanticsRelaxedShift = 0,\r
+ MemorySemanticsSequentiallyConsistentShift = 1,\r
+ MemorySemanticsAcquireShift = 2,\r
+ MemorySemanticsReleaseShift = 3,\r
+ MemorySemanticsUniformMemoryShift = 4,\r
+ MemorySemanticsSubgroupMemoryShift = 5,\r
+ MemorySemanticsWorkgroupLocalMemoryShift = 6,\r
+ MemorySemanticsWorkgroupGlobalMemoryShift = 7,\r
+ MemorySemanticsAtomicCounterMemoryShift = 8,\r
+ MemorySemanticsImageMemoryShift = 9,\r
+};\r
+\r
+enum MemorySemanticsMask {\r
+ MemorySemanticsMaskNone = 0,\r
+ MemorySemanticsRelaxedMask = 0x00000001,\r
+ MemorySemanticsSequentiallyConsistentMask = 0x00000002,\r
+ MemorySemanticsAcquireMask = 0x00000004,\r
+ MemorySemanticsReleaseMask = 0x00000008,\r
+ MemorySemanticsUniformMemoryMask = 0x00000010,\r
+ MemorySemanticsSubgroupMemoryMask = 0x00000020,\r
+ MemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,\r
+ MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,\r
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000100,\r
+ MemorySemanticsImageMemoryMask = 0x00000200,\r
+};\r
+\r
+enum MemoryAccessShift {\r
+ MemoryAccessVolatileShift = 0,\r
+ MemoryAccessAlignedShift = 1,\r
+};\r
+\r
+enum MemoryAccessMask {\r
+ MemoryAccessMaskNone = 0,\r
+ MemoryAccessVolatileMask = 0x00000001,\r
+ MemoryAccessAlignedMask = 0x00000002,\r
+};\r
+\r
+enum Scope {\r
+ ScopeCrossDevice = 0,\r
+ ScopeDevice = 1,\r
+ ScopeWorkgroup = 2,\r
+ ScopeSubgroup = 3,\r
+ ScopeInvocation = 4,\r
+};\r
+\r
+enum GroupOperation {\r
+ GroupOperationReduce = 0,\r
+ GroupOperationInclusiveScan = 1,\r
+ GroupOperationExclusiveScan = 2,\r
+};\r
+\r
+enum KernelEnqueueFlags {\r
+ KernelEnqueueFlagsNoWait = 0,\r
+ KernelEnqueueFlagsWaitKernel = 1,\r
+ KernelEnqueueFlagsWaitWorkGroup = 2,\r
+};\r
+\r
+enum KernelProfilingInfoShift {\r
+ KernelProfilingInfoCmdExecTimeShift = 0,\r
+};\r
+\r
+enum KernelProfilingInfoMask {\r
+ KernelProfilingInfoMaskNone = 0,\r
+ KernelProfilingInfoCmdExecTimeMask = 0x00000001,\r
+};\r
+\r
+enum Capability {\r
+ CapabilityMatrix = 0,\r
+ CapabilityShader = 1,\r
+ CapabilityGeometry = 2,\r
+ CapabilityTessellation = 3,\r
+ CapabilityAddresses = 4,\r
+ CapabilityLinkage = 5,\r
+ CapabilityKernel = 6,\r
+ CapabilityVector16 = 7,\r
+ CapabilityFloat16Buffer = 8,\r
+ CapabilityFloat16 = 9,\r
+ CapabilityFloat64 = 10,\r
+ CapabilityInt64 = 11,\r
+ CapabilityInt64Atomics = 12,\r
+ CapabilityImageBasic = 13,\r
+ CapabilityImageReadWrite = 14,\r
+ CapabilityImageMipmap = 15,\r
+ CapabilityImageSRGBWrite = 16,\r
+ CapabilityPipes = 17,\r
+ CapabilityGroups = 18,\r
+ CapabilityDeviceEnqueue = 19,\r
+ CapabilityLiteralSampler = 20,\r
+ CapabilityAtomicStorage = 21,\r
+ CapabilityInt16 = 22,\r
+ CapabilityTessellationPointSize = 23,\r
+ CapabilityGeometryPointSize = 24,\r
+ CapabilityImageGatherExtended = 25,\r
+ CapabilityStorageImageExtendedFormats = 26,\r
+ CapabilityStorageImageMultisample = 27,\r
+ CapabilityUniformBufferArrayDynamicIndexing = 28,\r
+ CapabilitySampledImageArrayDynamicIndexing = 29,\r
+ CapabilityStorageBufferArrayDynamicIndexing = 30,\r
+ CapabilityStorageImageArrayDynamicIndexing = 31,\r
+ CapabilityClipDistance = 32,\r
+ CapabilityCullDistance = 33,\r
+ CapabilityImageCubeArray = 34,\r
+ CapabilitySampleRateShading = 35,\r
+};\r
+\r
+enum Op {\r
+ OpNop = 0,\r
+ OpUndef = 1,\r
+ OpSource = 3,\r
+ OpSourceExtension = 4,\r
+ OpName = 5,\r
+ OpMemberName = 6,\r
+ OpString = 7,\r
+ OpLine = 8,\r
+ OpExtension = 10,\r
+ OpExtInstImport = 11,\r
+ OpExtInst = 12,\r
+ OpMemoryModel = 14,\r
+ OpEntryPoint = 15,\r
+ OpExecutionMode = 16,\r
+ OpCapability = 17,\r
+ OpTypeVoid = 19,\r
+ OpTypeBool = 20,\r
+ OpTypeInt = 21,\r
+ OpTypeFloat = 22,\r
+ OpTypeVector = 23,\r
+ OpTypeMatrix = 24,\r
+ OpTypeImage = 25,\r
+ OpTypeSampler = 26,\r
+ OpTypeSampledImage = 27,\r
+ OpTypeArray = 28,\r
+ OpTypeRuntimeArray = 29,\r
+ OpTypeStruct = 30,\r
+ OpTypeOpaque = 31,\r
+ OpTypePointer = 32,\r
+ OpTypeFunction = 33,\r
+ OpTypeEvent = 34,\r
+ OpTypeDeviceEvent = 35,\r
+ OpTypeReserveId = 36,\r
+ OpTypeQueue = 37,\r
+ OpTypePipe = 38,\r
+ OpConstantTrue = 41,\r
+ OpConstantFalse = 42,\r
+ OpConstant = 43,\r
+ OpConstantComposite = 44,\r
+ OpConstantSampler = 45,\r
+ OpConstantNull = 46,\r
+ OpSpecConstantTrue = 48,\r
+ OpSpecConstantFalse = 49,\r
+ OpSpecConstant = 50,\r
+ OpSpecConstantComposite = 51,\r
+ OpSpecConstantOp = 52,\r
+ OpFunction = 54,\r
+ OpFunctionParameter = 55,\r
+ OpFunctionEnd = 56,\r
+ OpFunctionCall = 57,\r
+ OpVariable = 59,\r
+ OpImageTexelPointer = 60,\r
+ OpLoad = 61,\r
+ OpStore = 62,\r
+ OpCopyMemory = 63,\r
+ OpCopyMemorySized = 64,\r
+ OpAccessChain = 65,\r
+ OpInBoundsAccessChain = 66,\r
+ OpPtrAccessChain = 67,\r
+ OpArrayLength = 68,\r
+ OpGenericPtrMemSemantics = 69,\r
+ OpDecorate = 71,\r
+ OpMemberDecorate = 72,\r
+ OpDecorationGroup = 73,\r
+ OpGroupDecorate = 74,\r
+ OpGroupMemberDecorate = 75,\r
+ OpVectorExtractDynamic = 77,\r
+ OpVectorInsertDynamic = 78,\r
+ OpVectorShuffle = 79,\r
+ OpCompositeConstruct = 80,\r
+ OpCompositeExtract = 81,\r
+ OpCompositeInsert = 82,\r
+ OpCopyObject = 83,\r
+ OpTranspose = 84,\r
+ OpSampledImage = 86,\r
+ OpImageSampleImplicitLod = 87,\r
+ OpImageSampleExplicitLod = 88,\r
+ OpImageSampleDrefImplicitLod = 89,\r
+ OpImageSampleDrefExplicitLod = 90,\r
+ OpImageSampleProjImplicitLod = 91,\r
+ OpImageSampleProjExplicitLod = 92,\r
+ OpImageSampleProjDrefImplicitLod = 93,\r
+ OpImageSampleProjDrefExplicitLod = 94,\r
+ OpImageFetch = 95,\r
+ OpImageGather = 96,\r
+ OpImageDrefGather = 97,\r
+ OpImageRead = 98,\r
+ OpImageWrite = 99,\r
+ OpImageQueryDim = 100,\r
+ OpImageQueryFormat = 101,\r
+ OpImageQueryOrder = 102,\r
+ OpImageQuerySizeLod = 103,\r
+ OpImageQuerySize = 104,\r
+ OpImageQueryLod = 105,\r
+ OpImageQueryLevels = 106,\r
+ OpImageQuerySamples = 107,\r
+ OpConvertFToU = 109,\r
+ OpConvertFToS = 110,\r
+ OpConvertSToF = 111,\r
+ OpConvertUToF = 112,\r
+ OpUConvert = 113,\r
+ OpSConvert = 114,\r
+ OpFConvert = 115,\r
+ OpQuantizeToF16 = 116,\r
+ OpConvertPtrToU = 117,\r
+ OpSatConvertSToU = 118,\r
+ OpSatConvertUToS = 119,\r
+ OpConvertUToPtr = 120,\r
+ OpPtrCastToGeneric = 121,\r
+ OpGenericCastToPtr = 122,\r
+ OpGenericCastToPtrExplicit = 123,\r
+ OpBitcast = 124,\r
+ OpSNegate = 126,\r
+ OpFNegate = 127,\r
+ OpIAdd = 128,\r
+ OpFAdd = 129,\r
+ OpISub = 130,\r
+ OpFSub = 131,\r
+ OpIMul = 132,\r
+ OpFMul = 133,\r
+ OpUDiv = 134,\r
+ OpSDiv = 135,\r
+ OpFDiv = 136,\r
+ OpUMod = 137,\r
+ OpSRem = 138,\r
+ OpSMod = 139,\r
+ OpFRem = 140,\r
+ OpFMod = 141,\r
+ OpVectorTimesScalar = 142,\r
+ OpMatrixTimesScalar = 143,\r
+ OpVectorTimesMatrix = 144,\r
+ OpMatrixTimesVector = 145,\r
+ OpMatrixTimesMatrix = 146,\r
+ OpOuterProduct = 147,\r
+ OpDot = 148,\r
+ OpIAddCarry = 149,\r
+ OpISubBorrow = 150,\r
+ OpIMulExtended = 151,\r
+ OpAny = 154,\r
+ OpAll = 155,\r
+ OpIsNan = 156,\r
+ OpIsInf = 157,\r
+ OpIsFinite = 158,\r
+ OpIsNormal = 159,\r
+ OpSignBitSet = 160,\r
+ OpLessOrGreater = 161,\r
+ OpOrdered = 162,\r
+ OpUnordered = 163,\r
+ OpLogicalEqual = 164,\r
+ OpLogicalNotEqual = 165,\r
+ OpLogicalOr = 166,\r
+ OpLogicalAnd = 167,\r
+ OpLogicalNot = 168,\r
+ OpSelect = 169,\r
+ OpIEqual = 170,\r
+ OpINotEqual = 171,\r
+ OpUGreaterThan = 172,\r
+ OpSGreaterThan = 173,\r
+ OpUGreaterThanEqual = 174,\r
+ OpSGreaterThanEqual = 175,\r
+ OpULessThan = 176,\r
+ OpSLessThan = 177,\r
+ OpULessThanEqual = 178,\r
+ OpSLessThanEqual = 179,\r
+ OpFOrdEqual = 180,\r
+ OpFUnordEqual = 181,\r
+ OpFOrdNotEqual = 182,\r
+ OpFUnordNotEqual = 183,\r
+ OpFOrdLessThan = 184,\r
+ OpFUnordLessThan = 185,\r
+ OpFOrdGreaterThan = 186,\r
+ OpFUnordGreaterThan = 187,\r
+ OpFOrdLessThanEqual = 188,\r
+ OpFUnordLessThanEqual = 189,\r
+ OpFOrdGreaterThanEqual = 190,\r
+ OpFUnordGreaterThanEqual = 191,\r
+ OpShiftRightLogical = 194,\r
+ OpShiftRightArithmetic = 195,\r
+ OpShiftLeftLogical = 196,\r
+ OpBitwiseOr = 197,\r
+ OpBitwiseXor = 198,\r
+ OpBitwiseAnd = 199,\r
+ OpNot = 200,\r
+ OpBitFieldInsert = 201,\r
+ OpBitFieldSExtract = 202,\r
+ OpBitFieldUExtract = 203,\r
+ OpBitReverse = 204,\r
+ OpBitCount = 205,\r
+ OpDPdx = 207,\r
+ OpDPdy = 208,\r
+ OpFwidth = 209,\r
+ OpDPdxFine = 210,\r
+ OpDPdyFine = 211,\r
+ OpFwidthFine = 212,\r
+ OpDPdxCoarse = 213,\r
+ OpDPdyCoarse = 214,\r
+ OpFwidthCoarse = 215,\r
+ OpEmitVertex = 218,\r
+ OpEndPrimitive = 219,\r
+ OpEmitStreamVertex = 220,\r
+ OpEndStreamPrimitive = 221,\r
+ OpControlBarrier = 224,\r
+ OpMemoryBarrier = 225,\r
+ OpAtomicLoad = 227,\r
+ OpAtomicStore = 228,\r
+ OpAtomicExchange = 229,\r
+ OpAtomicCompareExchange = 230,\r
+ OpAtomicCompareExchangeWeak = 231,\r
+ OpAtomicIIncrement = 232,\r
+ OpAtomicIDecrement = 233,\r
+ OpAtomicIAdd = 234,\r
+ OpAtomicISub = 235,\r
+ OpAtomicSMin = 236,\r
+ OpAtomicUMin = 237,\r
+ OpAtomicSMax = 238,\r
+ OpAtomicUMax = 239,\r
+ OpAtomicAnd = 240,\r
+ OpAtomicOr = 241,\r
+ OpAtomicXor = 242,\r
+ OpPhi = 245,\r
+ OpLoopMerge = 246,\r
+ OpSelectionMerge = 247,\r
+ OpLabel = 248,\r
+ OpBranch = 249,\r
+ OpBranchConditional = 250,\r
+ OpSwitch = 251,\r
+ OpKill = 252,\r
+ OpReturn = 253,\r
+ OpReturnValue = 254,\r
+ OpUnreachable = 255,\r
+ OpLifetimeStart = 256,\r
+ OpLifetimeStop = 257,\r
+ OpAsyncGroupCopy = 259,\r
+ OpWaitGroupEvents = 260,\r
+ OpGroupAll = 261,\r
+ OpGroupAny = 262,\r
+ OpGroupBroadcast = 263,\r
+ OpGroupIAdd = 264,\r
+ OpGroupFAdd = 265,\r
+ OpGroupFMin = 266,\r
+ OpGroupUMin = 267,\r
+ OpGroupSMin = 268,\r
+ OpGroupFMax = 269,\r
+ OpGroupUMax = 270,\r
+ OpGroupSMax = 271,\r
+ OpReadPipe = 274,\r
+ OpWritePipe = 275,\r
+ OpReservedReadPipe = 276,\r
+ OpReservedWritePipe = 277,\r
+ OpReserveReadPipePackets = 278,\r
+ OpReserveWritePipePackets = 279,\r
+ OpCommitReadPipe = 280,\r
+ OpCommitWritePipe = 281,\r
+ OpIsValidReserveId = 282,\r
+ OpGetNumPipePackets = 283,\r
+ OpGetMaxPipePackets = 284,\r
+ OpGroupReserveReadPipePackets = 285,\r
+ OpGroupReserveWritePipePackets = 286,\r
+ OpGroupCommitReadPipe = 287,\r
+ OpGroupCommitWritePipe = 288,\r
+ OpEnqueueMarker = 291,\r
+ OpEnqueueKernel = 292,\r
+ OpGetKernelNDrangeSubGroupCount = 293,\r
+ OpGetKernelNDrangeMaxSubGroupSize = 294,\r
+ OpGetKernelWorkGroupSize = 295,\r
+ OpGetKernelPreferredWorkGroupSizeMultiple = 296,\r
+ OpRetainEvent = 297,\r
+ OpReleaseEvent = 298,\r
+ OpCreateUserEvent = 299,\r
+ OpIsValidEvent = 300,\r
+ OpSetUserEventStatus = 301,\r
+ OpCaptureEventProfilingInfo = 302,\r
+ OpGetDefaultQueue = 303,\r
+ OpBuildNDRange = 304,\r
+};\r
+\r
+// Overload operator| for mask bit combining\r
+\r
+inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }\r
+inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }\r
+inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }\r
+inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }\r
+inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }\r
+inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }\r
+inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }\r
+inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }\r
+\r
+} // end namespace spv\r
+\r
+#endif // #ifndef spirv_H\r
+\r