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