+++ /dev/null
-/*\r
-** Copyright (c) 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
-\r
-/*\r
-** This header is automatically generated by the same tool that creates\r
-** the Binary Section of the SPIR-V specification.\r
-*/\r
-\r
-/*\r
-** Specification revision 30.\r
-** Enumeration tokens for SPIR-V, in three styles: C, C++, generic.\r
-** - C++ will have the tokens in the "spv" name space, with no prefix.\r
-** - C will have tokens with as "Spv" prefix.\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
-\r
-#ifndef spirv_H\r
-#define spirv_H\r
-\r
-#ifdef __cplusplus\r
-\r
-namespace spv {\r
-\r
-const int MagicNumber = 0x07230203;\r
-const int Version = 99;\r
-\r
-typedef unsigned int Id;\r
-\r
-const unsigned int OpCodeMask = 0xFFFF;\r
-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
- MemoryModelOpenCL12 = 2,\r
- MemoryModelOpenCL20 = 3,\r
- MemoryModelOpenCL21 = 4,\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
- ExecutionModeEarlyFragmentTests = 8,\r
- ExecutionModePointMode = 9,\r
- ExecutionModeXfb = 10,\r
- ExecutionModeDepthReplacing = 11,\r
- ExecutionModeDepthAny = 12,\r
- ExecutionModeDepthGreater = 13,\r
- ExecutionModeDepthLess = 14,\r
- ExecutionModeDepthUnchanged = 15,\r
- ExecutionModeLocalSize = 16,\r
- ExecutionModeLocalSizeHint = 17,\r
- ExecutionModeInputPoints = 18,\r
- ExecutionModeInputLines = 19,\r
- ExecutionModeInputLinesAdjacency = 20,\r
- ExecutionModeInputTriangles = 21,\r
- ExecutionModeInputTrianglesAdjacency = 22,\r
- ExecutionModeInputQuads = 23,\r
- ExecutionModeInputIsolines = 24,\r
- ExecutionModeOutputVertices = 25,\r
- ExecutionModeOutputPoints = 26,\r
- ExecutionModeOutputLineStrip = 27,\r
- ExecutionModeOutputTriangleStrip = 28,\r
- ExecutionModeVecTypeHint = 29,\r
- ExecutionModeContractionOff = 30,\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
- StorageClassPrivate = 9,\r
- StorageClassAtomicCounter = 10,\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 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
- FunctionParameterAttributeSVM = 6,\r
- FunctionParameterAttributeNoWrite = 7,\r
- FunctionParameterAttributeNoReadWrite = 8,\r
-};\r
-\r
-enum Decoration {\r
- DecorationPrecisionLow = 0,\r
- DecorationPrecisionMedium = 1,\r
- DecorationPrecisionHigh = 2,\r
- DecorationBlock = 3,\r
- DecorationBufferBlock = 4,\r
- DecorationRowMajor = 5,\r
- DecorationColMajor = 6,\r
- DecorationGLSLShared = 7,\r
- DecorationGLSLStd140 = 8,\r
- DecorationGLSLStd430 = 9,\r
- DecorationGLSLPacked = 10,\r
- DecorationSmooth = 11,\r
- DecorationNoperspective = 12,\r
- DecorationFlat = 13,\r
- DecorationPatch = 14,\r
- DecorationCentroid = 15,\r
- DecorationSample = 16,\r
- DecorationInvariant = 17,\r
- DecorationRestrict = 18,\r
- DecorationAliased = 19,\r
- DecorationVolatile = 20,\r
- DecorationConstant = 21,\r
- DecorationCoherent = 22,\r
- DecorationNonwritable = 23,\r
- DecorationNonreadable = 24,\r
- DecorationUniform = 25,\r
- DecorationNoStaticUse = 26,\r
- DecorationCPacked = 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
- DecorationAlignment = 36,\r
- DecorationXfbBuffer = 37,\r
- DecorationStride = 38,\r
- DecorationBuiltIn = 39,\r
- DecorationFuncParamAttr = 40,\r
- DecorationFPRoundingMode = 41,\r
- DecorationFPFastMathMode = 42,\r
- DecorationLinkageAttributes = 43,\r
- DecorationSpecId = 44,\r
-};\r
-\r
-enum BuiltIn {\r
- BuiltInPosition = 0,\r
- BuiltInPointSize = 1,\r
- BuiltInClipVertex = 2,\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 ExecutionScope {\r
- ExecutionScopeCrossDevice = 0,\r
- ExecutionScopeDevice = 1,\r
- ExecutionScopeWorkgroup = 2,\r
- ExecutionScopeSubgroup = 3,\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 Op {\r
- OpNop = 0,\r
- OpSource = 1,\r
- OpSourceExtension = 2,\r
- OpExtension = 3,\r
- OpExtInstImport = 4,\r
- OpMemoryModel = 5,\r
- OpEntryPoint = 6,\r
- OpExecutionMode = 7,\r
- OpTypeVoid = 8,\r
- OpTypeBool = 9,\r
- OpTypeInt = 10,\r
- OpTypeFloat = 11,\r
- OpTypeVector = 12,\r
- OpTypeMatrix = 13,\r
- OpTypeSampler = 14,\r
- OpTypeFilter = 15,\r
- OpTypeArray = 16,\r
- OpTypeRuntimeArray = 17,\r
- OpTypeStruct = 18,\r
- OpTypeOpaque = 19,\r
- OpTypePointer = 20,\r
- OpTypeFunction = 21,\r
- OpTypeEvent = 22,\r
- OpTypeDeviceEvent = 23,\r
- OpTypeReserveId = 24,\r
- OpTypeQueue = 25,\r
- OpTypePipe = 26,\r
- OpConstantTrue = 27,\r
- OpConstantFalse = 28,\r
- OpConstant = 29,\r
- OpConstantComposite = 30,\r
- OpConstantSampler = 31,\r
- OpConstantNullPointer = 32,\r
- OpConstantNullObject = 33,\r
- OpSpecConstantTrue = 34,\r
- OpSpecConstantFalse = 35,\r
- OpSpecConstant = 36,\r
- OpSpecConstantComposite = 37,\r
- OpVariable = 38,\r
- OpVariableArray = 39,\r
- OpFunction = 40,\r
- OpFunctionParameter = 41,\r
- OpFunctionEnd = 42,\r
- OpFunctionCall = 43,\r
- OpExtInst = 44,\r
- OpUndef = 45,\r
- OpLoad = 46,\r
- OpStore = 47,\r
- OpPhi = 48,\r
- OpDecorationGroup = 49,\r
- OpDecorate = 50,\r
- OpMemberDecorate = 51,\r
- OpGroupDecorate = 52,\r
- OpGroupMemberDecorate = 53,\r
- OpName = 54,\r
- OpMemberName = 55,\r
- OpString = 56,\r
- OpLine = 57,\r
- OpVectorExtractDynamic = 58,\r
- OpVectorInsertDynamic = 59,\r
- OpVectorShuffle = 60,\r
- OpCompositeConstruct = 61,\r
- OpCompositeExtract = 62,\r
- OpCompositeInsert = 63,\r
- OpCopyObject = 64,\r
- OpCopyMemory = 65,\r
- OpCopyMemorySized = 66,\r
- OpSampler = 67,\r
- OpTextureSample = 68,\r
- OpTextureSampleDref = 69,\r
- OpTextureSampleLod = 70,\r
- OpTextureSampleProj = 71,\r
- OpTextureSampleGrad = 72,\r
- OpTextureSampleOffset = 73,\r
- OpTextureSampleProjLod = 74,\r
- OpTextureSampleProjGrad = 75,\r
- OpTextureSampleLodOffset = 76,\r
- OpTextureSampleProjOffset = 77,\r
- OpTextureSampleGradOffset = 78,\r
- OpTextureSampleProjLodOffset = 79,\r
- OpTextureSampleProjGradOffset = 80,\r
- OpTextureFetchTexelLod = 81,\r
- OpTextureFetchTexelOffset = 82,\r
- OpTextureFetchSample = 83,\r
- OpTextureFetchTexel = 84,\r
- OpTextureGather = 85,\r
- OpTextureGatherOffset = 86,\r
- OpTextureGatherOffsets = 87,\r
- OpTextureQuerySizeLod = 88,\r
- OpTextureQuerySize = 89,\r
- OpTextureQueryLod = 90,\r
- OpTextureQueryLevels = 91,\r
- OpTextureQuerySamples = 92,\r
- OpAccessChain = 93,\r
- OpInBoundsAccessChain = 94,\r
- OpSNegate = 95,\r
- OpFNegate = 96,\r
- OpNot = 97,\r
- OpAny = 98,\r
- OpAll = 99,\r
- OpConvertFToU = 100,\r
- OpConvertFToS = 101,\r
- OpConvertSToF = 102,\r
- OpConvertUToF = 103,\r
- OpUConvert = 104,\r
- OpSConvert = 105,\r
- OpFConvert = 106,\r
- OpConvertPtrToU = 107,\r
- OpConvertUToPtr = 108,\r
- OpPtrCastToGeneric = 109,\r
- OpGenericCastToPtr = 110,\r
- OpBitcast = 111,\r
- OpTranspose = 112,\r
- OpIsNan = 113,\r
- OpIsInf = 114,\r
- OpIsFinite = 115,\r
- OpIsNormal = 116,\r
- OpSignBitSet = 117,\r
- OpLessOrGreater = 118,\r
- OpOrdered = 119,\r
- OpUnordered = 120,\r
- OpArrayLength = 121,\r
- OpIAdd = 122,\r
- OpFAdd = 123,\r
- OpISub = 124,\r
- OpFSub = 125,\r
- OpIMul = 126,\r
- OpFMul = 127,\r
- OpUDiv = 128,\r
- OpSDiv = 129,\r
- OpFDiv = 130,\r
- OpUMod = 131,\r
- OpSRem = 132,\r
- OpSMod = 133,\r
- OpFRem = 134,\r
- OpFMod = 135,\r
- OpVectorTimesScalar = 136,\r
- OpMatrixTimesScalar = 137,\r
- OpVectorTimesMatrix = 138,\r
- OpMatrixTimesVector = 139,\r
- OpMatrixTimesMatrix = 140,\r
- OpOuterProduct = 141,\r
- OpDot = 142,\r
- OpShiftRightLogical = 143,\r
- OpShiftRightArithmetic = 144,\r
- OpShiftLeftLogical = 145,\r
- OpLogicalOr = 146,\r
- OpLogicalXor = 147,\r
- OpLogicalAnd = 148,\r
- OpBitwiseOr = 149,\r
- OpBitwiseXor = 150,\r
- OpBitwiseAnd = 151,\r
- OpSelect = 152,\r
- OpIEqual = 153,\r
- OpFOrdEqual = 154,\r
- OpFUnordEqual = 155,\r
- OpINotEqual = 156,\r
- OpFOrdNotEqual = 157,\r
- OpFUnordNotEqual = 158,\r
- OpULessThan = 159,\r
- OpSLessThan = 160,\r
- OpFOrdLessThan = 161,\r
- OpFUnordLessThan = 162,\r
- OpUGreaterThan = 163,\r
- OpSGreaterThan = 164,\r
- OpFOrdGreaterThan = 165,\r
- OpFUnordGreaterThan = 166,\r
- OpULessThanEqual = 167,\r
- OpSLessThanEqual = 168,\r
- OpFOrdLessThanEqual = 169,\r
- OpFUnordLessThanEqual = 170,\r
- OpUGreaterThanEqual = 171,\r
- OpSGreaterThanEqual = 172,\r
- OpFOrdGreaterThanEqual = 173,\r
- OpFUnordGreaterThanEqual = 174,\r
- OpDPdx = 175,\r
- OpDPdy = 176,\r
- OpFwidth = 177,\r
- OpDPdxFine = 178,\r
- OpDPdyFine = 179,\r
- OpFwidthFine = 180,\r
- OpDPdxCoarse = 181,\r
- OpDPdyCoarse = 182,\r
- OpFwidthCoarse = 183,\r
- OpEmitVertex = 184,\r
- OpEndPrimitive = 185,\r
- OpEmitStreamVertex = 186,\r
- OpEndStreamPrimitive = 187,\r
- OpControlBarrier = 188,\r
- OpMemoryBarrier = 189,\r
- OpImagePointer = 190,\r
- OpAtomicInit = 191,\r
- OpAtomicLoad = 192,\r
- OpAtomicStore = 193,\r
- OpAtomicExchange = 194,\r
- OpAtomicCompareExchange = 195,\r
- OpAtomicCompareExchangeWeak = 196,\r
- OpAtomicIIncrement = 197,\r
- OpAtomicIDecrement = 198,\r
- OpAtomicIAdd = 199,\r
- OpAtomicISub = 200,\r
- OpAtomicUMin = 201,\r
- OpAtomicUMax = 202,\r
- OpAtomicAnd = 203,\r
- OpAtomicOr = 204,\r
- OpAtomicXor = 205,\r
- OpLoopMerge = 206,\r
- OpSelectionMerge = 207,\r
- OpLabel = 208,\r
- OpBranch = 209,\r
- OpBranchConditional = 210,\r
- OpSwitch = 211,\r
- OpKill = 212,\r
- OpReturn = 213,\r
- OpReturnValue = 214,\r
- OpUnreachable = 215,\r
- OpLifetimeStart = 216,\r
- OpLifetimeStop = 217,\r
- OpCompileFlag = 218,\r
- OpAsyncGroupCopy = 219,\r
- OpWaitGroupEvents = 220,\r
- OpGroupAll = 221,\r
- OpGroupAny = 222,\r
- OpGroupBroadcast = 223,\r
- OpGroupIAdd = 224,\r
- OpGroupFAdd = 225,\r
- OpGroupFMin = 226,\r
- OpGroupUMin = 227,\r
- OpGroupSMin = 228,\r
- OpGroupFMax = 229,\r
- OpGroupUMax = 230,\r
- OpGroupSMax = 231,\r
- OpGenericCastToPtrExplicit = 232,\r
- OpGenericPtrMemSemantics = 233,\r
- OpReadPipe = 234,\r
- OpWritePipe = 235,\r
- OpReservedReadPipe = 236,\r
- OpReservedWritePipe = 237,\r
- OpReserveReadPipePackets = 238,\r
- OpReserveWritePipePackets = 239,\r
- OpCommitReadPipe = 240,\r
- OpCommitWritePipe = 241,\r
- OpIsValidReserveId = 242,\r
- OpGetNumPipePackets = 243,\r
- OpGetMaxPipePackets = 244,\r
- OpGroupReserveReadPipePackets = 245,\r
- OpGroupReserveWritePipePackets = 246,\r
- OpGroupCommitReadPipe = 247,\r
- OpGroupCommitWritePipe = 248,\r
- OpEnqueueMarker = 249,\r
- OpEnqueueKernel = 250,\r
- OpGetKernelNDrangeSubGroupCount = 251,\r
- OpGetKernelNDrangeMaxSubGroupSize = 252,\r
- OpGetKernelWorkGroupSize = 253,\r
- OpGetKernelPreferredWorkGroupSizeMultiple = 254,\r
- OpRetainEvent = 255,\r
- OpReleaseEvent = 256,\r
- OpCreateUserEvent = 257,\r
- OpIsValidEvent = 258,\r
- OpSetUserEventStatus = 259,\r
- OpCaptureEventProfilingInfo = 260,\r
- OpGetDefaultQueue = 261,\r
- OpBuildNDRange = 262,\r
- OpSatConvertSToU = 263,\r
- OpSatConvertUToS = 264,\r
- OpAtomicIMin = 265,\r
- OpAtomicIMax = 266,\r
-};\r
-\r
-}; // end namespace spv\r
-\r
-#endif // #ifdef __cplusplus\r
-\r
-\r
-#ifndef __cplusplus\r
-\r
-const int SpvMagicNumber = 0x07230203;\r
-const int SpvVersion = 99;\r
-\r
-typedef unsigned int SpvId;\r
-\r
-const unsigned int SpvOpCodeMask = 0xFFFF;\r
-const unsigned int SpvWordCountShift = 16;\r
-\r
-typedef enum SpvSourceLanguage_ {\r
- SpvSourceLanguageUnknown = 0,\r
- SpvSourceLanguageESSL = 1,\r
- SpvSourceLanguageGLSL = 2,\r
- SpvSourceLanguageOpenCL = 3,\r
-} SpvSourceLanguage;\r
-\r
-typedef enum SpvExecutionModel_ {\r
- SpvExecutionModelVertex = 0,\r
- SpvExecutionModelTessellationControl = 1,\r
- SpvExecutionModelTessellationEvaluation = 2,\r
- SpvExecutionModelGeometry = 3,\r
- SpvExecutionModelFragment = 4,\r
- SpvExecutionModelGLCompute = 5,\r
- SpvExecutionModelKernel = 6,\r
-} SpvExecutionModel;\r
-\r
-typedef enum SpvAddressingModel_ {\r
- SpvAddressingModelLogical = 0,\r
- SpvAddressingModelPhysical32 = 1,\r
- SpvAddressingModelPhysical64 = 2,\r
-} SpvAddressingModel;\r
-\r
-typedef enum SpvMemoryModel_ {\r
- SpvMemoryModelSimple = 0,\r
- SpvMemoryModelGLSL450 = 1,\r
- SpvMemoryModelOpenCL12 = 2,\r
- SpvMemoryModelOpenCL20 = 3,\r
- SpvMemoryModelOpenCL21 = 4,\r
-} SpvMemoryModel;\r
-\r
-typedef enum SpvExecutionMode_ {\r
- SpvExecutionModeInvocations = 0,\r
- SpvExecutionModeSpacingEqual = 1,\r
- SpvExecutionModeSpacingFractionalEven = 2,\r
- SpvExecutionModeSpacingFractionalOdd = 3,\r
- SpvExecutionModeVertexOrderCw = 4,\r
- SpvExecutionModeVertexOrderCcw = 5,\r
- SpvExecutionModePixelCenterInteger = 6,\r
- SpvExecutionModeOriginUpperLeft = 7,\r
- SpvExecutionModeEarlyFragmentTests = 8,\r
- SpvExecutionModePointMode = 9,\r
- SpvExecutionModeXfb = 10,\r
- SpvExecutionModeDepthReplacing = 11,\r
- SpvExecutionModeDepthAny = 12,\r
- SpvExecutionModeDepthGreater = 13,\r
- SpvExecutionModeDepthLess = 14,\r
- SpvExecutionModeDepthUnchanged = 15,\r
- SpvExecutionModeLocalSize = 16,\r
- SpvExecutionModeLocalSizeHint = 17,\r
- SpvExecutionModeInputPoints = 18,\r
- SpvExecutionModeInputLines = 19,\r
- SpvExecutionModeInputLinesAdjacency = 20,\r
- SpvExecutionModeInputTriangles = 21,\r
- SpvExecutionModeInputTrianglesAdjacency = 22,\r
- SpvExecutionModeInputQuads = 23,\r
- SpvExecutionModeInputIsolines = 24,\r
- SpvExecutionModeOutputVertices = 25,\r
- SpvExecutionModeOutputPoints = 26,\r
- SpvExecutionModeOutputLineStrip = 27,\r
- SpvExecutionModeOutputTriangleStrip = 28,\r
- SpvExecutionModeVecTypeHint = 29,\r
- SpvExecutionModeContractionOff = 30,\r
-} SpvExecutionMode;\r
-\r
-typedef enum SpvStorageClass_ {\r
- SpvStorageClassUniformConstant = 0,\r
- SpvStorageClassInput = 1,\r
- SpvStorageClassUniform = 2,\r
- SpvStorageClassOutput = 3,\r
- SpvStorageClassWorkgroupLocal = 4,\r
- SpvStorageClassWorkgroupGlobal = 5,\r
- SpvStorageClassPrivateGlobal = 6,\r
- SpvStorageClassFunction = 7,\r
- SpvStorageClassGeneric = 8,\r
- SpvStorageClassPrivate = 9,\r
- SpvStorageClassAtomicCounter = 10,\r
-} SpvStorageClass;\r
-\r
-typedef enum SpvDim_ {\r
- SpvDim1D = 0,\r
- SpvDim2D = 1,\r
- SpvDim3D = 2,\r
- SpvDimCube = 3,\r
- SpvDimRect = 4,\r
- SpvDimBuffer = 5,\r
-} SpvDim;\r
-\r
-typedef enum SpvSamplerAddressingMode_ {\r
- SpvSamplerAddressingModeNone = 0,\r
- SpvSamplerAddressingModeClampToEdge = 1,\r
- SpvSamplerAddressingModeClamp = 2,\r
- SpvSamplerAddressingModeRepeat = 3,\r
- SpvSamplerAddressingModeRepeatMirrored = 4,\r
-} SpvSamplerAddressingMode;\r
-\r
-typedef enum SpvSamplerFilterMode_ {\r
- SpvSamplerFilterModeNearest = 0,\r
- SpvSamplerFilterModeLinear = 1,\r
-} SpvSamplerFilterMode;\r
-\r
-typedef enum SpvFPFastMathModeShift_ {\r
- SpvFPFastMathModeNotNaNShift = 0,\r
- SpvFPFastMathModeNotInfShift = 1,\r
- SpvFPFastMathModeNSZShift = 2,\r
- SpvFPFastMathModeAllowRecipShift = 3,\r
- SpvFPFastMathModeFastShift = 4,\r
-} SpvFPFastMathModeShift;\r
-\r
-typedef enum SpvFPFastMathModeMask_ {\r
- SpvFPFastMathModeMaskNone = 0,\r
- SpvFPFastMathModeNotNaNMask = 0x00000001,\r
- SpvFPFastMathModeNotInfMask = 0x00000002,\r
- SpvFPFastMathModeNSZMask = 0x00000004,\r
- SpvFPFastMathModeAllowRecipMask = 0x00000008,\r
- SpvFPFastMathModeFastMask = 0x00000010,\r
-} SpvFPFastMathModeMask;\r
-\r
-typedef enum SpvFPRoundingMode_ {\r
- SpvFPRoundingModeRTE = 0,\r
- SpvFPRoundingModeRTZ = 1,\r
- SpvFPRoundingModeRTP = 2,\r
- SpvFPRoundingModeRTN = 3,\r
-} SpvFPRoundingMode;\r
-\r
-typedef enum SpvLinkageType_ {\r
- SpvLinkageTypeExport = 0,\r
- SpvLinkageTypeImport = 1,\r
-} SpvLinkageType;\r
-\r
-typedef enum SpvAccessQualifier_ {\r
- SpvAccessQualifierReadOnly = 0,\r
- SpvAccessQualifierWriteOnly = 1,\r
- SpvAccessQualifierReadWrite = 2,\r
-} SpvAccessQualifier;\r
-\r
-typedef enum SpvFunctionParameterAttribute_ {\r
- SpvFunctionParameterAttributeZext = 0,\r
- SpvFunctionParameterAttributeSext = 1,\r
- SpvFunctionParameterAttributeByVal = 2,\r
- SpvFunctionParameterAttributeSret = 3,\r
- SpvFunctionParameterAttributeNoAlias = 4,\r
- SpvFunctionParameterAttributeNoCapture = 5,\r
- SpvFunctionParameterAttributeSVM = 6,\r
- SpvFunctionParameterAttributeNoWrite = 7,\r
- SpvFunctionParameterAttributeNoReadWrite = 8,\r
-} SpvFunctionParameterAttribute;\r
-\r
-typedef enum SpvDecoration_ {\r
- SpvDecorationPrecisionLow = 0,\r
- SpvDecorationPrecisionMedium = 1,\r
- SpvDecorationPrecisionHigh = 2,\r
- SpvDecorationBlock = 3,\r
- SpvDecorationBufferBlock = 4,\r
- SpvDecorationRowMajor = 5,\r
- SpvDecorationColMajor = 6,\r
- SpvDecorationGLSLShared = 7,\r
- SpvDecorationGLSLStd140 = 8,\r
- SpvDecorationGLSLStd430 = 9,\r
- SpvDecorationGLSLPacked = 10,\r
- SpvDecorationSmooth = 11,\r
- SpvDecorationNoperspective = 12,\r
- SpvDecorationFlat = 13,\r
- SpvDecorationPatch = 14,\r
- SpvDecorationCentroid = 15,\r
- SpvDecorationSample = 16,\r
- SpvDecorationInvariant = 17,\r
- SpvDecorationRestrict = 18,\r
- SpvDecorationAliased = 19,\r
- SpvDecorationVolatile = 20,\r
- SpvDecorationConstant = 21,\r
- SpvDecorationCoherent = 22,\r
- SpvDecorationNonwritable = 23,\r
- SpvDecorationNonreadable = 24,\r
- SpvDecorationUniform = 25,\r
- SpvDecorationNoStaticUse = 26,\r
- SpvDecorationCPacked = 27,\r
- SpvDecorationSaturatedConversion = 28,\r
- SpvDecorationStream = 29,\r
- SpvDecorationLocation = 30,\r
- SpvDecorationComponent = 31,\r
- SpvDecorationIndex = 32,\r
- SpvDecorationBinding = 33,\r
- SpvDecorationDescriptorSet = 34,\r
- SpvDecorationOffset = 35,\r
- SpvDecorationAlignment = 36,\r
- SpvDecorationXfbBuffer = 37,\r
- SpvDecorationStride = 38,\r
- SpvDecorationBuiltIn = 39,\r
- SpvDecorationFuncParamAttr = 40,\r
- SpvDecorationFPRoundingMode = 41,\r
- SpvDecorationFPFastMathMode = 42,\r
- SpvDecorationLinkageAttributes = 43,\r
- SpvDecorationSpecId = 44,\r
-} SpvDecoration;\r
-\r
-typedef enum SpvBuiltIn_ {\r
- SpvBuiltInPosition = 0,\r
- SpvBuiltInPointSize = 1,\r
- SpvBuiltInClipVertex = 2,\r
- SpvBuiltInClipDistance = 3,\r
- SpvBuiltInCullDistance = 4,\r
- SpvBuiltInVertexId = 5,\r
- SpvBuiltInInstanceId = 6,\r
- SpvBuiltInPrimitiveId = 7,\r
- SpvBuiltInInvocationId = 8,\r
- SpvBuiltInLayer = 9,\r
- SpvBuiltInViewportIndex = 10,\r
- SpvBuiltInTessLevelOuter = 11,\r
- SpvBuiltInTessLevelInner = 12,\r
- SpvBuiltInTessCoord = 13,\r
- SpvBuiltInPatchVertices = 14,\r
- SpvBuiltInFragCoord = 15,\r
- SpvBuiltInPointCoord = 16,\r
- SpvBuiltInFrontFacing = 17,\r
- SpvBuiltInSampleId = 18,\r
- SpvBuiltInSamplePosition = 19,\r
- SpvBuiltInSampleMask = 20,\r
- SpvBuiltInFragColor = 21,\r
- SpvBuiltInFragDepth = 22,\r
- SpvBuiltInHelperInvocation = 23,\r
- SpvBuiltInNumWorkgroups = 24,\r
- SpvBuiltInWorkgroupSize = 25,\r
- SpvBuiltInWorkgroupId = 26,\r
- SpvBuiltInLocalInvocationId = 27,\r
- SpvBuiltInGlobalInvocationId = 28,\r
- SpvBuiltInLocalInvocationIndex = 29,\r
- SpvBuiltInWorkDim = 30,\r
- SpvBuiltInGlobalSize = 31,\r
- SpvBuiltInEnqueuedWorkgroupSize = 32,\r
- SpvBuiltInGlobalOffset = 33,\r
- SpvBuiltInGlobalLinearId = 34,\r
- SpvBuiltInWorkgroupLinearId = 35,\r
- SpvBuiltInSubgroupSize = 36,\r
- SpvBuiltInSubgroupMaxSize = 37,\r
- SpvBuiltInNumSubgroups = 38,\r
- SpvBuiltInNumEnqueuedSubgroups = 39,\r
- SpvBuiltInSubgroupId = 40,\r
- SpvBuiltInSubgroupLocalInvocationId = 41,\r
-} SpvBuiltIn;\r
-\r
-typedef enum SpvSelectionControlShift_ {\r
- SpvSelectionControlFlattenShift = 0,\r
- SpvSelectionControlDontFlattenShift = 1,\r
-} SpvSelectionControlShift;\r
-\r
-typedef enum SpvSelectionControlMask_ {\r
- SpvSelectionControlMaskNone = 0,\r
- SpvSelectionControlFlattenMask = 0x00000001,\r
- SpvSelectionControlDontFlattenMask = 0x00000002,\r
-} SpvSelectionControlMask;\r
-\r
-typedef enum SpvLoopControlShift_ {\r
- SpvLoopControlUnrollShift = 0,\r
- SpvLoopControlDontUnrollShift = 1,\r
-} SpvLoopControlShift;\r
-\r
-typedef enum SpvLoopControlMask_ {\r
- SpvLoopControlMaskNone = 0,\r
- SpvLoopControlUnrollMask = 0x00000001,\r
- SpvLoopControlDontUnrollMask = 0x00000002,\r
-} SpvLoopControlMask;\r
-\r
-typedef enum SpvFunctionControlShift_ {\r
- SpvFunctionControlInlineShift = 0,\r
- SpvFunctionControlDontInlineShift = 1,\r
- SpvFunctionControlPureShift = 2,\r
- SpvFunctionControlConstShift = 3,\r
-} SpvFunctionControlShift;\r
-\r
-typedef enum SpvFunctionControlMask_ {\r
- SpvFunctionControlMaskNone = 0,\r
- SpvFunctionControlInlineMask = 0x00000001,\r
- SpvFunctionControlDontInlineMask = 0x00000002,\r
- SpvFunctionControlPureMask = 0x00000004,\r
- SpvFunctionControlConstMask = 0x00000008,\r
-} SpvFunctionControlMask;\r
-\r
-typedef enum SpvMemorySemanticsShift_ {\r
- SpvMemorySemanticsRelaxedShift = 0,\r
- SpvMemorySemanticsSequentiallyConsistentShift = 1,\r
- SpvMemorySemanticsAcquireShift = 2,\r
- SpvMemorySemanticsReleaseShift = 3,\r
- SpvMemorySemanticsUniformMemoryShift = 4,\r
- SpvMemorySemanticsSubgroupMemoryShift = 5,\r
- SpvMemorySemanticsWorkgroupLocalMemoryShift = 6,\r
- SpvMemorySemanticsWorkgroupGlobalMemoryShift = 7,\r
- SpvMemorySemanticsAtomicCounterMemoryShift = 8,\r
- SpvMemorySemanticsImageMemoryShift = 9,\r
-} SpvMemorySemanticsShift;\r
-\r
-typedef enum SpvMemorySemanticsMask_ {\r
- SpvMemorySemanticsMaskNone = 0,\r
- SpvMemorySemanticsRelaxedMask = 0x00000001,\r
- SpvMemorySemanticsSequentiallyConsistentMask = 0x00000002,\r
- SpvMemorySemanticsAcquireMask = 0x00000004,\r
- SpvMemorySemanticsReleaseMask = 0x00000008,\r
- SpvMemorySemanticsUniformMemoryMask = 0x00000010,\r
- SpvMemorySemanticsSubgroupMemoryMask = 0x00000020,\r
- SpvMemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,\r
- SpvMemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,\r
- SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000100,\r
- SpvMemorySemanticsImageMemoryMask = 0x00000200,\r
-} SpvMemorySemanticsMask;\r
-\r
-typedef enum SpvMemoryAccessShift_ {\r
- SpvMemoryAccessVolatileShift = 0,\r
- SpvMemoryAccessAlignedShift = 1,\r
-} SpvMemoryAccessShift;\r
-\r
-typedef enum SpvMemoryAccessMask_ {\r
- SpvMemoryAccessMaskNone = 0,\r
- SpvMemoryAccessVolatileMask = 0x00000001,\r
- SpvMemoryAccessAlignedMask = 0x00000002,\r
-} SpvMemoryAccessMask;\r
-\r
-typedef enum SpvExecutionScope_ {\r
- SpvExecutionScopeCrossDevice = 0,\r
- SpvExecutionScopeDevice = 1,\r
- SpvExecutionScopeWorkgroup = 2,\r
- SpvExecutionScopeSubgroup = 3,\r
-} SpvExecutionScope;\r
-\r
-typedef enum SpvGroupOperation_ {\r
- SpvGroupOperationReduce = 0,\r
- SpvGroupOperationInclusiveScan = 1,\r
- SpvGroupOperationExclusiveScan = 2,\r
-} SpvGroupOperation;\r
-\r
-typedef enum SpvKernelEnqueueFlags_ {\r
- SpvKernelEnqueueFlagsNoWait = 0,\r
- SpvKernelEnqueueFlagsWaitKernel = 1,\r
- SpvKernelEnqueueFlagsWaitWorkGroup = 2,\r
-} SpvKernelEnqueueFlags;\r
-\r
-typedef enum SpvKernelProfilingInfoShift_ {\r
- SpvKernelProfilingInfoCmdExecTimeShift = 0,\r
-} SpvKernelProfilingInfoShift;\r
-\r
-typedef enum SpvKernelProfilingInfoMask_ {\r
- SpvKernelProfilingInfoMaskNone = 0,\r
- SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,\r
-} SpvKernelProfilingInfoMask;\r
-\r
-typedef enum SpvOp_ {\r
- SpvOpNop = 0,\r
- SpvOpSource = 1,\r
- SpvOpSourceExtension = 2,\r
- SpvOpExtension = 3,\r
- SpvOpExtInstImport = 4,\r
- SpvOpMemoryModel = 5,\r
- SpvOpEntryPoint = 6,\r
- SpvOpExecutionMode = 7,\r
- SpvOpTypeVoid = 8,\r
- SpvOpTypeBool = 9,\r
- SpvOpTypeInt = 10,\r
- SpvOpTypeFloat = 11,\r
- SpvOpTypeVector = 12,\r
- SpvOpTypeMatrix = 13,\r
- SpvOpTypeSampler = 14,\r
- SpvOpTypeFilter = 15,\r
- SpvOpTypeArray = 16,\r
- SpvOpTypeRuntimeArray = 17,\r
- SpvOpTypeStruct = 18,\r
- SpvOpTypeOpaque = 19,\r
- SpvOpTypePointer = 20,\r
- SpvOpTypeFunction = 21,\r
- SpvOpTypeEvent = 22,\r
- SpvOpTypeDeviceEvent = 23,\r
- SpvOpTypeReserveId = 24,\r
- SpvOpTypeQueue = 25,\r
- SpvOpTypePipe = 26,\r
- SpvOpConstantTrue = 27,\r
- SpvOpConstantFalse = 28,\r
- SpvOpConstant = 29,\r
- SpvOpConstantComposite = 30,\r
- SpvOpConstantSampler = 31,\r
- SpvOpConstantNullPointer = 32,\r
- SpvOpConstantNullObject = 33,\r
- SpvOpSpecConstantTrue = 34,\r
- SpvOpSpecConstantFalse = 35,\r
- SpvOpSpecConstant = 36,\r
- SpvOpSpecConstantComposite = 37,\r
- SpvOpVariable = 38,\r
- SpvOpVariableArray = 39,\r
- SpvOpFunction = 40,\r
- SpvOpFunctionParameter = 41,\r
- SpvOpFunctionEnd = 42,\r
- SpvOpFunctionCall = 43,\r
- SpvOpExtInst = 44,\r
- SpvOpUndef = 45,\r
- SpvOpLoad = 46,\r
- SpvOpStore = 47,\r
- SpvOpPhi = 48,\r
- SpvOpDecorationGroup = 49,\r
- SpvOpDecorate = 50,\r
- SpvOpMemberDecorate = 51,\r
- SpvOpGroupDecorate = 52,\r
- SpvOpGroupMemberDecorate = 53,\r
- SpvOpName = 54,\r
- SpvOpMemberName = 55,\r
- SpvOpString = 56,\r
- SpvOpLine = 57,\r
- SpvOpVectorExtractDynamic = 58,\r
- SpvOpVectorInsertDynamic = 59,\r
- SpvOpVectorShuffle = 60,\r
- SpvOpCompositeConstruct = 61,\r
- SpvOpCompositeExtract = 62,\r
- SpvOpCompositeInsert = 63,\r
- SpvOpCopyObject = 64,\r
- SpvOpCopyMemory = 65,\r
- SpvOpCopyMemorySized = 66,\r
- SpvOpSampler = 67,\r
- SpvOpTextureSample = 68,\r
- SpvOpTextureSampleDref = 69,\r
- SpvOpTextureSampleLod = 70,\r
- SpvOpTextureSampleProj = 71,\r
- SpvOpTextureSampleGrad = 72,\r
- SpvOpTextureSampleOffset = 73,\r
- SpvOpTextureSampleProjLod = 74,\r
- SpvOpTextureSampleProjGrad = 75,\r
- SpvOpTextureSampleLodOffset = 76,\r
- SpvOpTextureSampleProjOffset = 77,\r
- SpvOpTextureSampleGradOffset = 78,\r
- SpvOpTextureSampleProjLodOffset = 79,\r
- SpvOpTextureSampleProjGradOffset = 80,\r
- SpvOpTextureFetchTexelLod = 81,\r
- SpvOpTextureFetchTexelOffset = 82,\r
- SpvOpTextureFetchSample = 83,\r
- SpvOpTextureFetchTexel = 84,\r
- SpvOpTextureGather = 85,\r
- SpvOpTextureGatherOffset = 86,\r
- SpvOpTextureGatherOffsets = 87,\r
- SpvOpTextureQuerySizeLod = 88,\r
- SpvOpTextureQuerySize = 89,\r
- SpvOpTextureQueryLod = 90,\r
- SpvOpTextureQueryLevels = 91,\r
- SpvOpTextureQuerySamples = 92,\r
- SpvOpAccessChain = 93,\r
- SpvOpInBoundsAccessChain = 94,\r
- SpvOpSNegate = 95,\r
- SpvOpFNegate = 96,\r
- SpvOpNot = 97,\r
- SpvOpAny = 98,\r
- SpvOpAll = 99,\r
- SpvOpConvertFToU = 100,\r
- SpvOpConvertFToS = 101,\r
- SpvOpConvertSToF = 102,\r
- SpvOpConvertUToF = 103,\r
- SpvOpUConvert = 104,\r
- SpvOpSConvert = 105,\r
- SpvOpFConvert = 106,\r
- SpvOpConvertPtrToU = 107,\r
- SpvOpConvertUToPtr = 108,\r
- SpvOpPtrCastToGeneric = 109,\r
- SpvOpGenericCastToPtr = 110,\r
- SpvOpBitcast = 111,\r
- SpvOpTranspose = 112,\r
- SpvOpIsNan = 113,\r
- SpvOpIsInf = 114,\r
- SpvOpIsFinite = 115,\r
- SpvOpIsNormal = 116,\r
- SpvOpSignBitSet = 117,\r
- SpvOpLessOrGreater = 118,\r
- SpvOpOrdered = 119,\r
- SpvOpUnordered = 120,\r
- SpvOpArrayLength = 121,\r
- SpvOpIAdd = 122,\r
- SpvOpFAdd = 123,\r
- SpvOpISub = 124,\r
- SpvOpFSub = 125,\r
- SpvOpIMul = 126,\r
- SpvOpFMul = 127,\r
- SpvOpUDiv = 128,\r
- SpvOpSDiv = 129,\r
- SpvOpFDiv = 130,\r
- SpvOpUMod = 131,\r
- SpvOpSRem = 132,\r
- SpvOpSMod = 133,\r
- SpvOpFRem = 134,\r
- SpvOpFMod = 135,\r
- SpvOpVectorTimesScalar = 136,\r
- SpvOpMatrixTimesScalar = 137,\r
- SpvOpVectorTimesMatrix = 138,\r
- SpvOpMatrixTimesVector = 139,\r
- SpvOpMatrixTimesMatrix = 140,\r
- SpvOpOuterProduct = 141,\r
- SpvOpDot = 142,\r
- SpvOpShiftRightLogical = 143,\r
- SpvOpShiftRightArithmetic = 144,\r
- SpvOpShiftLeftLogical = 145,\r
- SpvOpLogicalOr = 146,\r
- SpvOpLogicalXor = 147,\r
- SpvOpLogicalAnd = 148,\r
- SpvOpBitwiseOr = 149,\r
- SpvOpBitwiseXor = 150,\r
- SpvOpBitwiseAnd = 151,\r
- SpvOpSelect = 152,\r
- SpvOpIEqual = 153,\r
- SpvOpFOrdEqual = 154,\r
- SpvOpFUnordEqual = 155,\r
- SpvOpINotEqual = 156,\r
- SpvOpFOrdNotEqual = 157,\r
- SpvOpFUnordNotEqual = 158,\r
- SpvOpULessThan = 159,\r
- SpvOpSLessThan = 160,\r
- SpvOpFOrdLessThan = 161,\r
- SpvOpFUnordLessThan = 162,\r
- SpvOpUGreaterThan = 163,\r
- SpvOpSGreaterThan = 164,\r
- SpvOpFOrdGreaterThan = 165,\r
- SpvOpFUnordGreaterThan = 166,\r
- SpvOpULessThanEqual = 167,\r
- SpvOpSLessThanEqual = 168,\r
- SpvOpFOrdLessThanEqual = 169,\r
- SpvOpFUnordLessThanEqual = 170,\r
- SpvOpUGreaterThanEqual = 171,\r
- SpvOpSGreaterThanEqual = 172,\r
- SpvOpFOrdGreaterThanEqual = 173,\r
- SpvOpFUnordGreaterThanEqual = 174,\r
- SpvOpDPdx = 175,\r
- SpvOpDPdy = 176,\r
- SpvOpFwidth = 177,\r
- SpvOpDPdxFine = 178,\r
- SpvOpDPdyFine = 179,\r
- SpvOpFwidthFine = 180,\r
- SpvOpDPdxCoarse = 181,\r
- SpvOpDPdyCoarse = 182,\r
- SpvOpFwidthCoarse = 183,\r
- SpvOpEmitVertex = 184,\r
- SpvOpEndPrimitive = 185,\r
- SpvOpEmitStreamVertex = 186,\r
- SpvOpEndStreamPrimitive = 187,\r
- SpvOpControlBarrier = 188,\r
- SpvOpMemoryBarrier = 189,\r
- SpvOpImagePointer = 190,\r
- SpvOpAtomicInit = 191,\r
- SpvOpAtomicLoad = 192,\r
- SpvOpAtomicStore = 193,\r
- SpvOpAtomicExchange = 194,\r
- SpvOpAtomicCompareExchange = 195,\r
- SpvOpAtomicCompareExchangeWeak = 196,\r
- SpvOpAtomicIIncrement = 197,\r
- SpvOpAtomicIDecrement = 198,\r
- SpvOpAtomicIAdd = 199,\r
- SpvOpAtomicISub = 200,\r
- SpvOpAtomicUMin = 201,\r
- SpvOpAtomicUMax = 202,\r
- SpvOpAtomicAnd = 203,\r
- SpvOpAtomicOr = 204,\r
- SpvOpAtomicXor = 205,\r
- SpvOpLoopMerge = 206,\r
- SpvOpSelectionMerge = 207,\r
- SpvOpLabel = 208,\r
- SpvOpBranch = 209,\r
- SpvOpBranchConditional = 210,\r
- SpvOpSwitch = 211,\r
- SpvOpKill = 212,\r
- SpvOpReturn = 213,\r
- SpvOpReturnValue = 214,\r
- SpvOpUnreachable = 215,\r
- SpvOpLifetimeStart = 216,\r
- SpvOpLifetimeStop = 217,\r
- SpvOpCompileFlag = 218,\r
- SpvOpAsyncGroupCopy = 219,\r
- SpvOpWaitGroupEvents = 220,\r
- SpvOpGroupAll = 221,\r
- SpvOpGroupAny = 222,\r
- SpvOpGroupBroadcast = 223,\r
- SpvOpGroupIAdd = 224,\r
- SpvOpGroupFAdd = 225,\r
- SpvOpGroupFMin = 226,\r
- SpvOpGroupUMin = 227,\r
- SpvOpGroupSMin = 228,\r
- SpvOpGroupFMax = 229,\r
- SpvOpGroupUMax = 230,\r
- SpvOpGroupSMax = 231,\r
- SpvOpGenericCastToPtrExplicit = 232,\r
- SpvOpGenericPtrMemSemantics = 233,\r
- SpvOpReadPipe = 234,\r
- SpvOpWritePipe = 235,\r
- SpvOpReservedReadPipe = 236,\r
- SpvOpReservedWritePipe = 237,\r
- SpvOpReserveReadPipePackets = 238,\r
- SpvOpReserveWritePipePackets = 239,\r
- SpvOpCommitReadPipe = 240,\r
- SpvOpCommitWritePipe = 241,\r
- SpvOpIsValidReserveId = 242,\r
- SpvOpGetNumPipePackets = 243,\r
- SpvOpGetMaxPipePackets = 244,\r
- SpvOpGroupReserveReadPipePackets = 245,\r
- SpvOpGroupReserveWritePipePackets = 246,\r
- SpvOpGroupCommitReadPipe = 247,\r
- SpvOpGroupCommitWritePipe = 248,\r
- SpvOpEnqueueMarker = 249,\r
- SpvOpEnqueueKernel = 250,\r
- SpvOpGetKernelNDrangeSubGroupCount = 251,\r
- SpvOpGetKernelNDrangeMaxSubGroupSize = 252,\r
- SpvOpGetKernelWorkGroupSize = 253,\r
- SpvOpGetKernelPreferredWorkGroupSizeMultiple = 254,\r
- SpvOpRetainEvent = 255,\r
- SpvOpReleaseEvent = 256,\r
- SpvOpCreateUserEvent = 257,\r
- SpvOpIsValidEvent = 258,\r
- SpvOpSetUserEventStatus = 259,\r
- SpvOpCaptureEventProfilingInfo = 260,\r
- SpvOpGetDefaultQueue = 261,\r
- SpvOpBuildNDRange = 262,\r
- SpvOpSatConvertSToU = 263,\r
- SpvOpSatConvertUToS = 264,\r
- SpvOpAtomicIMin = 265,\r
- SpvOpAtomicIMax = 266,\r
-} SpvOp;\r
-\r
-#endif // #ifndef __cplusplus\r
-\r
-#endif // #ifndef spirv_H\r
--- /dev/null
+// Copyright (c) 2014-2015 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.
+
+// Specification revision 31.
+// 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
+
+namespace spv {
+
+typedef unsigned int Id;
+
+static const unsigned int MagicNumber = 0x07230203;
+static const unsigned int Version = 99;
+static const unsigned int Revision = 31;
+static const unsigned int OpCodeMask = 0xffff;
+static const unsigned int WordCountShift = 16;
+
+enum SourceLanguage {
+ SourceLanguageUnknown = 0,
+ SourceLanguageESSL = 1,
+ SourceLanguageGLSL = 2,
+ SourceLanguageOpenCL = 3,
+};
+
+enum ExecutionModel {
+ ExecutionModelVertex = 0,
+ ExecutionModelTessellationControl = 1,
+ ExecutionModelTessellationEvaluation = 2,
+ ExecutionModelGeometry = 3,
+ ExecutionModelFragment = 4,
+ ExecutionModelGLCompute = 5,
+ ExecutionModelKernel = 6,
+};
+
+enum AddressingModel {
+ AddressingModelLogical = 0,
+ AddressingModelPhysical32 = 1,
+ AddressingModelPhysical64 = 2,
+};
+
+enum MemoryModel {
+ MemoryModelSimple = 0,
+ MemoryModelGLSL450 = 1,
+ MemoryModelOpenCL = 2,
+};
+
+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,
+ ExecutionModeDepthAny = 13,
+ ExecutionModeDepthGreater = 14,
+ ExecutionModeDepthLess = 15,
+ ExecutionModeDepthUnchanged = 16,
+ ExecutionModeLocalSize = 17,
+ ExecutionModeLocalSizeHint = 18,
+ ExecutionModeInputPoints = 19,
+ ExecutionModeInputLines = 20,
+ ExecutionModeInputLinesAdjacency = 21,
+ ExecutionModeInputTriangles = 22,
+ ExecutionModeInputTrianglesAdjacency = 23,
+ ExecutionModeInputQuads = 24,
+ ExecutionModeInputIsolines = 25,
+ ExecutionModeOutputVertices = 26,
+ ExecutionModeOutputPoints = 27,
+ ExecutionModeOutputLineStrip = 28,
+ ExecutionModeOutputTriangleStrip = 29,
+ ExecutionModeVecTypeHint = 30,
+ ExecutionModeContractionOff = 31,
+};
+
+enum StorageClass {
+ StorageClassUniformConstant = 0,
+ StorageClassInput = 1,
+ StorageClassUniform = 2,
+ StorageClassOutput = 3,
+ StorageClassWorkgroupLocal = 4,
+ StorageClassWorkgroupGlobal = 5,
+ StorageClassPrivateGlobal = 6,
+ StorageClassFunction = 7,
+ StorageClassGeneric = 8,
+ StorageClassPushConstant = 9,
+ StorageClassAtomicCounter = 10,
+ StorageClassImage = 11,
+};
+
+enum Dim {
+ Dim1D = 0,
+ Dim2D = 1,
+ Dim3D = 2,
+ DimCube = 3,
+ DimRect = 4,
+ DimBuffer = 5,
+};
+
+enum SamplerAddressingMode {
+ SamplerAddressingModeNone = 0,
+ SamplerAddressingModeClampToEdge = 1,
+ SamplerAddressingModeClamp = 2,
+ SamplerAddressingModeRepeat = 3,
+ SamplerAddressingModeRepeatMirrored = 4,
+};
+
+enum SamplerFilterMode {
+ SamplerFilterModeNearest = 0,
+ SamplerFilterModeLinear = 1,
+};
+
+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,
+};
+
+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,
+};
+
+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,
+};
+
+enum ImageOperandsShift {
+ ImageOperandsBiasShift = 0,
+ ImageOperandsLodShift = 1,
+ ImageOperandsGradShift = 2,
+ ImageOperandsOffsetShift = 3,
+ ImageOperandsOffsetsShift = 4,
+ ImageOperandsSampleShift = 5,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsOffsetMask = 0x00000008,
+ ImageOperandsOffsetsMask = 0x00000010,
+ ImageOperandsSampleMask = 0x00000020,
+};
+
+enum FPFastMathModeShift {
+ FPFastMathModeNotNaNShift = 0,
+ FPFastMathModeNotInfShift = 1,
+ FPFastMathModeNSZShift = 2,
+ FPFastMathModeAllowRecipShift = 3,
+ FPFastMathModeFastShift = 4,
+};
+
+enum FPFastMathModeMask {
+ FPFastMathModeMaskNone = 0,
+ FPFastMathModeNotNaNMask = 0x00000001,
+ FPFastMathModeNotInfMask = 0x00000002,
+ FPFastMathModeNSZMask = 0x00000004,
+ FPFastMathModeAllowRecipMask = 0x00000008,
+ FPFastMathModeFastMask = 0x00000010,
+};
+
+enum FPRoundingMode {
+ FPRoundingModeRTE = 0,
+ FPRoundingModeRTZ = 1,
+ FPRoundingModeRTP = 2,
+ FPRoundingModeRTN = 3,
+};
+
+enum LinkageType {
+ LinkageTypeExport = 0,
+ LinkageTypeImport = 1,
+};
+
+enum AccessQualifier {
+ AccessQualifierReadOnly = 0,
+ AccessQualifierWriteOnly = 1,
+ AccessQualifierReadWrite = 2,
+};
+
+enum FunctionParameterAttribute {
+ FunctionParameterAttributeZext = 0,
+ FunctionParameterAttributeSext = 1,
+ FunctionParameterAttributeByVal = 2,
+ FunctionParameterAttributeSret = 3,
+ FunctionParameterAttributeNoAlias = 4,
+ FunctionParameterAttributeNoCapture = 5,
+ FunctionParameterAttributeSVM = 6,
+ FunctionParameterAttributeNoWrite = 7,
+ FunctionParameterAttributeNoReadWrite = 8,
+};
+
+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,
+ DecorationSmooth = 12,
+ 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,
+ DecorationNoStaticUse = 27,
+ 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,
+};
+
+enum BuiltIn {
+ BuiltInPosition = 0,
+ BuiltInPointSize = 1,
+ BuiltInClipVertex = 2,
+ 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,
+ BuiltInFragColor = 21,
+ 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,
+ BuiltInWorkgroupLinearId = 35,
+ BuiltInSubgroupSize = 36,
+ BuiltInSubgroupMaxSize = 37,
+ BuiltInNumSubgroups = 38,
+ BuiltInNumEnqueuedSubgroups = 39,
+ BuiltInSubgroupId = 40,
+ BuiltInSubgroupLocalInvocationId = 41,
+};
+
+enum SelectionControlShift {
+ SelectionControlFlattenShift = 0,
+ SelectionControlDontFlattenShift = 1,
+};
+
+enum SelectionControlMask {
+ SelectionControlMaskNone = 0,
+ SelectionControlFlattenMask = 0x00000001,
+ SelectionControlDontFlattenMask = 0x00000002,
+};
+
+enum LoopControlShift {
+ LoopControlUnrollShift = 0,
+ LoopControlDontUnrollShift = 1,
+};
+
+enum LoopControlMask {
+ LoopControlMaskNone = 0,
+ LoopControlUnrollMask = 0x00000001,
+ LoopControlDontUnrollMask = 0x00000002,
+};
+
+enum FunctionControlShift {
+ FunctionControlInlineShift = 0,
+ FunctionControlDontInlineShift = 1,
+ FunctionControlPureShift = 2,
+ FunctionControlConstShift = 3,
+};
+
+enum FunctionControlMask {
+ FunctionControlMaskNone = 0,
+ FunctionControlInlineMask = 0x00000001,
+ FunctionControlDontInlineMask = 0x00000002,
+ FunctionControlPureMask = 0x00000004,
+ FunctionControlConstMask = 0x00000008,
+};
+
+enum MemorySemanticsShift {
+ MemorySemanticsRelaxedShift = 0,
+ MemorySemanticsSequentiallyConsistentShift = 1,
+ MemorySemanticsAcquireShift = 2,
+ MemorySemanticsReleaseShift = 3,
+ MemorySemanticsUniformMemoryShift = 4,
+ MemorySemanticsSubgroupMemoryShift = 5,
+ MemorySemanticsWorkgroupLocalMemoryShift = 6,
+ MemorySemanticsWorkgroupGlobalMemoryShift = 7,
+ MemorySemanticsAtomicCounterMemoryShift = 8,
+ MemorySemanticsImageMemoryShift = 9,
+};
+
+enum MemorySemanticsMask {
+ MemorySemanticsMaskNone = 0,
+ MemorySemanticsRelaxedMask = 0x00000001,
+ MemorySemanticsSequentiallyConsistentMask = 0x00000002,
+ MemorySemanticsAcquireMask = 0x00000004,
+ MemorySemanticsReleaseMask = 0x00000008,
+ MemorySemanticsUniformMemoryMask = 0x00000010,
+ MemorySemanticsSubgroupMemoryMask = 0x00000020,
+ MemorySemanticsWorkgroupLocalMemoryMask = 0x00000040,
+ MemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080,
+ MemorySemanticsAtomicCounterMemoryMask = 0x00000100,
+ MemorySemanticsImageMemoryMask = 0x00000200,
+};
+
+enum MemoryAccessShift {
+ MemoryAccessVolatileShift = 0,
+ MemoryAccessAlignedShift = 1,
+};
+
+enum MemoryAccessMask {
+ MemoryAccessMaskNone = 0,
+ MemoryAccessVolatileMask = 0x00000001,
+ MemoryAccessAlignedMask = 0x00000002,
+};
+
+enum Scope {
+ ScopeCrossDevice = 0,
+ ScopeDevice = 1,
+ ScopeWorkgroup = 2,
+ ScopeSubgroup = 3,
+ ScopeInvocation = 4,
+};
+
+enum GroupOperation {
+ GroupOperationReduce = 0,
+ GroupOperationInclusiveScan = 1,
+ GroupOperationExclusiveScan = 2,
+};
+
+enum KernelEnqueueFlags {
+ KernelEnqueueFlagsNoWait = 0,
+ KernelEnqueueFlagsWaitKernel = 1,
+ KernelEnqueueFlagsWaitWorkGroup = 2,
+};
+
+enum KernelProfilingInfoShift {
+ KernelProfilingInfoCmdExecTimeShift = 0,
+};
+
+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,
+ CapabilityImageSRGBWrite = 16,
+ CapabilityPipes = 17,
+ CapabilityGroups = 18,
+ CapabilityDeviceEnqueue = 19,
+ CapabilityLiteralSampler = 20,
+ CapabilityAtomicStorage = 21,
+ CapabilityInt16 = 22,
+};
+
+enum Op {
+ OpNop = 0,
+ OpUndef = 1,
+ 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,
+ 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,
+ 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,
+ OpImageQueryDim = 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,
+ OpIMulExtended = 151,
+ 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,
+ OpAtomicIMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicIMax = 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,
+ OpAsyncGroupCopy = 259,
+ OpWaitGroupEvents = 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,
+};
+
+// 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_H
+