/* ** Copyright (c) 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 30. ** Enumeration tokens for SPIR-V, in three styles: C, C++, generic. ** - C++ will have the tokens in the "spv" name space, with no prefix. ** - C will have tokens with as "Spv" prefix. ** ** 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 #ifdef __cplusplus namespace spv { const int MagicNumber = 0x07230203; const int Version = 99; typedef unsigned int Id; const unsigned int OpCodeMask = 0xFFFF; 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, MemoryModelOpenCL12 = 2, MemoryModelOpenCL20 = 3, MemoryModelOpenCL21 = 4, }; enum ExecutionMode { ExecutionModeInvocations = 0, ExecutionModeSpacingEqual = 1, ExecutionModeSpacingFractionalEven = 2, ExecutionModeSpacingFractionalOdd = 3, ExecutionModeVertexOrderCw = 4, ExecutionModeVertexOrderCcw = 5, ExecutionModePixelCenterInteger = 6, ExecutionModeOriginUpperLeft = 7, ExecutionModeEarlyFragmentTests = 8, ExecutionModePointMode = 9, ExecutionModeXfb = 10, ExecutionModeDepthReplacing = 11, ExecutionModeDepthAny = 12, ExecutionModeDepthGreater = 13, ExecutionModeDepthLess = 14, ExecutionModeDepthUnchanged = 15, ExecutionModeLocalSize = 16, ExecutionModeLocalSizeHint = 17, ExecutionModeInputPoints = 18, ExecutionModeInputLines = 19, ExecutionModeInputLinesAdjacency = 20, ExecutionModeInputTriangles = 21, ExecutionModeInputTrianglesAdjacency = 22, ExecutionModeInputQuads = 23, ExecutionModeInputIsolines = 24, ExecutionModeOutputVertices = 25, ExecutionModeOutputPoints = 26, ExecutionModeOutputLineStrip = 27, ExecutionModeOutputTriangleStrip = 28, ExecutionModeVecTypeHint = 29, ExecutionModeContractionOff = 30, }; enum StorageClass { StorageClassUniformConstant = 0, StorageClassInput = 1, StorageClassUniform = 2, StorageClassOutput = 3, StorageClassWorkgroupLocal = 4, StorageClassWorkgroupGlobal = 5, StorageClassPrivateGlobal = 6, StorageClassFunction = 7, StorageClassGeneric = 8, StorageClassPrivate = 9, StorageClassAtomicCounter = 10, }; 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 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 { DecorationPrecisionLow = 0, DecorationPrecisionMedium = 1, DecorationPrecisionHigh = 2, DecorationBlock = 3, DecorationBufferBlock = 4, DecorationRowMajor = 5, DecorationColMajor = 6, DecorationGLSLShared = 7, DecorationGLSLStd140 = 8, DecorationGLSLStd430 = 9, DecorationGLSLPacked = 10, DecorationSmooth = 11, DecorationNoperspective = 12, DecorationFlat = 13, DecorationPatch = 14, DecorationCentroid = 15, DecorationSample = 16, DecorationInvariant = 17, DecorationRestrict = 18, DecorationAliased = 19, DecorationVolatile = 20, DecorationConstant = 21, DecorationCoherent = 22, DecorationNonwritable = 23, DecorationNonreadable = 24, DecorationUniform = 25, DecorationNoStaticUse = 26, DecorationCPacked = 27, DecorationSaturatedConversion = 28, DecorationStream = 29, DecorationLocation = 30, DecorationComponent = 31, DecorationIndex = 32, DecorationBinding = 33, DecorationDescriptorSet = 34, DecorationOffset = 35, DecorationAlignment = 36, DecorationXfbBuffer = 37, DecorationStride = 38, DecorationBuiltIn = 39, DecorationFuncParamAttr = 40, DecorationFPRoundingMode = 41, DecorationFPFastMathMode = 42, DecorationLinkageAttributes = 43, DecorationSpecId = 44, }; 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 ExecutionScope { ExecutionScopeCrossDevice = 0, ExecutionScopeDevice = 1, ExecutionScopeWorkgroup = 2, ExecutionScopeSubgroup = 3, }; 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 Op { OpNop = 0, OpSource = 1, OpSourceExtension = 2, OpExtension = 3, OpExtInstImport = 4, OpMemoryModel = 5, OpEntryPoint = 6, OpExecutionMode = 7, OpTypeVoid = 8, OpTypeBool = 9, OpTypeInt = 10, OpTypeFloat = 11, OpTypeVector = 12, OpTypeMatrix = 13, OpTypeSampler = 14, OpTypeFilter = 15, OpTypeArray = 16, OpTypeRuntimeArray = 17, OpTypeStruct = 18, OpTypeOpaque = 19, OpTypePointer = 20, OpTypeFunction = 21, OpTypeEvent = 22, OpTypeDeviceEvent = 23, OpTypeReserveId = 24, OpTypeQueue = 25, OpTypePipe = 26, OpConstantTrue = 27, OpConstantFalse = 28, OpConstant = 29, OpConstantComposite = 30, OpConstantSampler = 31, OpConstantNullPointer = 32, OpConstantNullObject = 33, OpSpecConstantTrue = 34, OpSpecConstantFalse = 35, OpSpecConstant = 36, OpSpecConstantComposite = 37, OpVariable = 38, OpVariableArray = 39, OpFunction = 40, OpFunctionParameter = 41, OpFunctionEnd = 42, OpFunctionCall = 43, OpExtInst = 44, OpUndef = 45, OpLoad = 46, OpStore = 47, OpPhi = 48, OpDecorationGroup = 49, OpDecorate = 50, OpMemberDecorate = 51, OpGroupDecorate = 52, OpGroupMemberDecorate = 53, OpName = 54, OpMemberName = 55, OpString = 56, OpLine = 57, OpVectorExtractDynamic = 58, OpVectorInsertDynamic = 59, OpVectorShuffle = 60, OpCompositeConstruct = 61, OpCompositeExtract = 62, OpCompositeInsert = 63, OpCopyObject = 64, OpCopyMemory = 65, OpCopyMemorySized = 66, OpSampler = 67, OpTextureSample = 68, OpTextureSampleDref = 69, OpTextureSampleLod = 70, OpTextureSampleProj = 71, OpTextureSampleGrad = 72, OpTextureSampleOffset = 73, OpTextureSampleProjLod = 74, OpTextureSampleProjGrad = 75, OpTextureSampleLodOffset = 76, OpTextureSampleProjOffset = 77, OpTextureSampleGradOffset = 78, OpTextureSampleProjLodOffset = 79, OpTextureSampleProjGradOffset = 80, OpTextureFetchTexelLod = 81, OpTextureFetchTexelOffset = 82, OpTextureFetchSample = 83, OpTextureFetchTexel = 84, OpTextureGather = 85, OpTextureGatherOffset = 86, OpTextureGatherOffsets = 87, OpTextureQuerySizeLod = 88, OpTextureQuerySize = 89, OpTextureQueryLod = 90, OpTextureQueryLevels = 91, OpTextureQuerySamples = 92, OpAccessChain = 93, OpInBoundsAccessChain = 94, OpSNegate = 95, OpFNegate = 96, OpNot = 97, OpAny = 98, OpAll = 99, OpConvertFToU = 100, OpConvertFToS = 101, OpConvertSToF = 102, OpConvertUToF = 103, OpUConvert = 104, OpSConvert = 105, OpFConvert = 106, OpConvertPtrToU = 107, OpConvertUToPtr = 108, OpPtrCastToGeneric = 109, OpGenericCastToPtr = 110, OpBitcast = 111, OpTranspose = 112, OpIsNan = 113, OpIsInf = 114, OpIsFinite = 115, OpIsNormal = 116, OpSignBitSet = 117, OpLessOrGreater = 118, OpOrdered = 119, OpUnordered = 120, OpArrayLength = 121, OpIAdd = 122, OpFAdd = 123, OpISub = 124, OpFSub = 125, OpIMul = 126, OpFMul = 127, OpUDiv = 128, OpSDiv = 129, OpFDiv = 130, OpUMod = 131, OpSRem = 132, OpSMod = 133, OpFRem = 134, OpFMod = 135, OpVectorTimesScalar = 136, OpMatrixTimesScalar = 137, OpVectorTimesMatrix = 138, OpMatrixTimesVector = 139, OpMatrixTimesMatrix = 140, OpOuterProduct = 141, OpDot = 142, OpShiftRightLogical = 143, OpShiftRightArithmetic = 144, OpShiftLeftLogical = 145, OpLogicalOr = 146, OpLogicalXor = 147, OpLogicalAnd = 148, OpBitwiseOr = 149, OpBitwiseXor = 150, OpBitwiseAnd = 151, OpSelect = 152, OpIEqual = 153, OpFOrdEqual = 154, OpFUnordEqual = 155, OpINotEqual = 156, OpFOrdNotEqual = 157, OpFUnordNotEqual = 158, OpULessThan = 159, OpSLessThan = 160, OpFOrdLessThan = 161, OpFUnordLessThan = 162, OpUGreaterThan = 163, OpSGreaterThan = 164, OpFOrdGreaterThan = 165, OpFUnordGreaterThan = 166, OpULessThanEqual = 167, OpSLessThanEqual = 168, OpFOrdLessThanEqual = 169, OpFUnordLessThanEqual = 170, OpUGreaterThanEqual = 171, OpSGreaterThanEqual = 172, OpFOrdGreaterThanEqual = 173, OpFUnordGreaterThanEqual = 174, OpDPdx = 175, OpDPdy = 176, OpFwidth = 177, OpDPdxFine = 178, OpDPdyFine = 179, OpFwidthFine = 180, OpDPdxCoarse = 181, OpDPdyCoarse = 182, OpFwidthCoarse = 183, OpEmitVertex = 184, OpEndPrimitive = 185, OpEmitStreamVertex = 186, OpEndStreamPrimitive = 187, OpControlBarrier = 188, OpMemoryBarrier = 189, OpImagePointer = 190, OpAtomicInit = 191, OpAtomicLoad = 192, OpAtomicStore = 193, OpAtomicExchange = 194, OpAtomicCompareExchange = 195, OpAtomicCompareExchangeWeak = 196, OpAtomicIIncrement = 197, OpAtomicIDecrement = 198, OpAtomicIAdd = 199, OpAtomicISub = 200, OpAtomicUMin = 201, OpAtomicUMax = 202, OpAtomicAnd = 203, OpAtomicOr = 204, OpAtomicXor = 205, OpLoopMerge = 206, OpSelectionMerge = 207, OpLabel = 208, OpBranch = 209, OpBranchConditional = 210, OpSwitch = 211, OpKill = 212, OpReturn = 213, OpReturnValue = 214, OpUnreachable = 215, OpLifetimeStart = 216, OpLifetimeStop = 217, OpCompileFlag = 218, OpAsyncGroupCopy = 219, OpWaitGroupEvents = 220, OpGroupAll = 221, OpGroupAny = 222, OpGroupBroadcast = 223, OpGroupIAdd = 224, OpGroupFAdd = 225, OpGroupFMin = 226, OpGroupUMin = 227, OpGroupSMin = 228, OpGroupFMax = 229, OpGroupUMax = 230, OpGroupSMax = 231, OpGenericCastToPtrExplicit = 232, OpGenericPtrMemSemantics = 233, OpReadPipe = 234, OpWritePipe = 235, OpReservedReadPipe = 236, OpReservedWritePipe = 237, OpReserveReadPipePackets = 238, OpReserveWritePipePackets = 239, OpCommitReadPipe = 240, OpCommitWritePipe = 241, OpIsValidReserveId = 242, OpGetNumPipePackets = 243, OpGetMaxPipePackets = 244, OpGroupReserveReadPipePackets = 245, OpGroupReserveWritePipePackets = 246, OpGroupCommitReadPipe = 247, OpGroupCommitWritePipe = 248, OpEnqueueMarker = 249, OpEnqueueKernel = 250, OpGetKernelNDrangeSubGroupCount = 251, OpGetKernelNDrangeMaxSubGroupSize = 252, OpGetKernelWorkGroupSize = 253, OpGetKernelPreferredWorkGroupSizeMultiple = 254, OpRetainEvent = 255, OpReleaseEvent = 256, OpCreateUserEvent = 257, OpIsValidEvent = 258, OpSetUserEventStatus = 259, OpCaptureEventProfilingInfo = 260, OpGetDefaultQueue = 261, OpBuildNDRange = 262, OpSatConvertSToU = 263, OpSatConvertUToS = 264, OpAtomicIMin = 265, OpAtomicIMax = 266, }; }; // end namespace spv #endif // #ifdef __cplusplus #ifndef __cplusplus const int SpvMagicNumber = 0x07230203; const int SpvVersion = 99; typedef unsigned int SpvId; const unsigned int SpvOpCodeMask = 0xFFFF; const unsigned int SpvWordCountShift = 16; typedef enum SpvSourceLanguage_ { SpvSourceLanguageUnknown = 0, SpvSourceLanguageESSL = 1, SpvSourceLanguageGLSL = 2, SpvSourceLanguageOpenCL = 3, } 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, SpvMemoryModelOpenCL12 = 2, SpvMemoryModelOpenCL20 = 3, SpvMemoryModelOpenCL21 = 4, } SpvMemoryModel; typedef enum SpvExecutionMode_ { SpvExecutionModeInvocations = 0, SpvExecutionModeSpacingEqual = 1, SpvExecutionModeSpacingFractionalEven = 2, SpvExecutionModeSpacingFractionalOdd = 3, SpvExecutionModeVertexOrderCw = 4, SpvExecutionModeVertexOrderCcw = 5, SpvExecutionModePixelCenterInteger = 6, SpvExecutionModeOriginUpperLeft = 7, SpvExecutionModeEarlyFragmentTests = 8, SpvExecutionModePointMode = 9, SpvExecutionModeXfb = 10, SpvExecutionModeDepthReplacing = 11, SpvExecutionModeDepthAny = 12, SpvExecutionModeDepthGreater = 13, SpvExecutionModeDepthLess = 14, SpvExecutionModeDepthUnchanged = 15, SpvExecutionModeLocalSize = 16, SpvExecutionModeLocalSizeHint = 17, SpvExecutionModeInputPoints = 18, SpvExecutionModeInputLines = 19, SpvExecutionModeInputLinesAdjacency = 20, SpvExecutionModeInputTriangles = 21, SpvExecutionModeInputTrianglesAdjacency = 22, SpvExecutionModeInputQuads = 23, SpvExecutionModeInputIsolines = 24, SpvExecutionModeOutputVertices = 25, SpvExecutionModeOutputPoints = 26, SpvExecutionModeOutputLineStrip = 27, SpvExecutionModeOutputTriangleStrip = 28, SpvExecutionModeVecTypeHint = 29, SpvExecutionModeContractionOff = 30, } SpvExecutionMode; typedef enum SpvStorageClass_ { SpvStorageClassUniformConstant = 0, SpvStorageClassInput = 1, SpvStorageClassUniform = 2, SpvStorageClassOutput = 3, SpvStorageClassWorkgroupLocal = 4, SpvStorageClassWorkgroupGlobal = 5, SpvStorageClassPrivateGlobal = 6, SpvStorageClassFunction = 7, SpvStorageClassGeneric = 8, SpvStorageClassPrivate = 9, SpvStorageClassAtomicCounter = 10, } SpvStorageClass; typedef enum SpvDim_ { SpvDim1D = 0, SpvDim2D = 1, SpvDim3D = 2, SpvDimCube = 3, SpvDimRect = 4, SpvDimBuffer = 5, } 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 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, SpvFunctionParameterAttributeSVM = 6, SpvFunctionParameterAttributeNoWrite = 7, SpvFunctionParameterAttributeNoReadWrite = 8, } SpvFunctionParameterAttribute; typedef enum SpvDecoration_ { SpvDecorationPrecisionLow = 0, SpvDecorationPrecisionMedium = 1, SpvDecorationPrecisionHigh = 2, SpvDecorationBlock = 3, SpvDecorationBufferBlock = 4, SpvDecorationRowMajor = 5, SpvDecorationColMajor = 6, SpvDecorationGLSLShared = 7, SpvDecorationGLSLStd140 = 8, SpvDecorationGLSLStd430 = 9, SpvDecorationGLSLPacked = 10, SpvDecorationSmooth = 11, SpvDecorationNoperspective = 12, SpvDecorationFlat = 13, SpvDecorationPatch = 14, SpvDecorationCentroid = 15, SpvDecorationSample = 16, SpvDecorationInvariant = 17, SpvDecorationRestrict = 18, SpvDecorationAliased = 19, SpvDecorationVolatile = 20, SpvDecorationConstant = 21, SpvDecorationCoherent = 22, SpvDecorationNonwritable = 23, SpvDecorationNonreadable = 24, SpvDecorationUniform = 25, SpvDecorationNoStaticUse = 26, SpvDecorationCPacked = 27, SpvDecorationSaturatedConversion = 28, SpvDecorationStream = 29, SpvDecorationLocation = 30, SpvDecorationComponent = 31, SpvDecorationIndex = 32, SpvDecorationBinding = 33, SpvDecorationDescriptorSet = 34, SpvDecorationOffset = 35, SpvDecorationAlignment = 36, SpvDecorationXfbBuffer = 37, SpvDecorationStride = 38, SpvDecorationBuiltIn = 39, SpvDecorationFuncParamAttr = 40, SpvDecorationFPRoundingMode = 41, SpvDecorationFPFastMathMode = 42, SpvDecorationLinkageAttributes = 43, SpvDecorationSpecId = 44, } SpvDecoration; typedef enum SpvBuiltIn_ { SpvBuiltInPosition = 0, SpvBuiltInPointSize = 1, SpvBuiltInClipVertex = 2, 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, SpvBuiltInFragColor = 21, 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, SpvBuiltInWorkgroupLinearId = 35, SpvBuiltInSubgroupSize = 36, SpvBuiltInSubgroupMaxSize = 37, SpvBuiltInNumSubgroups = 38, SpvBuiltInNumEnqueuedSubgroups = 39, SpvBuiltInSubgroupId = 40, SpvBuiltInSubgroupLocalInvocationId = 41, } 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_ { SpvMemorySemanticsRelaxedShift = 0, SpvMemorySemanticsSequentiallyConsistentShift = 1, SpvMemorySemanticsAcquireShift = 2, SpvMemorySemanticsReleaseShift = 3, SpvMemorySemanticsUniformMemoryShift = 4, SpvMemorySemanticsSubgroupMemoryShift = 5, SpvMemorySemanticsWorkgroupLocalMemoryShift = 6, SpvMemorySemanticsWorkgroupGlobalMemoryShift = 7, SpvMemorySemanticsAtomicCounterMemoryShift = 8, SpvMemorySemanticsImageMemoryShift = 9, } SpvMemorySemanticsShift; typedef enum SpvMemorySemanticsMask_ { SpvMemorySemanticsMaskNone = 0, SpvMemorySemanticsRelaxedMask = 0x00000001, SpvMemorySemanticsSequentiallyConsistentMask = 0x00000002, SpvMemorySemanticsAcquireMask = 0x00000004, SpvMemorySemanticsReleaseMask = 0x00000008, SpvMemorySemanticsUniformMemoryMask = 0x00000010, SpvMemorySemanticsSubgroupMemoryMask = 0x00000020, SpvMemorySemanticsWorkgroupLocalMemoryMask = 0x00000040, SpvMemorySemanticsWorkgroupGlobalMemoryMask = 0x00000080, SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000100, SpvMemorySemanticsImageMemoryMask = 0x00000200, } SpvMemorySemanticsMask; typedef enum SpvMemoryAccessShift_ { SpvMemoryAccessVolatileShift = 0, SpvMemoryAccessAlignedShift = 1, } SpvMemoryAccessShift; typedef enum SpvMemoryAccessMask_ { SpvMemoryAccessMaskNone = 0, SpvMemoryAccessVolatileMask = 0x00000001, SpvMemoryAccessAlignedMask = 0x00000002, } SpvMemoryAccessMask; typedef enum SpvExecutionScope_ { SpvExecutionScopeCrossDevice = 0, SpvExecutionScopeDevice = 1, SpvExecutionScopeWorkgroup = 2, SpvExecutionScopeSubgroup = 3, } SpvExecutionScope; 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 SpvOp_ { SpvOpNop = 0, SpvOpSource = 1, SpvOpSourceExtension = 2, SpvOpExtension = 3, SpvOpExtInstImport = 4, SpvOpMemoryModel = 5, SpvOpEntryPoint = 6, SpvOpExecutionMode = 7, SpvOpTypeVoid = 8, SpvOpTypeBool = 9, SpvOpTypeInt = 10, SpvOpTypeFloat = 11, SpvOpTypeVector = 12, SpvOpTypeMatrix = 13, SpvOpTypeSampler = 14, SpvOpTypeFilter = 15, SpvOpTypeArray = 16, SpvOpTypeRuntimeArray = 17, SpvOpTypeStruct = 18, SpvOpTypeOpaque = 19, SpvOpTypePointer = 20, SpvOpTypeFunction = 21, SpvOpTypeEvent = 22, SpvOpTypeDeviceEvent = 23, SpvOpTypeReserveId = 24, SpvOpTypeQueue = 25, SpvOpTypePipe = 26, SpvOpConstantTrue = 27, SpvOpConstantFalse = 28, SpvOpConstant = 29, SpvOpConstantComposite = 30, SpvOpConstantSampler = 31, SpvOpConstantNullPointer = 32, SpvOpConstantNullObject = 33, SpvOpSpecConstantTrue = 34, SpvOpSpecConstantFalse = 35, SpvOpSpecConstant = 36, SpvOpSpecConstantComposite = 37, SpvOpVariable = 38, SpvOpVariableArray = 39, SpvOpFunction = 40, SpvOpFunctionParameter = 41, SpvOpFunctionEnd = 42, SpvOpFunctionCall = 43, SpvOpExtInst = 44, SpvOpUndef = 45, SpvOpLoad = 46, SpvOpStore = 47, SpvOpPhi = 48, SpvOpDecorationGroup = 49, SpvOpDecorate = 50, SpvOpMemberDecorate = 51, SpvOpGroupDecorate = 52, SpvOpGroupMemberDecorate = 53, SpvOpName = 54, SpvOpMemberName = 55, SpvOpString = 56, SpvOpLine = 57, SpvOpVectorExtractDynamic = 58, SpvOpVectorInsertDynamic = 59, SpvOpVectorShuffle = 60, SpvOpCompositeConstruct = 61, SpvOpCompositeExtract = 62, SpvOpCompositeInsert = 63, SpvOpCopyObject = 64, SpvOpCopyMemory = 65, SpvOpCopyMemorySized = 66, SpvOpSampler = 67, SpvOpTextureSample = 68, SpvOpTextureSampleDref = 69, SpvOpTextureSampleLod = 70, SpvOpTextureSampleProj = 71, SpvOpTextureSampleGrad = 72, SpvOpTextureSampleOffset = 73, SpvOpTextureSampleProjLod = 74, SpvOpTextureSampleProjGrad = 75, SpvOpTextureSampleLodOffset = 76, SpvOpTextureSampleProjOffset = 77, SpvOpTextureSampleGradOffset = 78, SpvOpTextureSampleProjLodOffset = 79, SpvOpTextureSampleProjGradOffset = 80, SpvOpTextureFetchTexelLod = 81, SpvOpTextureFetchTexelOffset = 82, SpvOpTextureFetchSample = 83, SpvOpTextureFetchTexel = 84, SpvOpTextureGather = 85, SpvOpTextureGatherOffset = 86, SpvOpTextureGatherOffsets = 87, SpvOpTextureQuerySizeLod = 88, SpvOpTextureQuerySize = 89, SpvOpTextureQueryLod = 90, SpvOpTextureQueryLevels = 91, SpvOpTextureQuerySamples = 92, SpvOpAccessChain = 93, SpvOpInBoundsAccessChain = 94, SpvOpSNegate = 95, SpvOpFNegate = 96, SpvOpNot = 97, SpvOpAny = 98, SpvOpAll = 99, SpvOpConvertFToU = 100, SpvOpConvertFToS = 101, SpvOpConvertSToF = 102, SpvOpConvertUToF = 103, SpvOpUConvert = 104, SpvOpSConvert = 105, SpvOpFConvert = 106, SpvOpConvertPtrToU = 107, SpvOpConvertUToPtr = 108, SpvOpPtrCastToGeneric = 109, SpvOpGenericCastToPtr = 110, SpvOpBitcast = 111, SpvOpTranspose = 112, SpvOpIsNan = 113, SpvOpIsInf = 114, SpvOpIsFinite = 115, SpvOpIsNormal = 116, SpvOpSignBitSet = 117, SpvOpLessOrGreater = 118, SpvOpOrdered = 119, SpvOpUnordered = 120, SpvOpArrayLength = 121, SpvOpIAdd = 122, SpvOpFAdd = 123, SpvOpISub = 124, SpvOpFSub = 125, SpvOpIMul = 126, SpvOpFMul = 127, SpvOpUDiv = 128, SpvOpSDiv = 129, SpvOpFDiv = 130, SpvOpUMod = 131, SpvOpSRem = 132, SpvOpSMod = 133, SpvOpFRem = 134, SpvOpFMod = 135, SpvOpVectorTimesScalar = 136, SpvOpMatrixTimesScalar = 137, SpvOpVectorTimesMatrix = 138, SpvOpMatrixTimesVector = 139, SpvOpMatrixTimesMatrix = 140, SpvOpOuterProduct = 141, SpvOpDot = 142, SpvOpShiftRightLogical = 143, SpvOpShiftRightArithmetic = 144, SpvOpShiftLeftLogical = 145, SpvOpLogicalOr = 146, SpvOpLogicalXor = 147, SpvOpLogicalAnd = 148, SpvOpBitwiseOr = 149, SpvOpBitwiseXor = 150, SpvOpBitwiseAnd = 151, SpvOpSelect = 152, SpvOpIEqual = 153, SpvOpFOrdEqual = 154, SpvOpFUnordEqual = 155, SpvOpINotEqual = 156, SpvOpFOrdNotEqual = 157, SpvOpFUnordNotEqual = 158, SpvOpULessThan = 159, SpvOpSLessThan = 160, SpvOpFOrdLessThan = 161, SpvOpFUnordLessThan = 162, SpvOpUGreaterThan = 163, SpvOpSGreaterThan = 164, SpvOpFOrdGreaterThan = 165, SpvOpFUnordGreaterThan = 166, SpvOpULessThanEqual = 167, SpvOpSLessThanEqual = 168, SpvOpFOrdLessThanEqual = 169, SpvOpFUnordLessThanEqual = 170, SpvOpUGreaterThanEqual = 171, SpvOpSGreaterThanEqual = 172, SpvOpFOrdGreaterThanEqual = 173, SpvOpFUnordGreaterThanEqual = 174, SpvOpDPdx = 175, SpvOpDPdy = 176, SpvOpFwidth = 177, SpvOpDPdxFine = 178, SpvOpDPdyFine = 179, SpvOpFwidthFine = 180, SpvOpDPdxCoarse = 181, SpvOpDPdyCoarse = 182, SpvOpFwidthCoarse = 183, SpvOpEmitVertex = 184, SpvOpEndPrimitive = 185, SpvOpEmitStreamVertex = 186, SpvOpEndStreamPrimitive = 187, SpvOpControlBarrier = 188, SpvOpMemoryBarrier = 189, SpvOpImagePointer = 190, SpvOpAtomicInit = 191, SpvOpAtomicLoad = 192, SpvOpAtomicStore = 193, SpvOpAtomicExchange = 194, SpvOpAtomicCompareExchange = 195, SpvOpAtomicCompareExchangeWeak = 196, SpvOpAtomicIIncrement = 197, SpvOpAtomicIDecrement = 198, SpvOpAtomicIAdd = 199, SpvOpAtomicISub = 200, SpvOpAtomicUMin = 201, SpvOpAtomicUMax = 202, SpvOpAtomicAnd = 203, SpvOpAtomicOr = 204, SpvOpAtomicXor = 205, SpvOpLoopMerge = 206, SpvOpSelectionMerge = 207, SpvOpLabel = 208, SpvOpBranch = 209, SpvOpBranchConditional = 210, SpvOpSwitch = 211, SpvOpKill = 212, SpvOpReturn = 213, SpvOpReturnValue = 214, SpvOpUnreachable = 215, SpvOpLifetimeStart = 216, SpvOpLifetimeStop = 217, SpvOpCompileFlag = 218, SpvOpAsyncGroupCopy = 219, SpvOpWaitGroupEvents = 220, SpvOpGroupAll = 221, SpvOpGroupAny = 222, SpvOpGroupBroadcast = 223, SpvOpGroupIAdd = 224, SpvOpGroupFAdd = 225, SpvOpGroupFMin = 226, SpvOpGroupUMin = 227, SpvOpGroupSMin = 228, SpvOpGroupFMax = 229, SpvOpGroupUMax = 230, SpvOpGroupSMax = 231, SpvOpGenericCastToPtrExplicit = 232, SpvOpGenericPtrMemSemantics = 233, SpvOpReadPipe = 234, SpvOpWritePipe = 235, SpvOpReservedReadPipe = 236, SpvOpReservedWritePipe = 237, SpvOpReserveReadPipePackets = 238, SpvOpReserveWritePipePackets = 239, SpvOpCommitReadPipe = 240, SpvOpCommitWritePipe = 241, SpvOpIsValidReserveId = 242, SpvOpGetNumPipePackets = 243, SpvOpGetMaxPipePackets = 244, SpvOpGroupReserveReadPipePackets = 245, SpvOpGroupReserveWritePipePackets = 246, SpvOpGroupCommitReadPipe = 247, SpvOpGroupCommitWritePipe = 248, SpvOpEnqueueMarker = 249, SpvOpEnqueueKernel = 250, SpvOpGetKernelNDrangeSubGroupCount = 251, SpvOpGetKernelNDrangeMaxSubGroupSize = 252, SpvOpGetKernelWorkGroupSize = 253, SpvOpGetKernelPreferredWorkGroupSizeMultiple = 254, SpvOpRetainEvent = 255, SpvOpReleaseEvent = 256, SpvOpCreateUserEvent = 257, SpvOpIsValidEvent = 258, SpvOpSetUserEventStatus = 259, SpvOpCaptureEventProfilingInfo = 260, SpvOpGetDefaultQueue = 261, SpvOpBuildNDRange = 262, SpvOpSatConvertSToU = 263, SpvOpSatConvertUToS = 264, SpvOpAtomicIMin = 265, SpvOpAtomicIMax = 266, } SpvOp; #endif // #ifndef __cplusplus #endif // #ifndef spirv_H