/*
** 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_H
#define spirv_H
typedef unsigned int SpvId;
#define SPV_VERSION
0x10000
#define SPV_REVISION
4
static const unsigned int SpvMagicNumber =
0x07230203;
static const unsigned int SpvVersion =
0x00010000;
static const unsigned int SpvRevision =
4;
static const unsigned int SpvOpCodeMask =
0xffff;
static const unsigned int SpvWordCountShift =
16;
typedef enum SpvSourceLanguage_ {
SpvSourceLanguageUnknown =
0,
SpvSourceLanguageESSL =
1,
SpvSourceLanguageGLSL =
2,
SpvSourceLanguageOpenCL_C =
3,
SpvSourceLanguageOpenCL_CPP =
4,
} 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,
SpvMemoryModelOpenCL =
2,
} SpvMemoryModel;
typedef enum SpvExecutionMode_ {
SpvExecutionModeInvocations =
0,
SpvExecutionModeSpacingEqual =
1,
SpvExecutionModeSpacingFractionalEven =
2,
SpvExecutionModeSpacingFractionalOdd =
3,
SpvExecutionModeVertexOrderCw =
4,
SpvExecutionModeVertexOrderCcw =
5,
SpvExecutionModePixelCenterInteger =
6,
SpvExecutionModeOriginUpperLeft =
7,
SpvExecutionModeOriginLowerLeft =
8,
SpvExecutionModeEarlyFragmentTests =
9,
SpvExecutionModePointMode =
10,
SpvExecutionModeXfb =
11,
SpvExecutionModeDepthReplacing =
12,
SpvExecutionModeDepthGreater =
14,
SpvExecutionModeDepthLess =
15,
SpvExecutionModeDepthUnchanged =
16,
SpvExecutionModeLocalSize =
17,
SpvExecutionModeLocalSizeHint =
18,
SpvExecutionModeInputPoints =
19,
SpvExecutionModeInputLines =
20,
SpvExecutionModeInputLinesAdjacency =
21,
SpvExecutionModeTriangles =
22,
SpvExecutionModeInputTrianglesAdjacency =
23,
SpvExecutionModeQuads =
24,
SpvExecutionModeIsolines =
25,
SpvExecutionModeOutputVertices =
26,
SpvExecutionModeOutputPoints =
27,
SpvExecutionModeOutputLineStrip =
28,
SpvExecutionModeOutputTriangleStrip =
29,
SpvExecutionModeVecTypeHint =
30,
SpvExecutionModeContractionOff =
31,
} SpvExecutionMode;
typedef enum SpvStorageClass_ {
SpvStorageClassUniformConstant =
0,
SpvStorageClassInput =
1,
SpvStorageClassUniform =
2,
SpvStorageClassOutput =
3,
SpvStorageClassWorkgroup =
4,
SpvStorageClassCrossWorkgroup =
5,
SpvStorageClassPrivate =
6,
SpvStorageClassFunction =
7,
SpvStorageClassGeneric =
8,
SpvStorageClassPushConstant =
9,
SpvStorageClassAtomicCounter =
10,
SpvStorageClassImage =
11,
} SpvStorageClass;
typedef enum SpvDim_ {
SpvDim1D =
0,
SpvDim2D =
1,
SpvDim3D =
2,
SpvDimCube =
3,
SpvDimRect =
4,
SpvDimBuffer =
5,
SpvDimSubpassData =
6,
} 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 SpvImageFormat_ {
SpvImageFormatUnknown =
0,
SpvImageFormatRgba32f =
1,
SpvImageFormatRgba16f =
2,
SpvImageFormatR32f =
3,
SpvImageFormatRgba8 =
4,
SpvImageFormatRgba8Snorm =
5,
SpvImageFormatRg32f =
6,
SpvImageFormatRg16f =
7,
SpvImageFormatR11fG11fB10f =
8,
SpvImageFormatR16f =
9,
SpvImageFormatRgba16 =
10,
SpvImageFormatRgb10A2 =
11,
SpvImageFormatRg16 =
12,
SpvImageFormatRg8 =
13,
SpvImageFormatR16 =
14,
SpvImageFormatR8 =
15,
SpvImageFormatRgba16Snorm =
16,
SpvImageFormatRg16Snorm =
17,
SpvImageFormatRg8Snorm =
18,
SpvImageFormatR16Snorm =
19,
SpvImageFormatR8Snorm =
20,
SpvImageFormatRgba32i =
21,
SpvImageFormatRgba16i =
22,
SpvImageFormatRgba8i =
23,
SpvImageFormatR32i =
24,
SpvImageFormatRg32i =
25,
SpvImageFormatRg16i =
26,
SpvImageFormatRg8i =
27,
SpvImageFormatR16i =
28,
SpvImageFormatR8i =
29,
SpvImageFormatRgba32ui =
30,
SpvImageFormatRgba16ui =
31,
SpvImageFormatRgba8ui =
32,
SpvImageFormatR32ui =
33,
SpvImageFormatRgb10a2ui =
34,
SpvImageFormatRg32ui =
35,
SpvImageFormatRg16ui =
36,
SpvImageFormatRg8ui =
37,
SpvImageFormatR16ui =
38,
SpvImageFormatR8ui =
39,
} SpvImageFormat;
typedef enum SpvImageChannelOrder_ {
SpvImageChannelOrderR =
0,
SpvImageChannelOrderA =
1,
SpvImageChannelOrderRG =
2,
SpvImageChannelOrderRA =
3,
SpvImageChannelOrderRGB =
4,
SpvImageChannelOrderRGBA =
5,
SpvImageChannelOrderBGRA =
6,
SpvImageChannelOrderARGB =
7,
SpvImageChannelOrderIntensity =
8,
SpvImageChannelOrderLuminance =
9,
SpvImageChannelOrderRx =
10,
SpvImageChannelOrderRGx =
11,
SpvImageChannelOrderRGBx =
12,
SpvImageChannelOrderDepth =
13,
SpvImageChannelOrderDepthStencil =
14,
SpvImageChannelOrdersRGB =
15,
SpvImageChannelOrdersRGBx =
16,
SpvImageChannelOrdersRGBA =
17,
SpvImageChannelOrdersBGRA =
18,
} SpvImageChannelOrder;
typedef enum SpvImageChannelDataType_ {
SpvImageChannelDataTypeSnormInt8 =
0,
SpvImageChannelDataTypeSnormInt16 =
1,
SpvImageChannelDataTypeUnormInt8 =
2,
SpvImageChannelDataTypeUnormInt16 =
3,
SpvImageChannelDataTypeUnormShort565 =
4,
SpvImageChannelDataTypeUnormShort555 =
5,
SpvImageChannelDataTypeUnormInt101010 =
6,
SpvImageChannelDataTypeSignedInt8 =
7,
SpvImageChannelDataTypeSignedInt16 =
8,
SpvImageChannelDataTypeSignedInt32 =
9,
SpvImageChannelDataTypeUnsignedInt8 =
10,
SpvImageChannelDataTypeUnsignedInt16 =
11,
SpvImageChannelDataTypeUnsignedInt32 =
12,
SpvImageChannelDataTypeHalfFloat =
13,
SpvImageChannelDataTypeFloat =
14,
SpvImageChannelDataTypeUnormInt24 =
15,
SpvImageChannelDataTypeUnormInt101010_2 =
16,
} SpvImageChannelDataType;
typedef enum SpvImageOperandsShift_ {
SpvImageOperandsBiasShift =
0,
SpvImageOperandsLodShift =
1,
SpvImageOperandsGradShift =
2,
SpvImageOperandsConstOffsetShift =
3,
SpvImageOperandsOffsetShift =
4,
SpvImageOperandsConstOffsetsShift =
5,
SpvImageOperandsSampleShift =
6,
SpvImageOperandsMinLodShift =
7,
} SpvImageOperandsShift;
typedef enum SpvImageOperandsMask_ {
SpvImageOperandsMaskNone =
0,
SpvImageOperandsBiasMask =
0x00000001,
SpvImageOperandsLodMask =
0x00000002,
SpvImageOperandsGradMask =
0x00000004,
SpvImageOperandsConstOffsetMask =
0x00000008,
SpvImageOperandsOffsetMask =
0x00000010,
SpvImageOperandsConstOffsetsMask =
0x00000020,
SpvImageOperandsSampleMask =
0x00000040,
SpvImageOperandsMinLodMask =
0x00000080,
} SpvImageOperandsMask;
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,
SpvFunctionParameterAttributeNoWrite =
6,
SpvFunctionParameterAttributeNoReadWrite =
7,
} SpvFunctionParameterAttribute;
typedef enum SpvDecoration_ {
SpvDecorationRelaxedPrecision =
0,
SpvDecorationSpecId =
1,
SpvDecorationBlock =
2,
SpvDecorationBufferBlock =
3,
SpvDecorationRowMajor =
4,
SpvDecorationColMajor =
5,
SpvDecorationArrayStride =
6,
SpvDecorationMatrixStride =
7,
SpvDecorationGLSLShared =
8,
SpvDecorationGLSLPacked =
9,
SpvDecorationCPacked =
10,
SpvDecorationBuiltIn =
11,
SpvDecorationNoPerspective =
13,
SpvDecorationFlat =
14,
SpvDecorationPatch =
15,
SpvDecorationCentroid =
16,
SpvDecorationSample =
17,
SpvDecorationInvariant =
18,
SpvDecorationRestrict =
19,
SpvDecorationAliased =
20,
SpvDecorationVolatile =
21,
SpvDecorationConstant =
22,
SpvDecorationCoherent =
23,
SpvDecorationNonWritable =
24,
SpvDecorationNonReadable =
25,
SpvDecorationUniform =
26,
SpvDecorationSaturatedConversion =
28,
SpvDecorationStream =
29,
SpvDecorationLocation =
30,
SpvDecorationComponent =
31,
SpvDecorationIndex =
32,
SpvDecorationBinding =
33,
SpvDecorationDescriptorSet =
34,
SpvDecorationOffset =
35,
SpvDecorationXfbBuffer =
36,
SpvDecorationXfbStride =
37,
SpvDecorationFuncParamAttr =
38,
SpvDecorationFPRoundingMode =
39,
SpvDecorationFPFastMathMode =
40,
SpvDecorationLinkageAttributes =
41,
SpvDecorationNoContraction =
42,
SpvDecorationInputAttachmentIndex =
43,
SpvDecorationAlignment =
44,
} SpvDecoration;
typedef enum SpvBuiltIn_ {
SpvBuiltInPosition =
0,
SpvBuiltInPointSize =
1,
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,
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,
SpvBuiltInSubgroupSize =
36,
SpvBuiltInSubgroupMaxSize =
37,
SpvBuiltInNumSubgroups =
38,
SpvBuiltInNumEnqueuedSubgroups =
39,
SpvBuiltInSubgroupId =
40,
SpvBuiltInSubgroupLocalInvocationId =
41,
SpvBuiltInVertexIndex =
42,
SpvBuiltInInstanceIndex =
43,
} 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_ {
SpvMemorySemanticsAcquireShift =
1,
SpvMemorySemanticsReleaseShift =
2,
SpvMemorySemanticsAcquireReleaseShift =
3,
SpvMemorySemanticsSequentiallyConsistentShift =
4,
SpvMemorySemanticsUniformMemoryShift =
6,
SpvMemorySemanticsSubgroupMemoryShift =
7,
SpvMemorySemanticsWorkgroupMemoryShift =
8,
SpvMemorySemanticsCrossWorkgroupMemoryShift =
9,
SpvMemorySemanticsAtomicCounterMemoryShift =
10,
SpvMemorySemanticsImageMemoryShift =
11,
} SpvMemorySemanticsShift;
typedef enum SpvMemorySemanticsMask_ {
SpvMemorySemanticsMaskNone =
0,
SpvMemorySemanticsAcquireMask =
0x00000002,
SpvMemorySemanticsReleaseMask =
0x00000004,
SpvMemorySemanticsAcquireReleaseMask =
0x00000008,
SpvMemorySemanticsSequentiallyConsistentMask =
0x00000010,
SpvMemorySemanticsUniformMemoryMask =
0x00000040,
SpvMemorySemanticsSubgroupMemoryMask =
0x00000080,
SpvMemorySemanticsWorkgroupMemoryMask =
0x00000100,
SpvMemorySemanticsCrossWorkgroupMemoryMask =
0x00000200,
SpvMemorySemanticsAtomicCounterMemoryMask =
0x00000400,
SpvMemorySemanticsImageMemoryMask =
0x00000800,
} SpvMemorySemanticsMask;
typedef enum SpvMemoryAccessShift_ {
SpvMemoryAccessVolatileShift =
0,
SpvMemoryAccessAlignedShift =
1,
SpvMemoryAccessNontemporalShift =
2,
} SpvMemoryAccessShift;
typedef enum SpvMemoryAccessMask_ {
SpvMemoryAccessMaskNone =
0,
SpvMemoryAccessVolatileMask =
0x00000001,
SpvMemoryAccessAlignedMask =
0x00000002,
SpvMemoryAccessNontemporalMask =
0x00000004,
} 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,
SpvCapabilityPipes =
17,
SpvCapabilityGroups =
18,
SpvCapabilityDeviceEnqueue =
19,
SpvCapabilityLiteralSampler =
20,
SpvCapabilityAtomicStorage =
21,
SpvCapabilityInt16 =
22,
SpvCapabilityTessellationPointSize =
23,
SpvCapabilityGeometryPointSize =
24,
SpvCapabilityImageGatherExtended =
25,
SpvCapabilityStorageImageMultisample =
27,
SpvCapabilityUniformBufferArrayDynamicIndexing =
28,
SpvCapabilitySampledImageArrayDynamicIndexing =
29,
SpvCapabilityStorageBufferArrayDynamicIndexing =
30,
SpvCapabilityStorageImageArrayDynamicIndexing =
31,
SpvCapabilityClipDistance =
32,
SpvCapabilityCullDistance =
33,
SpvCapabilityImageCubeArray =
34,
SpvCapabilitySampleRateShading =
35,
SpvCapabilityImageRect =
36,
SpvCapabilitySampledRect =
37,
SpvCapabilityGenericPointer =
38,
SpvCapabilityInt8 =
39,
SpvCapabilityInputAttachment =
40,
SpvCapabilitySparseResidency =
41,
SpvCapabilityMinLod =
42,
SpvCapabilitySampled1D =
43,
SpvCapabilityImage1D =
44,
SpvCapabilitySampledCubeArray =
45,
SpvCapabilitySampledBuffer =
46,
SpvCapabilityImageBuffer =
47,
SpvCapabilityImageMSArray =
48,
SpvCapabilityStorageImageExtendedFormats =
49,
SpvCapabilityImageQuery =
50,
SpvCapabilityDerivativeControl =
51,
SpvCapabilityInterpolationFunction =
52,
SpvCapabilityTransformFeedback =
53,
SpvCapabilityGeometryStreams =
54,
SpvCapabilityStorageImageReadWithoutFormat =
55,
SpvCapabilityStorageImageWriteWithoutFormat =
56,
SpvCapabilityMultiViewport =
57,
} SpvCapability;
typedef enum SpvOp_ {
SpvOpNop =
0,
SpvOpUndef =
1,
SpvOpSourceContinued =
2,
SpvOpSource =
3,
SpvOpSourceExtension =
4,
SpvOpName =
5,
SpvOpMemberName =
6,
SpvOpString =
7,
SpvOpLine =
8,
SpvOpExtension =
10,
SpvOpExtInstImport =
11,
SpvOpExtInst =
12,
SpvOpMemoryModel =
14,
SpvOpEntryPoint =
15,
SpvOpExecutionMode =
16,
SpvOpCapability =
17,
SpvOpTypeVoid =
19,
SpvOpTypeBool =
20,
SpvOpTypeInt =
21,
SpvOpTypeFloat =
22,
SpvOpTypeVector =
23,
SpvOpTypeMatrix =
24,
SpvOpTypeImage =
25,
SpvOpTypeSampler =
26,
SpvOpTypeSampledImage =
27,
SpvOpTypeArray =
28,
SpvOpTypeRuntimeArray =
29,
SpvOpTypeStruct =
30,
SpvOpTypeOpaque =
31,
SpvOpTypePointer =
32,
SpvOpTypeFunction =
33,
SpvOpTypeEvent =
34,
SpvOpTypeDeviceEvent =
35,
SpvOpTypeReserveId =
36,
SpvOpTypeQueue =
37,
SpvOpTypePipe =
38,
SpvOpTypeForwardPointer =
39,
SpvOpConstantTrue =
41,
SpvOpConstantFalse =
42,
SpvOpConstant =
43,
SpvOpConstantComposite =
44,
SpvOpConstantSampler =
45,
SpvOpConstantNull =
46,
SpvOpSpecConstantTrue =
48,
SpvOpSpecConstantFalse =
49,
SpvOpSpecConstant =
50,
SpvOpSpecConstantComposite =
51,
SpvOpSpecConstantOp =
52,
SpvOpFunction =
54,
SpvOpFunctionParameter =
55,
SpvOpFunctionEnd =
56,
SpvOpFunctionCall =
57,
SpvOpVariable =
59,
SpvOpImageTexelPointer =
60,
SpvOpLoad =
61,
SpvOpStore =
62,
SpvOpCopyMemory =
63,
SpvOpCopyMemorySized =
64,
SpvOpAccessChain =
65,
SpvOpInBoundsAccessChain =
66,
SpvOpPtrAccessChain =
67,
SpvOpArrayLength =
68,
SpvOpGenericPtrMemSemantics =
69,
SpvOpInBoundsPtrAccessChain =
70,
SpvOpDecorate =
71,
SpvOpMemberDecorate =
72,
SpvOpDecorationGroup =
73,
SpvOpGroupDecorate =
74,
SpvOpGroupMemberDecorate =
75,
SpvOpVectorExtractDynamic =
77,
SpvOpVectorInsertDynamic =
78,
SpvOpVectorShuffle =
79,
SpvOpCompositeConstruct =
80,
SpvOpCompositeExtract =
81,
SpvOpCompositeInsert =
82,
SpvOpCopyObject =
83,
SpvOpTranspose =
84,
SpvOpSampledImage =
86,
SpvOpImageSampleImplicitLod =
87,
SpvOpImageSampleExplicitLod =
88,
SpvOpImageSampleDrefImplicitLod =
89,
SpvOpImageSampleDrefExplicitLod =
90,
SpvOpImageSampleProjImplicitLod =
91,
SpvOpImageSampleProjExplicitLod =
92,
SpvOpImageSampleProjDrefImplicitLod =
93,
SpvOpImageSampleProjDrefExplicitLod =
94,
SpvOpImageFetch =
95,
SpvOpImageGather =
96,
SpvOpImageDrefGather =
97,
SpvOpImageRead =
98,
SpvOpImageWrite =
99,
SpvOpImage =
100,
SpvOpImageQueryFormat =
101,
SpvOpImageQueryOrder =
102,
SpvOpImageQuerySizeLod =
103,
SpvOpImageQuerySize =
104,
SpvOpImageQueryLod =
105,
SpvOpImageQueryLevels =
106,
SpvOpImageQuerySamples =
107,
SpvOpConvertFToU =
109,
SpvOpConvertFToS =
110,
SpvOpConvertSToF =
111,
SpvOpConvertUToF =
112,
SpvOpUConvert =
113,
SpvOpSConvert =
114,
SpvOpFConvert =
115,
SpvOpQuantizeToF16 =
116,
SpvOpConvertPtrToU =
117,
SpvOpSatConvertSToU =
118,
SpvOpSatConvertUToS =
119,
SpvOpConvertUToPtr =
120,
SpvOpPtrCastToGeneric =
121,
SpvOpGenericCastToPtr =
122,
SpvOpGenericCastToPtrExplicit =
123,
SpvOpBitcast =
124,
SpvOpSNegate =
126,
SpvOpFNegate =
127,
SpvOpIAdd =
128,
SpvOpFAdd =
129,
SpvOpISub =
130,
SpvOpFSub =
131,
SpvOpIMul =
132,
SpvOpFMul =
133,
SpvOpUDiv =
134,
SpvOpSDiv =
135,
SpvOpFDiv =
136,
SpvOpUMod =
137,
SpvOpSRem =
138,
SpvOpSMod =
139,
SpvOpFRem =
140,
SpvOpFMod =
141,
SpvOpVectorTimesScalar =
142,
SpvOpMatrixTimesScalar =
143,
SpvOpVectorTimesMatrix =
144,
SpvOpMatrixTimesVector =
145,
SpvOpMatrixTimesMatrix =
146,
SpvOpOuterProduct =
147,
SpvOpDot =
148,
SpvOpIAddCarry =
149,
SpvOpISubBorrow =
150,
SpvOpUMulExtended =
151,
SpvOpSMulExtended =
152,
SpvOpAny =
154,
SpvOpAll =
155,
SpvOpIsNan =
156,
SpvOpIsInf =
157,
SpvOpIsFinite =
158,
SpvOpIsNormal =
159,
SpvOpSignBitSet =
160,
SpvOpLessOrGreater =
161,
SpvOpOrdered =
162,
SpvOpUnordered =
163,
SpvOpLogicalEqual =
164,
SpvOpLogicalNotEqual =
165,
SpvOpLogicalOr =
166,
SpvOpLogicalAnd =
167,
SpvOpLogicalNot =
168,
SpvOpSelect =
169,
SpvOpIEqual =
170,
SpvOpINotEqual =
171,
SpvOpUGreaterThan =
172,
SpvOpSGreaterThan =
173,
SpvOpUGreaterThanEqual =
174,
SpvOpSGreaterThanEqual =
175,
SpvOpULessThan =
176,
SpvOpSLessThan =
177,
SpvOpULessThanEqual =
178,
SpvOpSLessThanEqual =
179,
SpvOpFOrdEqual =
180,
SpvOpFUnordEqual =
181,
SpvOpFOrdNotEqual =
182,
SpvOpFUnordNotEqual =
183,
SpvOpFOrdLessThan =
184,
SpvOpFUnordLessThan =
185,
SpvOpFOrdGreaterThan =
186,
SpvOpFUnordGreaterThan =
187,
SpvOpFOrdLessThanEqual =
188,
SpvOpFUnordLessThanEqual =
189,
SpvOpFOrdGreaterThanEqual =
190,
SpvOpFUnordGreaterThanEqual =
191,
SpvOpShiftRightLogical =
194,
SpvOpShiftRightArithmetic =
195,
SpvOpShiftLeftLogical =
196,
SpvOpBitwiseOr =
197,
SpvOpBitwiseXor =
198,
SpvOpBitwiseAnd =
199,
SpvOpNot =
200,
SpvOpBitFieldInsert =
201,
SpvOpBitFieldSExtract =
202,
SpvOpBitFieldUExtract =
203,
SpvOpBitReverse =
204,
SpvOpBitCount =
205,
SpvOpDPdx =
207,
SpvOpDPdy =
208,
SpvOpFwidth =
209,
SpvOpDPdxFine =
210,
SpvOpDPdyFine =
211,
SpvOpFwidthFine =
212,
SpvOpDPdxCoarse =
213,
SpvOpDPdyCoarse =
214,
SpvOpFwidthCoarse =
215,
SpvOpEmitVertex =
218,
SpvOpEndPrimitive =
219,
SpvOpEmitStreamVertex =
220,
SpvOpEndStreamPrimitive =
221,
SpvOpControlBarrier =
224,
SpvOpMemoryBarrier =
225,
SpvOpAtomicLoad =
227,
SpvOpAtomicStore =
228,
SpvOpAtomicExchange =
229,
SpvOpAtomicCompareExchange =
230,
SpvOpAtomicCompareExchangeWeak =
231,
SpvOpAtomicIIncrement =
232,
SpvOpAtomicIDecrement =
233,
SpvOpAtomicIAdd =
234,
SpvOpAtomicISub =
235,
SpvOpAtomicSMin =
236,
SpvOpAtomicUMin =
237,
SpvOpAtomicSMax =
238,
SpvOpAtomicUMax =
239,
SpvOpAtomicAnd =
240,
SpvOpAtomicOr =
241,
SpvOpAtomicXor =
242,
SpvOpPhi =
245,
SpvOpLoopMerge =
246,
SpvOpSelectionMerge =
247,
SpvOpLabel =
248,
SpvOpBranch =
249,
SpvOpBranchConditional =
250,
SpvOpSwitch =
251,
SpvOpKill =
252,
SpvOpReturn =
253,
SpvOpReturnValue =
254,
SpvOpUnreachable =
255,
SpvOpLifetimeStart =
256,
SpvOpLifetimeStop =
257,
SpvOpGroupAsyncCopy =
259,
SpvOpGroupWaitEvents =
260,
SpvOpGroupAll =
261,
SpvOpGroupAny =
262,
SpvOpGroupBroadcast =
263,
SpvOpGroupIAdd =
264,
SpvOpGroupFAdd =
265,
SpvOpGroupFMin =
266,
SpvOpGroupUMin =
267,
SpvOpGroupSMin =
268,
SpvOpGroupFMax =
269,
SpvOpGroupUMax =
270,
SpvOpGroupSMax =
271,
SpvOpReadPipe =
274,
SpvOpWritePipe =
275,
SpvOpReservedReadPipe =
276,
SpvOpReservedWritePipe =
277,
SpvOpReserveReadPipePackets =
278,
SpvOpReserveWritePipePackets =
279,
SpvOpCommitReadPipe =
280,
SpvOpCommitWritePipe =
281,
SpvOpIsValidReserveId =
282,
SpvOpGetNumPipePackets =
283,
SpvOpGetMaxPipePackets =
284,
SpvOpGroupReserveReadPipePackets =
285,
SpvOpGroupReserveWritePipePackets =
286,
SpvOpGroupCommitReadPipe =
287,
SpvOpGroupCommitWritePipe =
288,
SpvOpEnqueueMarker =
291,
SpvOpEnqueueKernel =
292,
SpvOpGetKernelNDrangeSubGroupCount =
293,
SpvOpGetKernelNDrangeMaxSubGroupSize =
294,
SpvOpGetKernelWorkGroupSize =
295,
SpvOpGetKernelPreferredWorkGroupSizeMultiple =
296,
SpvOpRetainEvent =
297,
SpvOpReleaseEvent =
298,
SpvOpCreateUserEvent =
299,
SpvOpIsValidEvent =
300,
SpvOpSetUserEventStatus =
301,
SpvOpCaptureEventProfilingInfo =
302,
SpvOpGetDefaultQueue =
303,
SpvOpBuildNDRange =
304,
SpvOpImageSparseSampleImplicitLod =
305,
SpvOpImageSparseSampleExplicitLod =
306,
SpvOpImageSparseSampleDrefImplicitLod =
307,
SpvOpImageSparseSampleDrefExplicitLod =
308,
SpvOpImageSparseSampleProjImplicitLod =
309,
SpvOpImageSparseSampleProjExplicitLod =
310,
SpvOpImageSparseSampleProjDrefImplicitLod =
311,
SpvOpImageSparseSampleProjDrefExplicitLod =
312,
SpvOpImageSparseFetch =
313,
SpvOpImageSparseGather =
314,
SpvOpImageSparseDrefGather =
315,
SpvOpImageSparseTexelsResident =
316,
SpvOpNoLine =
317,
SpvOpAtomicFlagTestAndSet =
318,
SpvOpAtomicFlagClear =
319,
SpvOpImageSparseRead =
320,
} SpvOp;
#endif // #ifndef spirv_H