mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-10 12:30:05 +00:00
d8132e164d
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30488 e7fa87d3-cd2b-0410-9028-fcbf551c1848
1305 lines
38 KiB
C++
1305 lines
38 KiB
C++
/*
|
|
** 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
|