// Copyright (c) 2014-2016 The Khronos Group Inc. | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a copy | |
// of this software and/or associated documentation files (the "Materials"), | |
// to deal in the Materials without restriction, including without limitation | |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
// and/or sell copies of the Materials, and to permit persons to whom the | |
// Materials are furnished to do so, subject to the following conditions: | |
// | |
// The above copyright notice and this permission notice shall be included in | |
// all copies or substantial portions of the Materials. | |
// | |
// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS | |
// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND | |
// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ | |
// | |
// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS | |
// IN THE MATERIALS. | |
// This header is automatically generated by the same tool that creates | |
// the Binary Section of the SPIR-V specification. | |
// Enumeration tokens for SPIR-V, in various styles: | |
// C, C++, C++11, JSON, Lua, Python | |
// | |
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL | |
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL | |
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL | |
// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL | |
// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] | |
// | |
// Some tokens act like mask values, which can be OR'd together, | |
// while others are mutually exclusive. The mask-like ones have | |
// "Mask" in their name, and a parallel enum that has the shift | |
// amount (1 << x) for each corresponding enumerant. | |
#ifndef spirv_HPP | |
#define spirv_HPP | |
namespace spv { | |
typedef unsigned int Id; | |
#define SPV_VERSION 0x10000 | |
#define SPV_REVISION 3 | |
static const unsigned int MagicNumber = 0x07230203; | |
static const unsigned int Version = 0x00010000; | |
static const unsigned int Revision = 3; | |
static const unsigned int OpCodeMask = 0xffff; | |
static const unsigned int WordCountShift = 16; | |
enum SourceLanguage { | |
SourceLanguageUnknown = 0, | |
SourceLanguageESSL = 1, | |
SourceLanguageGLSL = 2, | |
SourceLanguageOpenCL_C = 3, | |
SourceLanguageOpenCL_CPP = 4, | |
}; | |
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, | |
ExecutionModeDepthGreater = 14, | |
ExecutionModeDepthLess = 15, | |
ExecutionModeDepthUnchanged = 16, | |
ExecutionModeLocalSize = 17, | |
ExecutionModeLocalSizeHint = 18, | |
ExecutionModeInputPoints = 19, | |
ExecutionModeInputLines = 20, | |
ExecutionModeInputLinesAdjacency = 21, | |
ExecutionModeTriangles = 22, | |
ExecutionModeInputTrianglesAdjacency = 23, | |
ExecutionModeQuads = 24, | |
ExecutionModeIsolines = 25, | |
ExecutionModeOutputVertices = 26, | |
ExecutionModeOutputPoints = 27, | |
ExecutionModeOutputLineStrip = 28, | |
ExecutionModeOutputTriangleStrip = 29, | |
ExecutionModeVecTypeHint = 30, | |
ExecutionModeContractionOff = 31, | |
}; | |
enum StorageClass { | |
StorageClassUniformConstant = 0, | |
StorageClassInput = 1, | |
StorageClassUniform = 2, | |
StorageClassOutput = 3, | |
StorageClassWorkgroup = 4, | |
StorageClassCrossWorkgroup = 5, | |
StorageClassPrivate = 6, | |
StorageClassFunction = 7, | |
StorageClassGeneric = 8, | |
StorageClassPushConstant = 9, | |
StorageClassAtomicCounter = 10, | |
StorageClassImage = 11, | |
}; | |
enum Dim { | |
Dim1D = 0, | |
Dim2D = 1, | |
Dim3D = 2, | |
DimCube = 3, | |
DimRect = 4, | |
DimBuffer = 5, | |
DimSubpassData = 6, | |
}; | |
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, | |
ImageChannelDataTypeUnormInt101010_2 = 16, | |
}; | |
enum ImageOperandsShift { | |
ImageOperandsBiasShift = 0, | |
ImageOperandsLodShift = 1, | |
ImageOperandsGradShift = 2, | |
ImageOperandsConstOffsetShift = 3, | |
ImageOperandsOffsetShift = 4, | |
ImageOperandsConstOffsetsShift = 5, | |
ImageOperandsSampleShift = 6, | |
ImageOperandsMinLodShift = 7, | |
}; | |
enum ImageOperandsMask { | |
ImageOperandsMaskNone = 0, | |
ImageOperandsBiasMask = 0x00000001, | |
ImageOperandsLodMask = 0x00000002, | |
ImageOperandsGradMask = 0x00000004, | |
ImageOperandsConstOffsetMask = 0x00000008, | |
ImageOperandsOffsetMask = 0x00000010, | |
ImageOperandsConstOffsetsMask = 0x00000020, | |
ImageOperandsSampleMask = 0x00000040, | |
ImageOperandsMinLodMask = 0x00000080, | |
}; | |
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, | |
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, | |
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, | |
DecorationNoContraction = 42, | |
DecorationInputAttachmentIndex = 43, | |
DecorationAlignment = 44, | |
}; | |
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, | |
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, | |
BuiltInSubgroupSize = 36, | |
BuiltInSubgroupMaxSize = 37, | |
BuiltInNumSubgroups = 38, | |
BuiltInNumEnqueuedSubgroups = 39, | |
BuiltInSubgroupId = 40, | |
BuiltInSubgroupLocalInvocationId = 41, | |
BuiltInVertexIndex = 42, | |
BuiltInInstanceIndex = 43, | |
}; | |
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 { | |
MemorySemanticsAcquireShift = 1, | |
MemorySemanticsReleaseShift = 2, | |
MemorySemanticsAcquireReleaseShift = 3, | |
MemorySemanticsSequentiallyConsistentShift = 4, | |
MemorySemanticsUniformMemoryShift = 6, | |
MemorySemanticsSubgroupMemoryShift = 7, | |
MemorySemanticsWorkgroupMemoryShift = 8, | |
MemorySemanticsCrossWorkgroupMemoryShift = 9, | |
MemorySemanticsAtomicCounterMemoryShift = 10, | |
MemorySemanticsImageMemoryShift = 11, | |
}; | |
enum MemorySemanticsMask { | |
MemorySemanticsMaskNone = 0, | |
MemorySemanticsAcquireMask = 0x00000002, | |
MemorySemanticsReleaseMask = 0x00000004, | |
MemorySemanticsAcquireReleaseMask = 0x00000008, | |
MemorySemanticsSequentiallyConsistentMask = 0x00000010, | |
MemorySemanticsUniformMemoryMask = 0x00000040, | |
MemorySemanticsSubgroupMemoryMask = 0x00000080, | |
MemorySemanticsWorkgroupMemoryMask = 0x00000100, | |
MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, | |
MemorySemanticsAtomicCounterMemoryMask = 0x00000400, | |
MemorySemanticsImageMemoryMask = 0x00000800, | |
}; | |
enum MemoryAccessShift { | |
MemoryAccessVolatileShift = 0, | |
MemoryAccessAlignedShift = 1, | |
MemoryAccessNontemporalShift = 2, | |
}; | |
enum MemoryAccessMask { | |
MemoryAccessMaskNone = 0, | |
MemoryAccessVolatileMask = 0x00000001, | |
MemoryAccessAlignedMask = 0x00000002, | |
MemoryAccessNontemporalMask = 0x00000004, | |
}; | |
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, | |
CapabilityPipes = 17, | |
CapabilityGroups = 18, | |
CapabilityDeviceEnqueue = 19, | |
CapabilityLiteralSampler = 20, | |
CapabilityAtomicStorage = 21, | |
CapabilityInt16 = 22, | |
CapabilityTessellationPointSize = 23, | |
CapabilityGeometryPointSize = 24, | |
CapabilityImageGatherExtended = 25, | |
CapabilityStorageImageMultisample = 27, | |
CapabilityUniformBufferArrayDynamicIndexing = 28, | |
CapabilitySampledImageArrayDynamicIndexing = 29, | |
CapabilityStorageBufferArrayDynamicIndexing = 30, | |
CapabilityStorageImageArrayDynamicIndexing = 31, | |
CapabilityClipDistance = 32, | |
CapabilityCullDistance = 33, | |
CapabilityImageCubeArray = 34, | |
CapabilitySampleRateShading = 35, | |
CapabilityImageRect = 36, | |
CapabilitySampledRect = 37, | |
CapabilityGenericPointer = 38, | |
CapabilityInt8 = 39, | |
CapabilityInputAttachment = 40, | |
CapabilitySparseResidency = 41, | |
CapabilityMinLod = 42, | |
CapabilitySampled1D = 43, | |
CapabilityImage1D = 44, | |
CapabilitySampledCubeArray = 45, | |
CapabilitySampledBuffer = 46, | |
CapabilityImageBuffer = 47, | |
CapabilityImageMSArray = 48, | |
CapabilityStorageImageExtendedFormats = 49, | |
CapabilityImageQuery = 50, | |
CapabilityDerivativeControl = 51, | |
CapabilityInterpolationFunction = 52, | |
CapabilityTransformFeedback = 53, | |
CapabilityGeometryStreams = 54, | |
CapabilityStorageImageReadWithoutFormat = 55, | |
CapabilityStorageImageWriteWithoutFormat = 56, | |
CapabilityMultiViewport = 57, | |
}; | |
enum Op { | |
OpNop = 0, | |
OpUndef = 1, | |
OpSourceContinued = 2, | |
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, | |
OpTypeForwardPointer = 39, | |
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, | |
OpInBoundsPtrAccessChain = 70, | |
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, | |
OpImage = 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, | |
OpUMulExtended = 151, | |
OpSMulExtended = 152, | |
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, | |
OpGroupAsyncCopy = 259, | |
OpGroupWaitEvents = 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, | |
OpImageSparseSampleImplicitLod = 305, | |
OpImageSparseSampleExplicitLod = 306, | |
OpImageSparseSampleDrefImplicitLod = 307, | |
OpImageSparseSampleDrefExplicitLod = 308, | |
OpImageSparseSampleProjImplicitLod = 309, | |
OpImageSparseSampleProjExplicitLod = 310, | |
OpImageSparseSampleProjDrefImplicitLod = 311, | |
OpImageSparseSampleProjDrefExplicitLod = 312, | |
OpImageSparseFetch = 313, | |
OpImageSparseGather = 314, | |
OpImageSparseDrefGather = 315, | |
OpImageSparseTexelsResident = 316, | |
OpNoLine = 317, | |
OpAtomicFlagTestAndSet = 318, | |
OpAtomicFlagClear = 319, | |
OpImageSparseRead = 320, | |
}; | |
// 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_HPP |