1305 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			1305 lines
		
	
	
		
			37 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
 |