Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Zhang <antiagainst@google.com>2015-08-14 21:46:43 +0300
committerLei Zhang <antiagainst@google.com>2015-08-17 18:40:24 +0300
commit604e5cea120d5eb97316aa9e8b0a3c2092bbb6a0 (patch)
tree562a0d88dc04da6f4077d054bf8cc94a7310fe2b /external
parent3b10fa8255719ea8228561ae1d2a7ebefc9403a7 (diff)
Update spirv.h to revision 31.
For enum Capability and enum Op, not all newly added enumerants are registered into capabilityInfoEntries and opcodeTableEntries yet. That will come in following commits.
Diffstat (limited to 'external')
-rw-r--r--external/include/headers/spirv.h1354
-rw-r--r--external/include/headers/spirv.hpp830
2 files changed, 830 insertions, 1354 deletions
diff --git a/external/include/headers/spirv.h b/external/include/headers/spirv.h
deleted file mode 100644
index a75bf18a1..000000000
--- a/external/include/headers/spirv.h
+++ /dev/null
@@ -1,1354 +0,0 @@
-/*
-** 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 {
-
-static const int MagicNumber = 0x07230203;
-static const int Version = 99;
-
-typedef unsigned int Id;
-
-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,
- 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,
- ExecutionModeOriginLowerLeft = 31,
-};
-
-enum StorageClass {
- StorageClassUniformConstant = 0,
- StorageClassInput = 1,
- StorageClassUniform = 2,
- StorageClassOutput = 3,
- StorageClassWorkgroupLocal = 4,
- StorageClassWorkgroupGlobal = 5,
- StorageClassPrivateGlobal = 6,
- StorageClassFunction = 7,
- StorageClassGeneric = 8,
- 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 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,
-};
-
-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,
- OpConstantNull = 32,
- 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,
- OpSpecConstantOp = 267,
- OpCapability = 268,
-};
-
-}; // end namespace spv
-
-#endif // #ifdef __cplusplus
-
-
-#ifndef __cplusplus
-
-static const int SpvMagicNumber = 0x07230203;
-static const int SpvVersion = 99;
-
-typedef unsigned int SpvId;
-
-static const unsigned int SpvOpCodeMask = 0xFFFF;
-static 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,
- SpvExecutionModeOriginLowerLeft = 31,
-} SpvExecutionMode;
-
-typedef enum SpvStorageClass_ {
- SpvStorageClassUniformConstant = 0,
- SpvStorageClassInput = 1,
- SpvStorageClassUniform = 2,
- SpvStorageClassOutput = 3,
- SpvStorageClassWorkgroupLocal = 4,
- SpvStorageClassWorkgroupGlobal = 5,
- SpvStorageClassPrivateGlobal = 6,
- SpvStorageClassFunction = 7,
- SpvStorageClassGeneric = 8,
- 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 SpvScope_ {
- SpvScopeCrossDevice = 0,
- SpvScopeDevice = 1,
- SpvScopeWorkgroup = 2,
- SpvScopeSubgroup = 3,
- SpvScopeInvocation = 4,
-} SpvScope;
-
-typedef enum SpvGroupOperation_ {
- SpvGroupOperationReduce = 0,
- SpvGroupOperationInclusiveScan = 1,
- SpvGroupOperationExclusiveScan = 2,
-} SpvGroupOperation;
-
-typedef enum SpvKernelEnqueueFlags_ {
- SpvKernelEnqueueFlagsNoWait = 0,
- SpvKernelEnqueueFlagsWaitKernel = 1,
- SpvKernelEnqueueFlagsWaitWorkGroup = 2,
-} SpvKernelEnqueueFlags;
-
-typedef enum SpvKernelProfilingInfoShift_ {
- SpvKernelProfilingInfoCmdExecTimeShift = 0,
-} SpvKernelProfilingInfoShift;
-
-typedef enum SpvKernelProfilingInfoMask_ {
- SpvKernelProfilingInfoMaskNone = 0,
- SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
-} SpvKernelProfilingInfoMask;
-
-typedef enum SpvCapability_ {
- SpvCapabilityMatrix = 0,
- SpvCapabilityShader = 1,
- SpvCapabilityGeometry = 2,
- SpvCapabilityTessellation = 3,
- SpvCapabilityAddresses = 4,
- SpvCapabilityLinkage = 5,
- SpvCapabilityKernel = 6,
- SpvCapabilityVector16 = 7,
- SpvCapabilityFloat16Buffer = 8,
- SpvCapabilityFloat16 = 9,
- SpvCapabilityFloat64 = 10,
- SpvCapabilityInt64 = 11,
- SpvCapabilityInt64Atomics = 12,
- SpvCapabilityImageBasic = 13,
- SpvCapabilityImageReadWrite = 14,
- SpvCapabilityImageMipmap = 15,
- SpvCapabilityImageSRGBWrite = 16,
- SpvCapabilityPipes = 17,
- SpvCapabilityGroups = 18,
- SpvCapabilityDeviceEnqueue = 19,
-} SpvCapability;
-
-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,
- SpvOpConstantNull = 32,
- 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,
- SpvOpSpecConstantOp = 267,
- SpvOpCapability = 268,
-} SpvOp;
-
-#endif // #ifndef __cplusplus
-
-#endif // #ifndef spirv_H
diff --git a/external/include/headers/spirv.hpp b/external/include/headers/spirv.hpp
new file mode 100644
index 000000000..1508b10bf
--- /dev/null
+++ b/external/include/headers/spirv.hpp
@@ -0,0 +1,830 @@
+// 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,
+ 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,
+ ImageOperandsConstOffsetShift = 3,
+ ImageOperandsOffsetShift = 4,
+ ImageOperandsConstOffsetsShift = 5,
+ ImageOperandsSampleShift = 6,
+};
+
+enum ImageOperandsMask {
+ ImageOperandsMaskNone = 0,
+ ImageOperandsBiasMask = 0x00000001,
+ ImageOperandsLodMask = 0x00000002,
+ ImageOperandsGradMask = 0x00000004,
+ ImageOperandsConstOffsetMask = 0x00000008,
+ ImageOperandsOffsetMask = 0x00000010,
+ ImageOperandsConstOffsetsMask = 0x00000020,
+ ImageOperandsSampleMask = 0x00000040,
+};
+
+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,
+ FunctionParameterAttributeNoWrite = 6,
+ FunctionParameterAttributeNoReadWrite = 7,
+};
+
+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,
+ 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,
+ CapabilityTessellationPointSize = 23,
+ CapabilityGeometryPointSize = 24,
+ CapabilityImageGatherExtended = 25,
+ CapabilityStorageImageExtendedFormats = 26,
+ CapabilityStorageImageMultisample = 27,
+ CapabilityUniformBufferArrayDynamicIndexing = 28,
+ CapabilitySampledImageArrayDynamicIndexing = 29,
+ CapabilityStorageBufferArrayDynamicIndexing = 30,
+ CapabilityStorageImageArrayDynamicIndexing = 31,
+ CapabilityClipDistance = 32,
+ CapabilityCullDistance = 33,
+ CapabilityImageCubeArray = 34,
+ CapabilitySampleRateShading = 35,
+};
+
+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,
+ OpAtomicSMin = 236,
+ OpAtomicUMin = 237,
+ OpAtomicSMax = 238,
+ OpAtomicUMax = 239,
+ OpAtomicAnd = 240,
+ OpAtomicOr = 241,
+ OpAtomicXor = 242,
+ OpPhi = 245,
+ OpLoopMerge = 246,
+ OpSelectionMerge = 247,
+ OpLabel = 248,
+ OpBranch = 249,
+ OpBranchConditional = 250,
+ OpSwitch = 251,
+ OpKill = 252,
+ OpReturn = 253,
+ OpReturnValue = 254,
+ OpUnreachable = 255,
+ OpLifetimeStart = 256,
+ OpLifetimeStop = 257,
+ 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
+