|  | /* | 
|  | ** 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_H | 
|  | #define spirv_H | 
|  |  | 
|  | typedef unsigned int SpvId; | 
|  |  | 
|  | #define SPV_VERSION 0x10000 | 
|  | #define SPV_REVISION 4 | 
|  |  | 
|  | static const unsigned int SpvMagicNumber = 0x07230203; | 
|  | static const unsigned int SpvVersion = 0x00010000; | 
|  | static const unsigned int SpvRevision = 4; | 
|  | static const unsigned int SpvOpCodeMask = 0xffff; | 
|  | static const unsigned int SpvWordCountShift = 16; | 
|  |  | 
|  | typedef enum SpvSourceLanguage_ { | 
|  | SpvSourceLanguageUnknown = 0, | 
|  | SpvSourceLanguageESSL = 1, | 
|  | SpvSourceLanguageGLSL = 2, | 
|  | SpvSourceLanguageOpenCL_C = 3, | 
|  | SpvSourceLanguageOpenCL_CPP = 4, | 
|  | } SpvSourceLanguage; | 
|  |  | 
|  | typedef enum SpvExecutionModel_ { | 
|  | SpvExecutionModelVertex = 0, | 
|  | SpvExecutionModelTessellationControl = 1, | 
|  | SpvExecutionModelTessellationEvaluation = 2, | 
|  | SpvExecutionModelGeometry = 3, | 
|  | SpvExecutionModelFragment = 4, | 
|  | SpvExecutionModelGLCompute = 5, | 
|  | SpvExecutionModelKernel = 6, | 
|  | } SpvExecutionModel; | 
|  |  | 
|  | typedef enum SpvAddressingModel_ { | 
|  | SpvAddressingModelLogical = 0, | 
|  | SpvAddressingModelPhysical32 = 1, | 
|  | SpvAddressingModelPhysical64 = 2, | 
|  | } SpvAddressingModel; | 
|  |  | 
|  | typedef enum SpvMemoryModel_ { | 
|  | SpvMemoryModelSimple = 0, | 
|  | SpvMemoryModelGLSL450 = 1, | 
|  | SpvMemoryModelOpenCL = 2, | 
|  | } SpvMemoryModel; | 
|  |  | 
|  | typedef enum SpvExecutionMode_ { | 
|  | SpvExecutionModeInvocations = 0, | 
|  | SpvExecutionModeSpacingEqual = 1, | 
|  | SpvExecutionModeSpacingFractionalEven = 2, | 
|  | SpvExecutionModeSpacingFractionalOdd = 3, | 
|  | SpvExecutionModeVertexOrderCw = 4, | 
|  | SpvExecutionModeVertexOrderCcw = 5, | 
|  | SpvExecutionModePixelCenterInteger = 6, | 
|  | SpvExecutionModeOriginUpperLeft = 7, | 
|  | SpvExecutionModeOriginLowerLeft = 8, | 
|  | SpvExecutionModeEarlyFragmentTests = 9, | 
|  | SpvExecutionModePointMode = 10, | 
|  | SpvExecutionModeXfb = 11, | 
|  | SpvExecutionModeDepthReplacing = 12, | 
|  | SpvExecutionModeDepthGreater = 14, | 
|  | SpvExecutionModeDepthLess = 15, | 
|  | SpvExecutionModeDepthUnchanged = 16, | 
|  | SpvExecutionModeLocalSize = 17, | 
|  | SpvExecutionModeLocalSizeHint = 18, | 
|  | SpvExecutionModeInputPoints = 19, | 
|  | SpvExecutionModeInputLines = 20, | 
|  | SpvExecutionModeInputLinesAdjacency = 21, | 
|  | SpvExecutionModeTriangles = 22, | 
|  | SpvExecutionModeInputTrianglesAdjacency = 23, | 
|  | SpvExecutionModeQuads = 24, | 
|  | SpvExecutionModeIsolines = 25, | 
|  | SpvExecutionModeOutputVertices = 26, | 
|  | SpvExecutionModeOutputPoints = 27, | 
|  | SpvExecutionModeOutputLineStrip = 28, | 
|  | SpvExecutionModeOutputTriangleStrip = 29, | 
|  | SpvExecutionModeVecTypeHint = 30, | 
|  | SpvExecutionModeContractionOff = 31, | 
|  | } SpvExecutionMode; | 
|  |  | 
|  | typedef enum SpvStorageClass_ { | 
|  | SpvStorageClassUniformConstant = 0, | 
|  | SpvStorageClassInput = 1, | 
|  | SpvStorageClassUniform = 2, | 
|  | SpvStorageClassOutput = 3, | 
|  | SpvStorageClassWorkgroup = 4, | 
|  | SpvStorageClassCrossWorkgroup = 5, | 
|  | SpvStorageClassPrivate = 6, | 
|  | SpvStorageClassFunction = 7, | 
|  | SpvStorageClassGeneric = 8, | 
|  | SpvStorageClassPushConstant = 9, | 
|  | SpvStorageClassAtomicCounter = 10, | 
|  | SpvStorageClassImage = 11, | 
|  | } SpvStorageClass; | 
|  |  | 
|  | typedef enum SpvDim_ { | 
|  | SpvDim1D = 0, | 
|  | SpvDim2D = 1, | 
|  | SpvDim3D = 2, | 
|  | SpvDimCube = 3, | 
|  | SpvDimRect = 4, | 
|  | SpvDimBuffer = 5, | 
|  | SpvDimSubpassData = 6, | 
|  | } SpvDim; | 
|  |  | 
|  | typedef enum SpvSamplerAddressingMode_ { | 
|  | SpvSamplerAddressingModeNone = 0, | 
|  | SpvSamplerAddressingModeClampToEdge = 1, | 
|  | SpvSamplerAddressingModeClamp = 2, | 
|  | SpvSamplerAddressingModeRepeat = 3, | 
|  | SpvSamplerAddressingModeRepeatMirrored = 4, | 
|  | } SpvSamplerAddressingMode; | 
|  |  | 
|  | typedef enum SpvSamplerFilterMode_ { | 
|  | SpvSamplerFilterModeNearest = 0, | 
|  | SpvSamplerFilterModeLinear = 1, | 
|  | } SpvSamplerFilterMode; | 
|  |  | 
|  | typedef enum SpvImageFormat_ { | 
|  | SpvImageFormatUnknown = 0, | 
|  | SpvImageFormatRgba32f = 1, | 
|  | SpvImageFormatRgba16f = 2, | 
|  | SpvImageFormatR32f = 3, | 
|  | SpvImageFormatRgba8 = 4, | 
|  | SpvImageFormatRgba8Snorm = 5, | 
|  | SpvImageFormatRg32f = 6, | 
|  | SpvImageFormatRg16f = 7, | 
|  | SpvImageFormatR11fG11fB10f = 8, | 
|  | SpvImageFormatR16f = 9, | 
|  | SpvImageFormatRgba16 = 10, | 
|  | SpvImageFormatRgb10A2 = 11, | 
|  | SpvImageFormatRg16 = 12, | 
|  | SpvImageFormatRg8 = 13, | 
|  | SpvImageFormatR16 = 14, | 
|  | SpvImageFormatR8 = 15, | 
|  | SpvImageFormatRgba16Snorm = 16, | 
|  | SpvImageFormatRg16Snorm = 17, | 
|  | SpvImageFormatRg8Snorm = 18, | 
|  | SpvImageFormatR16Snorm = 19, | 
|  | SpvImageFormatR8Snorm = 20, | 
|  | SpvImageFormatRgba32i = 21, | 
|  | SpvImageFormatRgba16i = 22, | 
|  | SpvImageFormatRgba8i = 23, | 
|  | SpvImageFormatR32i = 24, | 
|  | SpvImageFormatRg32i = 25, | 
|  | SpvImageFormatRg16i = 26, | 
|  | SpvImageFormatRg8i = 27, | 
|  | SpvImageFormatR16i = 28, | 
|  | SpvImageFormatR8i = 29, | 
|  | SpvImageFormatRgba32ui = 30, | 
|  | SpvImageFormatRgba16ui = 31, | 
|  | SpvImageFormatRgba8ui = 32, | 
|  | SpvImageFormatR32ui = 33, | 
|  | SpvImageFormatRgb10a2ui = 34, | 
|  | SpvImageFormatRg32ui = 35, | 
|  | SpvImageFormatRg16ui = 36, | 
|  | SpvImageFormatRg8ui = 37, | 
|  | SpvImageFormatR16ui = 38, | 
|  | SpvImageFormatR8ui = 39, | 
|  | } SpvImageFormat; | 
|  |  | 
|  | typedef enum SpvImageChannelOrder_ { | 
|  | SpvImageChannelOrderR = 0, | 
|  | SpvImageChannelOrderA = 1, | 
|  | SpvImageChannelOrderRG = 2, | 
|  | SpvImageChannelOrderRA = 3, | 
|  | SpvImageChannelOrderRGB = 4, | 
|  | SpvImageChannelOrderRGBA = 5, | 
|  | SpvImageChannelOrderBGRA = 6, | 
|  | SpvImageChannelOrderARGB = 7, | 
|  | SpvImageChannelOrderIntensity = 8, | 
|  | SpvImageChannelOrderLuminance = 9, | 
|  | SpvImageChannelOrderRx = 10, | 
|  | SpvImageChannelOrderRGx = 11, | 
|  | SpvImageChannelOrderRGBx = 12, | 
|  | SpvImageChannelOrderDepth = 13, | 
|  | SpvImageChannelOrderDepthStencil = 14, | 
|  | SpvImageChannelOrdersRGB = 15, | 
|  | SpvImageChannelOrdersRGBx = 16, | 
|  | SpvImageChannelOrdersRGBA = 17, | 
|  | SpvImageChannelOrdersBGRA = 18, | 
|  | } SpvImageChannelOrder; | 
|  |  | 
|  | typedef enum SpvImageChannelDataType_ { | 
|  | SpvImageChannelDataTypeSnormInt8 = 0, | 
|  | SpvImageChannelDataTypeSnormInt16 = 1, | 
|  | SpvImageChannelDataTypeUnormInt8 = 2, | 
|  | SpvImageChannelDataTypeUnormInt16 = 3, | 
|  | SpvImageChannelDataTypeUnormShort565 = 4, | 
|  | SpvImageChannelDataTypeUnormShort555 = 5, | 
|  | SpvImageChannelDataTypeUnormInt101010 = 6, | 
|  | SpvImageChannelDataTypeSignedInt8 = 7, | 
|  | SpvImageChannelDataTypeSignedInt16 = 8, | 
|  | SpvImageChannelDataTypeSignedInt32 = 9, | 
|  | SpvImageChannelDataTypeUnsignedInt8 = 10, | 
|  | SpvImageChannelDataTypeUnsignedInt16 = 11, | 
|  | SpvImageChannelDataTypeUnsignedInt32 = 12, | 
|  | SpvImageChannelDataTypeHalfFloat = 13, | 
|  | SpvImageChannelDataTypeFloat = 14, | 
|  | SpvImageChannelDataTypeUnormInt24 = 15, | 
|  | SpvImageChannelDataTypeUnormInt101010_2 = 16, | 
|  | } SpvImageChannelDataType; | 
|  |  | 
|  | typedef enum SpvImageOperandsShift_ { | 
|  | SpvImageOperandsBiasShift = 0, | 
|  | SpvImageOperandsLodShift = 1, | 
|  | SpvImageOperandsGradShift = 2, | 
|  | SpvImageOperandsConstOffsetShift = 3, | 
|  | SpvImageOperandsOffsetShift = 4, | 
|  | SpvImageOperandsConstOffsetsShift = 5, | 
|  | SpvImageOperandsSampleShift = 6, | 
|  | SpvImageOperandsMinLodShift = 7, | 
|  | } SpvImageOperandsShift; | 
|  |  | 
|  | typedef enum SpvImageOperandsMask_ { | 
|  | SpvImageOperandsMaskNone = 0, | 
|  | SpvImageOperandsBiasMask = 0x00000001, | 
|  | SpvImageOperandsLodMask = 0x00000002, | 
|  | SpvImageOperandsGradMask = 0x00000004, | 
|  | SpvImageOperandsConstOffsetMask = 0x00000008, | 
|  | SpvImageOperandsOffsetMask = 0x00000010, | 
|  | SpvImageOperandsConstOffsetsMask = 0x00000020, | 
|  | SpvImageOperandsSampleMask = 0x00000040, | 
|  | SpvImageOperandsMinLodMask = 0x00000080, | 
|  | } SpvImageOperandsMask; | 
|  |  | 
|  | typedef enum SpvFPFastMathModeShift_ { | 
|  | SpvFPFastMathModeNotNaNShift = 0, | 
|  | SpvFPFastMathModeNotInfShift = 1, | 
|  | SpvFPFastMathModeNSZShift = 2, | 
|  | SpvFPFastMathModeAllowRecipShift = 3, | 
|  | SpvFPFastMathModeFastShift = 4, | 
|  | } SpvFPFastMathModeShift; | 
|  |  | 
|  | typedef enum SpvFPFastMathModeMask_ { | 
|  | SpvFPFastMathModeMaskNone = 0, | 
|  | SpvFPFastMathModeNotNaNMask = 0x00000001, | 
|  | SpvFPFastMathModeNotInfMask = 0x00000002, | 
|  | SpvFPFastMathModeNSZMask = 0x00000004, | 
|  | SpvFPFastMathModeAllowRecipMask = 0x00000008, | 
|  | SpvFPFastMathModeFastMask = 0x00000010, | 
|  | } SpvFPFastMathModeMask; | 
|  |  | 
|  | typedef enum SpvFPRoundingMode_ { | 
|  | SpvFPRoundingModeRTE = 0, | 
|  | SpvFPRoundingModeRTZ = 1, | 
|  | SpvFPRoundingModeRTP = 2, | 
|  | SpvFPRoundingModeRTN = 3, | 
|  | } SpvFPRoundingMode; | 
|  |  | 
|  | typedef enum SpvLinkageType_ { | 
|  | SpvLinkageTypeExport = 0, | 
|  | SpvLinkageTypeImport = 1, | 
|  | } SpvLinkageType; | 
|  |  | 
|  | typedef enum SpvAccessQualifier_ { | 
|  | SpvAccessQualifierReadOnly = 0, | 
|  | SpvAccessQualifierWriteOnly = 1, | 
|  | SpvAccessQualifierReadWrite = 2, | 
|  | } SpvAccessQualifier; | 
|  |  | 
|  | typedef enum SpvFunctionParameterAttribute_ { | 
|  | SpvFunctionParameterAttributeZext = 0, | 
|  | SpvFunctionParameterAttributeSext = 1, | 
|  | SpvFunctionParameterAttributeByVal = 2, | 
|  | SpvFunctionParameterAttributeSret = 3, | 
|  | SpvFunctionParameterAttributeNoAlias = 4, | 
|  | SpvFunctionParameterAttributeNoCapture = 5, | 
|  | SpvFunctionParameterAttributeNoWrite = 6, | 
|  | SpvFunctionParameterAttributeNoReadWrite = 7, | 
|  | } SpvFunctionParameterAttribute; | 
|  |  | 
|  | typedef enum SpvDecoration_ { | 
|  | SpvDecorationRelaxedPrecision = 0, | 
|  | SpvDecorationSpecId = 1, | 
|  | SpvDecorationBlock = 2, | 
|  | SpvDecorationBufferBlock = 3, | 
|  | SpvDecorationRowMajor = 4, | 
|  | SpvDecorationColMajor = 5, | 
|  | SpvDecorationArrayStride = 6, | 
|  | SpvDecorationMatrixStride = 7, | 
|  | SpvDecorationGLSLShared = 8, | 
|  | SpvDecorationGLSLPacked = 9, | 
|  | SpvDecorationCPacked = 10, | 
|  | SpvDecorationBuiltIn = 11, | 
|  | SpvDecorationNoPerspective = 13, | 
|  | SpvDecorationFlat = 14, | 
|  | SpvDecorationPatch = 15, | 
|  | SpvDecorationCentroid = 16, | 
|  | SpvDecorationSample = 17, | 
|  | SpvDecorationInvariant = 18, | 
|  | SpvDecorationRestrict = 19, | 
|  | SpvDecorationAliased = 20, | 
|  | SpvDecorationVolatile = 21, | 
|  | SpvDecorationConstant = 22, | 
|  | SpvDecorationCoherent = 23, | 
|  | SpvDecorationNonWritable = 24, | 
|  | SpvDecorationNonReadable = 25, | 
|  | SpvDecorationUniform = 26, | 
|  | SpvDecorationSaturatedConversion = 28, | 
|  | SpvDecorationStream = 29, | 
|  | SpvDecorationLocation = 30, | 
|  | SpvDecorationComponent = 31, | 
|  | SpvDecorationIndex = 32, | 
|  | SpvDecorationBinding = 33, | 
|  | SpvDecorationDescriptorSet = 34, | 
|  | SpvDecorationOffset = 35, | 
|  | SpvDecorationXfbBuffer = 36, | 
|  | SpvDecorationXfbStride = 37, | 
|  | SpvDecorationFuncParamAttr = 38, | 
|  | SpvDecorationFPRoundingMode = 39, | 
|  | SpvDecorationFPFastMathMode = 40, | 
|  | SpvDecorationLinkageAttributes = 41, | 
|  | SpvDecorationNoContraction = 42, | 
|  | SpvDecorationInputAttachmentIndex = 43, | 
|  | SpvDecorationAlignment = 44, | 
|  | } SpvDecoration; | 
|  |  | 
|  | typedef enum SpvBuiltIn_ { | 
|  | SpvBuiltInPosition = 0, | 
|  | SpvBuiltInPointSize = 1, | 
|  | SpvBuiltInClipDistance = 3, | 
|  | SpvBuiltInCullDistance = 4, | 
|  | SpvBuiltInVertexId = 5, | 
|  | SpvBuiltInInstanceId = 6, | 
|  | SpvBuiltInPrimitiveId = 7, | 
|  | SpvBuiltInInvocationId = 8, | 
|  | SpvBuiltInLayer = 9, | 
|  | SpvBuiltInViewportIndex = 10, | 
|  | SpvBuiltInTessLevelOuter = 11, | 
|  | SpvBuiltInTessLevelInner = 12, | 
|  | SpvBuiltInTessCoord = 13, | 
|  | SpvBuiltInPatchVertices = 14, | 
|  | SpvBuiltInFragCoord = 15, | 
|  | SpvBuiltInPointCoord = 16, | 
|  | SpvBuiltInFrontFacing = 17, | 
|  | SpvBuiltInSampleId = 18, | 
|  | SpvBuiltInSamplePosition = 19, | 
|  | SpvBuiltInSampleMask = 20, | 
|  | SpvBuiltInFragDepth = 22, | 
|  | SpvBuiltInHelperInvocation = 23, | 
|  | SpvBuiltInNumWorkgroups = 24, | 
|  | SpvBuiltInWorkgroupSize = 25, | 
|  | SpvBuiltInWorkgroupId = 26, | 
|  | SpvBuiltInLocalInvocationId = 27, | 
|  | SpvBuiltInGlobalInvocationId = 28, | 
|  | SpvBuiltInLocalInvocationIndex = 29, | 
|  | SpvBuiltInWorkDim = 30, | 
|  | SpvBuiltInGlobalSize = 31, | 
|  | SpvBuiltInEnqueuedWorkgroupSize = 32, | 
|  | SpvBuiltInGlobalOffset = 33, | 
|  | SpvBuiltInGlobalLinearId = 34, | 
|  | SpvBuiltInSubgroupSize = 36, | 
|  | SpvBuiltInSubgroupMaxSize = 37, | 
|  | SpvBuiltInNumSubgroups = 38, | 
|  | SpvBuiltInNumEnqueuedSubgroups = 39, | 
|  | SpvBuiltInSubgroupId = 40, | 
|  | SpvBuiltInSubgroupLocalInvocationId = 41, | 
|  | SpvBuiltInVertexIndex = 42, | 
|  | SpvBuiltInInstanceIndex = 43, | 
|  | } SpvBuiltIn; | 
|  |  | 
|  | typedef enum SpvSelectionControlShift_ { | 
|  | SpvSelectionControlFlattenShift = 0, | 
|  | SpvSelectionControlDontFlattenShift = 1, | 
|  | } SpvSelectionControlShift; | 
|  |  | 
|  | typedef enum SpvSelectionControlMask_ { | 
|  | SpvSelectionControlMaskNone = 0, | 
|  | SpvSelectionControlFlattenMask = 0x00000001, | 
|  | SpvSelectionControlDontFlattenMask = 0x00000002, | 
|  | } SpvSelectionControlMask; | 
|  |  | 
|  | typedef enum SpvLoopControlShift_ { | 
|  | SpvLoopControlUnrollShift = 0, | 
|  | SpvLoopControlDontUnrollShift = 1, | 
|  | } SpvLoopControlShift; | 
|  |  | 
|  | typedef enum SpvLoopControlMask_ { | 
|  | SpvLoopControlMaskNone = 0, | 
|  | SpvLoopControlUnrollMask = 0x00000001, | 
|  | SpvLoopControlDontUnrollMask = 0x00000002, | 
|  | } SpvLoopControlMask; | 
|  |  | 
|  | typedef enum SpvFunctionControlShift_ { | 
|  | SpvFunctionControlInlineShift = 0, | 
|  | SpvFunctionControlDontInlineShift = 1, | 
|  | SpvFunctionControlPureShift = 2, | 
|  | SpvFunctionControlConstShift = 3, | 
|  | } SpvFunctionControlShift; | 
|  |  | 
|  | typedef enum SpvFunctionControlMask_ { | 
|  | SpvFunctionControlMaskNone = 0, | 
|  | SpvFunctionControlInlineMask = 0x00000001, | 
|  | SpvFunctionControlDontInlineMask = 0x00000002, | 
|  | SpvFunctionControlPureMask = 0x00000004, | 
|  | SpvFunctionControlConstMask = 0x00000008, | 
|  | } SpvFunctionControlMask; | 
|  |  | 
|  | typedef enum SpvMemorySemanticsShift_ { | 
|  | SpvMemorySemanticsAcquireShift = 1, | 
|  | SpvMemorySemanticsReleaseShift = 2, | 
|  | SpvMemorySemanticsAcquireReleaseShift = 3, | 
|  | SpvMemorySemanticsSequentiallyConsistentShift = 4, | 
|  | SpvMemorySemanticsUniformMemoryShift = 6, | 
|  | SpvMemorySemanticsSubgroupMemoryShift = 7, | 
|  | SpvMemorySemanticsWorkgroupMemoryShift = 8, | 
|  | SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, | 
|  | SpvMemorySemanticsAtomicCounterMemoryShift = 10, | 
|  | SpvMemorySemanticsImageMemoryShift = 11, | 
|  | } SpvMemorySemanticsShift; | 
|  |  | 
|  | typedef enum SpvMemorySemanticsMask_ { | 
|  | SpvMemorySemanticsMaskNone = 0, | 
|  | SpvMemorySemanticsAcquireMask = 0x00000002, | 
|  | SpvMemorySemanticsReleaseMask = 0x00000004, | 
|  | SpvMemorySemanticsAcquireReleaseMask = 0x00000008, | 
|  | SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, | 
|  | SpvMemorySemanticsUniformMemoryMask = 0x00000040, | 
|  | SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, | 
|  | SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, | 
|  | SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, | 
|  | SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, | 
|  | SpvMemorySemanticsImageMemoryMask = 0x00000800, | 
|  | } SpvMemorySemanticsMask; | 
|  |  | 
|  | typedef enum SpvMemoryAccessShift_ { | 
|  | SpvMemoryAccessVolatileShift = 0, | 
|  | SpvMemoryAccessAlignedShift = 1, | 
|  | SpvMemoryAccessNontemporalShift = 2, | 
|  | } SpvMemoryAccessShift; | 
|  |  | 
|  | typedef enum SpvMemoryAccessMask_ { | 
|  | SpvMemoryAccessMaskNone = 0, | 
|  | SpvMemoryAccessVolatileMask = 0x00000001, | 
|  | SpvMemoryAccessAlignedMask = 0x00000002, | 
|  | SpvMemoryAccessNontemporalMask = 0x00000004, | 
|  | } SpvMemoryAccessMask; | 
|  |  | 
|  | typedef enum SpvScope_ { | 
|  | SpvScopeCrossDevice = 0, | 
|  | SpvScopeDevice = 1, | 
|  | SpvScopeWorkgroup = 2, | 
|  | SpvScopeSubgroup = 3, | 
|  | SpvScopeInvocation = 4, | 
|  | } SpvScope; | 
|  |  | 
|  | typedef enum SpvGroupOperation_ { | 
|  | SpvGroupOperationReduce = 0, | 
|  | SpvGroupOperationInclusiveScan = 1, | 
|  | SpvGroupOperationExclusiveScan = 2, | 
|  | } SpvGroupOperation; | 
|  |  | 
|  | typedef enum SpvKernelEnqueueFlags_ { | 
|  | SpvKernelEnqueueFlagsNoWait = 0, | 
|  | SpvKernelEnqueueFlagsWaitKernel = 1, | 
|  | SpvKernelEnqueueFlagsWaitWorkGroup = 2, | 
|  | } SpvKernelEnqueueFlags; | 
|  |  | 
|  | typedef enum SpvKernelProfilingInfoShift_ { | 
|  | SpvKernelProfilingInfoCmdExecTimeShift = 0, | 
|  | } SpvKernelProfilingInfoShift; | 
|  |  | 
|  | typedef enum SpvKernelProfilingInfoMask_ { | 
|  | SpvKernelProfilingInfoMaskNone = 0, | 
|  | SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, | 
|  | } SpvKernelProfilingInfoMask; | 
|  |  | 
|  | typedef enum SpvCapability_ { | 
|  | SpvCapabilityMatrix = 0, | 
|  | SpvCapabilityShader = 1, | 
|  | SpvCapabilityGeometry = 2, | 
|  | SpvCapabilityTessellation = 3, | 
|  | SpvCapabilityAddresses = 4, | 
|  | SpvCapabilityLinkage = 5, | 
|  | SpvCapabilityKernel = 6, | 
|  | SpvCapabilityVector16 = 7, | 
|  | SpvCapabilityFloat16Buffer = 8, | 
|  | SpvCapabilityFloat16 = 9, | 
|  | SpvCapabilityFloat64 = 10, | 
|  | SpvCapabilityInt64 = 11, | 
|  | SpvCapabilityInt64Atomics = 12, | 
|  | SpvCapabilityImageBasic = 13, | 
|  | SpvCapabilityImageReadWrite = 14, | 
|  | SpvCapabilityImageMipmap = 15, | 
|  | SpvCapabilityPipes = 17, | 
|  | SpvCapabilityGroups = 18, | 
|  | SpvCapabilityDeviceEnqueue = 19, | 
|  | SpvCapabilityLiteralSampler = 20, | 
|  | SpvCapabilityAtomicStorage = 21, | 
|  | SpvCapabilityInt16 = 22, | 
|  | SpvCapabilityTessellationPointSize = 23, | 
|  | SpvCapabilityGeometryPointSize = 24, | 
|  | SpvCapabilityImageGatherExtended = 25, | 
|  | SpvCapabilityStorageImageMultisample = 27, | 
|  | SpvCapabilityUniformBufferArrayDynamicIndexing = 28, | 
|  | SpvCapabilitySampledImageArrayDynamicIndexing = 29, | 
|  | SpvCapabilityStorageBufferArrayDynamicIndexing = 30, | 
|  | SpvCapabilityStorageImageArrayDynamicIndexing = 31, | 
|  | SpvCapabilityClipDistance = 32, | 
|  | SpvCapabilityCullDistance = 33, | 
|  | SpvCapabilityImageCubeArray = 34, | 
|  | SpvCapabilitySampleRateShading = 35, | 
|  | SpvCapabilityImageRect = 36, | 
|  | SpvCapabilitySampledRect = 37, | 
|  | SpvCapabilityGenericPointer = 38, | 
|  | SpvCapabilityInt8 = 39, | 
|  | SpvCapabilityInputAttachment = 40, | 
|  | SpvCapabilitySparseResidency = 41, | 
|  | SpvCapabilityMinLod = 42, | 
|  | SpvCapabilitySampled1D = 43, | 
|  | SpvCapabilityImage1D = 44, | 
|  | SpvCapabilitySampledCubeArray = 45, | 
|  | SpvCapabilitySampledBuffer = 46, | 
|  | SpvCapabilityImageBuffer = 47, | 
|  | SpvCapabilityImageMSArray = 48, | 
|  | SpvCapabilityStorageImageExtendedFormats = 49, | 
|  | SpvCapabilityImageQuery = 50, | 
|  | SpvCapabilityDerivativeControl = 51, | 
|  | SpvCapabilityInterpolationFunction = 52, | 
|  | SpvCapabilityTransformFeedback = 53, | 
|  | SpvCapabilityGeometryStreams = 54, | 
|  | SpvCapabilityStorageImageReadWithoutFormat = 55, | 
|  | SpvCapabilityStorageImageWriteWithoutFormat = 56, | 
|  | SpvCapabilityMultiViewport = 57, | 
|  | } SpvCapability; | 
|  |  | 
|  | typedef enum SpvOp_ { | 
|  | SpvOpNop = 0, | 
|  | SpvOpUndef = 1, | 
|  | SpvOpSourceContinued = 2, | 
|  | SpvOpSource = 3, | 
|  | SpvOpSourceExtension = 4, | 
|  | SpvOpName = 5, | 
|  | SpvOpMemberName = 6, | 
|  | SpvOpString = 7, | 
|  | SpvOpLine = 8, | 
|  | SpvOpExtension = 10, | 
|  | SpvOpExtInstImport = 11, | 
|  | SpvOpExtInst = 12, | 
|  | SpvOpMemoryModel = 14, | 
|  | SpvOpEntryPoint = 15, | 
|  | SpvOpExecutionMode = 16, | 
|  | SpvOpCapability = 17, | 
|  | SpvOpTypeVoid = 19, | 
|  | SpvOpTypeBool = 20, | 
|  | SpvOpTypeInt = 21, | 
|  | SpvOpTypeFloat = 22, | 
|  | SpvOpTypeVector = 23, | 
|  | SpvOpTypeMatrix = 24, | 
|  | SpvOpTypeImage = 25, | 
|  | SpvOpTypeSampler = 26, | 
|  | SpvOpTypeSampledImage = 27, | 
|  | SpvOpTypeArray = 28, | 
|  | SpvOpTypeRuntimeArray = 29, | 
|  | SpvOpTypeStruct = 30, | 
|  | SpvOpTypeOpaque = 31, | 
|  | SpvOpTypePointer = 32, | 
|  | SpvOpTypeFunction = 33, | 
|  | SpvOpTypeEvent = 34, | 
|  | SpvOpTypeDeviceEvent = 35, | 
|  | SpvOpTypeReserveId = 36, | 
|  | SpvOpTypeQueue = 37, | 
|  | SpvOpTypePipe = 38, | 
|  | SpvOpTypeForwardPointer = 39, | 
|  | SpvOpConstantTrue = 41, | 
|  | SpvOpConstantFalse = 42, | 
|  | SpvOpConstant = 43, | 
|  | SpvOpConstantComposite = 44, | 
|  | SpvOpConstantSampler = 45, | 
|  | SpvOpConstantNull = 46, | 
|  | SpvOpSpecConstantTrue = 48, | 
|  | SpvOpSpecConstantFalse = 49, | 
|  | SpvOpSpecConstant = 50, | 
|  | SpvOpSpecConstantComposite = 51, | 
|  | SpvOpSpecConstantOp = 52, | 
|  | SpvOpFunction = 54, | 
|  | SpvOpFunctionParameter = 55, | 
|  | SpvOpFunctionEnd = 56, | 
|  | SpvOpFunctionCall = 57, | 
|  | SpvOpVariable = 59, | 
|  | SpvOpImageTexelPointer = 60, | 
|  | SpvOpLoad = 61, | 
|  | SpvOpStore = 62, | 
|  | SpvOpCopyMemory = 63, | 
|  | SpvOpCopyMemorySized = 64, | 
|  | SpvOpAccessChain = 65, | 
|  | SpvOpInBoundsAccessChain = 66, | 
|  | SpvOpPtrAccessChain = 67, | 
|  | SpvOpArrayLength = 68, | 
|  | SpvOpGenericPtrMemSemantics = 69, | 
|  | SpvOpInBoundsPtrAccessChain = 70, | 
|  | SpvOpDecorate = 71, | 
|  | SpvOpMemberDecorate = 72, | 
|  | SpvOpDecorationGroup = 73, | 
|  | SpvOpGroupDecorate = 74, | 
|  | SpvOpGroupMemberDecorate = 75, | 
|  | SpvOpVectorExtractDynamic = 77, | 
|  | SpvOpVectorInsertDynamic = 78, | 
|  | SpvOpVectorShuffle = 79, | 
|  | SpvOpCompositeConstruct = 80, | 
|  | SpvOpCompositeExtract = 81, | 
|  | SpvOpCompositeInsert = 82, | 
|  | SpvOpCopyObject = 83, | 
|  | SpvOpTranspose = 84, | 
|  | SpvOpSampledImage = 86, | 
|  | SpvOpImageSampleImplicitLod = 87, | 
|  | SpvOpImageSampleExplicitLod = 88, | 
|  | SpvOpImageSampleDrefImplicitLod = 89, | 
|  | SpvOpImageSampleDrefExplicitLod = 90, | 
|  | SpvOpImageSampleProjImplicitLod = 91, | 
|  | SpvOpImageSampleProjExplicitLod = 92, | 
|  | SpvOpImageSampleProjDrefImplicitLod = 93, | 
|  | SpvOpImageSampleProjDrefExplicitLod = 94, | 
|  | SpvOpImageFetch = 95, | 
|  | SpvOpImageGather = 96, | 
|  | SpvOpImageDrefGather = 97, | 
|  | SpvOpImageRead = 98, | 
|  | SpvOpImageWrite = 99, | 
|  | SpvOpImage = 100, | 
|  | SpvOpImageQueryFormat = 101, | 
|  | SpvOpImageQueryOrder = 102, | 
|  | SpvOpImageQuerySizeLod = 103, | 
|  | SpvOpImageQuerySize = 104, | 
|  | SpvOpImageQueryLod = 105, | 
|  | SpvOpImageQueryLevels = 106, | 
|  | SpvOpImageQuerySamples = 107, | 
|  | SpvOpConvertFToU = 109, | 
|  | SpvOpConvertFToS = 110, | 
|  | SpvOpConvertSToF = 111, | 
|  | SpvOpConvertUToF = 112, | 
|  | SpvOpUConvert = 113, | 
|  | SpvOpSConvert = 114, | 
|  | SpvOpFConvert = 115, | 
|  | SpvOpQuantizeToF16 = 116, | 
|  | SpvOpConvertPtrToU = 117, | 
|  | SpvOpSatConvertSToU = 118, | 
|  | SpvOpSatConvertUToS = 119, | 
|  | SpvOpConvertUToPtr = 120, | 
|  | SpvOpPtrCastToGeneric = 121, | 
|  | SpvOpGenericCastToPtr = 122, | 
|  | SpvOpGenericCastToPtrExplicit = 123, | 
|  | SpvOpBitcast = 124, | 
|  | SpvOpSNegate = 126, | 
|  | SpvOpFNegate = 127, | 
|  | SpvOpIAdd = 128, | 
|  | SpvOpFAdd = 129, | 
|  | SpvOpISub = 130, | 
|  | SpvOpFSub = 131, | 
|  | SpvOpIMul = 132, | 
|  | SpvOpFMul = 133, | 
|  | SpvOpUDiv = 134, | 
|  | SpvOpSDiv = 135, | 
|  | SpvOpFDiv = 136, | 
|  | SpvOpUMod = 137, | 
|  | SpvOpSRem = 138, | 
|  | SpvOpSMod = 139, | 
|  | SpvOpFRem = 140, | 
|  | SpvOpFMod = 141, | 
|  | SpvOpVectorTimesScalar = 142, | 
|  | SpvOpMatrixTimesScalar = 143, | 
|  | SpvOpVectorTimesMatrix = 144, | 
|  | SpvOpMatrixTimesVector = 145, | 
|  | SpvOpMatrixTimesMatrix = 146, | 
|  | SpvOpOuterProduct = 147, | 
|  | SpvOpDot = 148, | 
|  | SpvOpIAddCarry = 149, | 
|  | SpvOpISubBorrow = 150, | 
|  | SpvOpUMulExtended = 151, | 
|  | SpvOpSMulExtended = 152, | 
|  | SpvOpAny = 154, | 
|  | SpvOpAll = 155, | 
|  | SpvOpIsNan = 156, | 
|  | SpvOpIsInf = 157, | 
|  | SpvOpIsFinite = 158, | 
|  | SpvOpIsNormal = 159, | 
|  | SpvOpSignBitSet = 160, | 
|  | SpvOpLessOrGreater = 161, | 
|  | SpvOpOrdered = 162, | 
|  | SpvOpUnordered = 163, | 
|  | SpvOpLogicalEqual = 164, | 
|  | SpvOpLogicalNotEqual = 165, | 
|  | SpvOpLogicalOr = 166, | 
|  | SpvOpLogicalAnd = 167, | 
|  | SpvOpLogicalNot = 168, | 
|  | SpvOpSelect = 169, | 
|  | SpvOpIEqual = 170, | 
|  | SpvOpINotEqual = 171, | 
|  | SpvOpUGreaterThan = 172, | 
|  | SpvOpSGreaterThan = 173, | 
|  | SpvOpUGreaterThanEqual = 174, | 
|  | SpvOpSGreaterThanEqual = 175, | 
|  | SpvOpULessThan = 176, | 
|  | SpvOpSLessThan = 177, | 
|  | SpvOpULessThanEqual = 178, | 
|  | SpvOpSLessThanEqual = 179, | 
|  | SpvOpFOrdEqual = 180, | 
|  | SpvOpFUnordEqual = 181, | 
|  | SpvOpFOrdNotEqual = 182, | 
|  | SpvOpFUnordNotEqual = 183, | 
|  | SpvOpFOrdLessThan = 184, | 
|  | SpvOpFUnordLessThan = 185, | 
|  | SpvOpFOrdGreaterThan = 186, | 
|  | SpvOpFUnordGreaterThan = 187, | 
|  | SpvOpFOrdLessThanEqual = 188, | 
|  | SpvOpFUnordLessThanEqual = 189, | 
|  | SpvOpFOrdGreaterThanEqual = 190, | 
|  | SpvOpFUnordGreaterThanEqual = 191, | 
|  | SpvOpShiftRightLogical = 194, | 
|  | SpvOpShiftRightArithmetic = 195, | 
|  | SpvOpShiftLeftLogical = 196, | 
|  | SpvOpBitwiseOr = 197, | 
|  | SpvOpBitwiseXor = 198, | 
|  | SpvOpBitwiseAnd = 199, | 
|  | SpvOpNot = 200, | 
|  | SpvOpBitFieldInsert = 201, | 
|  | SpvOpBitFieldSExtract = 202, | 
|  | SpvOpBitFieldUExtract = 203, | 
|  | SpvOpBitReverse = 204, | 
|  | SpvOpBitCount = 205, | 
|  | SpvOpDPdx = 207, | 
|  | SpvOpDPdy = 208, | 
|  | SpvOpFwidth = 209, | 
|  | SpvOpDPdxFine = 210, | 
|  | SpvOpDPdyFine = 211, | 
|  | SpvOpFwidthFine = 212, | 
|  | SpvOpDPdxCoarse = 213, | 
|  | SpvOpDPdyCoarse = 214, | 
|  | SpvOpFwidthCoarse = 215, | 
|  | SpvOpEmitVertex = 218, | 
|  | SpvOpEndPrimitive = 219, | 
|  | SpvOpEmitStreamVertex = 220, | 
|  | SpvOpEndStreamPrimitive = 221, | 
|  | SpvOpControlBarrier = 224, | 
|  | SpvOpMemoryBarrier = 225, | 
|  | SpvOpAtomicLoad = 227, | 
|  | SpvOpAtomicStore = 228, | 
|  | SpvOpAtomicExchange = 229, | 
|  | SpvOpAtomicCompareExchange = 230, | 
|  | SpvOpAtomicCompareExchangeWeak = 231, | 
|  | SpvOpAtomicIIncrement = 232, | 
|  | SpvOpAtomicIDecrement = 233, | 
|  | SpvOpAtomicIAdd = 234, | 
|  | SpvOpAtomicISub = 235, | 
|  | SpvOpAtomicSMin = 236, | 
|  | SpvOpAtomicUMin = 237, | 
|  | SpvOpAtomicSMax = 238, | 
|  | SpvOpAtomicUMax = 239, | 
|  | SpvOpAtomicAnd = 240, | 
|  | SpvOpAtomicOr = 241, | 
|  | SpvOpAtomicXor = 242, | 
|  | SpvOpPhi = 245, | 
|  | SpvOpLoopMerge = 246, | 
|  | SpvOpSelectionMerge = 247, | 
|  | SpvOpLabel = 248, | 
|  | SpvOpBranch = 249, | 
|  | SpvOpBranchConditional = 250, | 
|  | SpvOpSwitch = 251, | 
|  | SpvOpKill = 252, | 
|  | SpvOpReturn = 253, | 
|  | SpvOpReturnValue = 254, | 
|  | SpvOpUnreachable = 255, | 
|  | SpvOpLifetimeStart = 256, | 
|  | SpvOpLifetimeStop = 257, | 
|  | SpvOpGroupAsyncCopy = 259, | 
|  | SpvOpGroupWaitEvents = 260, | 
|  | SpvOpGroupAll = 261, | 
|  | SpvOpGroupAny = 262, | 
|  | SpvOpGroupBroadcast = 263, | 
|  | SpvOpGroupIAdd = 264, | 
|  | SpvOpGroupFAdd = 265, | 
|  | SpvOpGroupFMin = 266, | 
|  | SpvOpGroupUMin = 267, | 
|  | SpvOpGroupSMin = 268, | 
|  | SpvOpGroupFMax = 269, | 
|  | SpvOpGroupUMax = 270, | 
|  | SpvOpGroupSMax = 271, | 
|  | SpvOpReadPipe = 274, | 
|  | SpvOpWritePipe = 275, | 
|  | SpvOpReservedReadPipe = 276, | 
|  | SpvOpReservedWritePipe = 277, | 
|  | SpvOpReserveReadPipePackets = 278, | 
|  | SpvOpReserveWritePipePackets = 279, | 
|  | SpvOpCommitReadPipe = 280, | 
|  | SpvOpCommitWritePipe = 281, | 
|  | SpvOpIsValidReserveId = 282, | 
|  | SpvOpGetNumPipePackets = 283, | 
|  | SpvOpGetMaxPipePackets = 284, | 
|  | SpvOpGroupReserveReadPipePackets = 285, | 
|  | SpvOpGroupReserveWritePipePackets = 286, | 
|  | SpvOpGroupCommitReadPipe = 287, | 
|  | SpvOpGroupCommitWritePipe = 288, | 
|  | SpvOpEnqueueMarker = 291, | 
|  | SpvOpEnqueueKernel = 292, | 
|  | SpvOpGetKernelNDrangeSubGroupCount = 293, | 
|  | SpvOpGetKernelNDrangeMaxSubGroupSize = 294, | 
|  | SpvOpGetKernelWorkGroupSize = 295, | 
|  | SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, | 
|  | SpvOpRetainEvent = 297, | 
|  | SpvOpReleaseEvent = 298, | 
|  | SpvOpCreateUserEvent = 299, | 
|  | SpvOpIsValidEvent = 300, | 
|  | SpvOpSetUserEventStatus = 301, | 
|  | SpvOpCaptureEventProfilingInfo = 302, | 
|  | SpvOpGetDefaultQueue = 303, | 
|  | SpvOpBuildNDRange = 304, | 
|  | SpvOpImageSparseSampleImplicitLod = 305, | 
|  | SpvOpImageSparseSampleExplicitLod = 306, | 
|  | SpvOpImageSparseSampleDrefImplicitLod = 307, | 
|  | SpvOpImageSparseSampleDrefExplicitLod = 308, | 
|  | SpvOpImageSparseSampleProjImplicitLod = 309, | 
|  | SpvOpImageSparseSampleProjExplicitLod = 310, | 
|  | SpvOpImageSparseSampleProjDrefImplicitLod = 311, | 
|  | SpvOpImageSparseSampleProjDrefExplicitLod = 312, | 
|  | SpvOpImageSparseFetch = 313, | 
|  | SpvOpImageSparseGather = 314, | 
|  | SpvOpImageSparseDrefGather = 315, | 
|  | SpvOpImageSparseTexelsResident = 316, | 
|  | SpvOpNoLine = 317, | 
|  | SpvOpAtomicFlagTestAndSet = 318, | 
|  | SpvOpAtomicFlagClear = 319, | 
|  | SpvOpImageSparseRead = 320, | 
|  | } SpvOp; | 
|  |  | 
|  | #endif  // #ifndef spirv_H |