1 -- Copyright (c) 2014-2018 The Khronos Group Inc.
3 -- Permission is hereby granted, free of charge, to any person obtaining a copy
4 -- of this software and/or associated documentation files (the "Materials"),
5 -- to deal in the Materials without restriction, including without limitation
6 -- the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 -- and/or sell copies of the Materials, and to permit persons to whom the
8 -- Materials are furnished to do so, subject to the following conditions:
10 -- The above copyright notice and this permission notice shall be included in
11 -- all copies or substantial portions of the Materials.
13 -- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 -- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 -- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 -- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 -- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 -- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
25 -- This header is automatically generated by the same tool that creates
26 -- the Binary Section of the SPIR-V specification.
28 -- Enumeration tokens for SPIR-V, in various styles:
29 -- C, C++, C++11, JSON, Lua, Python
31 -- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 -- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 -- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 -- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 -- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
37 -- Some tokens act like mask values, which can be OR'd together,
38 -- while others are mutually exclusive. The mask-like ones have
39 -- "Mask" in their name, and a parallel enum that has the shift
40 -- amount (1 << x) for each corresponding enumerant.
43 MagicNumber = 0x07230203,
60 TessellationControl = 1,
61 TessellationEvaluation = 2,
83 SpacingFractionalEven = 2,
84 SpacingFractionalOdd = 3,
87 PixelCenterInteger = 6,
90 EarlyFragmentTests = 9,
101 InputLinesAdjacency = 21,
103 InputTrianglesAdjacency = 23,
108 OutputLineStrip = 28,
109 OutputTriangleStrip = 29,
115 SubgroupsPerWorkgroup = 36,
116 SubgroupsPerWorkgroupId = 37,
118 LocalSizeHintId = 39,
119 PostDepthCoverage = 4446,
120 StencilRefReplacingEXT = 5027,
149 SamplerAddressingMode = {
157 SamplerFilterMode = {
205 ImageChannelOrder = {
228 ImageChannelDataType = {
245 UnormInt101010_2 = 16,
248 ImageOperandsShift = {
259 ImageOperandsMask = {
264 ConstOffset = 0x00000008,
266 ConstOffsets = 0x00000020,
271 FPFastMathModeShift = {
279 FPFastMathModeMask = {
284 AllowRecip = 0x00000008,
306 FunctionParameterAttribute = {
318 RelaxedPrecision = 0,
344 SaturatedConversion = 28,
357 LinkageAttributes = 41,
359 InputAttachmentIndex = 43,
363 MaxByteOffsetId = 47,
364 ExplicitInterpAMD = 4999,
365 OverrideCoverageNV = 5248,
366 PassthroughNV = 5250,
367 ViewportRelativeNV = 5252,
368 SecondaryViewportRelativeNV = 5256,
393 HelperInvocation = 23,
397 LocalInvocationId = 27,
398 GlobalInvocationId = 28,
399 LocalInvocationIndex = 29,
402 EnqueuedWorkgroupSize = 32,
406 SubgroupMaxSize = 37,
408 NumEnqueuedSubgroups = 39,
410 SubgroupLocalInvocationId = 41,
413 SubgroupEqMaskKHR = 4416,
414 SubgroupGeMaskKHR = 4417,
415 SubgroupGtMaskKHR = 4418,
416 SubgroupLeMaskKHR = 4419,
417 SubgroupLtMaskKHR = 4420,
423 BaryCoordNoPerspAMD = 4992,
424 BaryCoordNoPerspCentroidAMD = 4993,
425 BaryCoordNoPerspSampleAMD = 4994,
426 BaryCoordSmoothAMD = 4995,
427 BaryCoordSmoothCentroidAMD = 4996,
428 BaryCoordSmoothSampleAMD = 4997,
429 BaryCoordPullModelAMD = 4998,
430 FragStencilRefEXT = 5014,
431 ViewportMaskNV = 5253,
432 SecondaryPositionNV = 5257,
433 SecondaryViewportMaskNV = 5258,
434 PositionPerViewNV = 5261,
435 ViewportMaskPerViewNV = 5262,
436 FullyCoveredEXT = 5264,
439 SelectionControlShift = {
444 SelectionControlMask = {
446 Flatten = 0x00000001,
447 DontFlatten = 0x00000002,
453 DependencyInfinite = 2,
454 DependencyLength = 3,
460 DontUnroll = 0x00000002,
461 DependencyInfinite = 0x00000004,
462 DependencyLength = 0x00000008,
465 FunctionControlShift = {
472 FunctionControlMask = {
475 DontInline = 0x00000002,
480 MemorySemanticsShift = {
484 SequentiallyConsistent = 4,
488 CrossWorkgroupMemory = 9,
489 AtomicCounterMemory = 10,
493 MemorySemanticsMask = {
495 Acquire = 0x00000002,
496 Release = 0x00000004,
497 AcquireRelease = 0x00000008,
498 SequentiallyConsistent = 0x00000010,
499 UniformMemory = 0x00000040,
500 SubgroupMemory = 0x00000080,
501 WorkgroupMemory = 0x00000100,
502 CrossWorkgroupMemory = 0x00000200,
503 AtomicCounterMemory = 0x00000400,
504 ImageMemory = 0x00000800,
507 MemoryAccessShift = {
515 Volatile = 0x00000001,
516 Aligned = 0x00000002,
517 Nontemporal = 0x00000004,
534 KernelEnqueueFlags = {
540 KernelProfilingInfoShift = {
544 KernelProfilingInfoMask = {
546 CmdExecTime = 0x00000001,
572 TessellationPointSize = 23,
573 GeometryPointSize = 24,
574 ImageGatherExtended = 25,
575 StorageImageMultisample = 27,
576 UniformBufferArrayDynamicIndexing = 28,
577 SampledImageArrayDynamicIndexing = 29,
578 StorageBufferArrayDynamicIndexing = 30,
579 StorageImageArrayDynamicIndexing = 31,
583 SampleRateShading = 35,
588 InputAttachment = 40,
589 SparseResidency = 41,
593 SampledCubeArray = 45,
597 StorageImageExtendedFormats = 49,
599 DerivativeControl = 51,
600 InterpolationFunction = 52,
601 TransformFeedback = 53,
602 GeometryStreams = 54,
603 StorageImageReadWithoutFormat = 55,
604 StorageImageWriteWithoutFormat = 56,
606 SubgroupDispatch = 58,
609 SubgroupBallotKHR = 4423,
610 DrawParameters = 4427,
611 SubgroupVoteKHR = 4431,
612 StorageBuffer16BitAccess = 4433,
613 StorageUniformBufferBlock16 = 4433,
614 StorageUniform16 = 4434,
615 UniformAndStorageBuffer16BitAccess = 4434,
616 StoragePushConstant16 = 4435,
617 StorageInputOutput16 = 4436,
620 VariablePointersStorageBuffer = 4441,
621 VariablePointers = 4442,
622 AtomicStorageOps = 4445,
623 SampleMaskPostDepthCoverage = 4447,
624 Float16ImageAMD = 5008,
625 ImageGatherBiasLodAMD = 5009,
626 FragmentMaskAMD = 5010,
627 StencilExportEXT = 5013,
628 ImageReadWriteLodAMD = 5015,
629 SampleMaskOverrideCoverageNV = 5249,
630 GeometryShaderPassthroughNV = 5251,
631 ShaderViewportIndexLayerEXT = 5254,
632 ShaderViewportIndexLayerNV = 5254,
633 ShaderViewportMaskNV = 5255,
634 ShaderStereoViewNV = 5259,
635 PerViewAttributesNV = 5260,
636 FragmentFullyCoveredEXT = 5265,
637 SubgroupShuffleINTEL = 5568,
638 SubgroupBufferBlockIOINTEL = 5569,
639 SubgroupImageBlockIOINTEL = 5570,
645 OpSourceContinued = 2,
647 OpSourceExtension = 4,
653 OpExtInstImport = 11,
657 OpExecutionMode = 16,
667 OpTypeSampledImage = 27,
669 OpTypeRuntimeArray = 29,
675 OpTypeDeviceEvent = 35,
676 OpTypeReserveId = 36,
679 OpTypeForwardPointer = 39,
681 OpConstantFalse = 42,
683 OpConstantComposite = 44,
684 OpConstantSampler = 45,
686 OpSpecConstantTrue = 48,
687 OpSpecConstantFalse = 49,
689 OpSpecConstantComposite = 51,
690 OpSpecConstantOp = 52,
692 OpFunctionParameter = 55,
696 OpImageTexelPointer = 60,
700 OpCopyMemorySized = 64,
702 OpInBoundsAccessChain = 66,
703 OpPtrAccessChain = 67,
705 OpGenericPtrMemSemantics = 69,
706 OpInBoundsPtrAccessChain = 70,
708 OpMemberDecorate = 72,
709 OpDecorationGroup = 73,
710 OpGroupDecorate = 74,
711 OpGroupMemberDecorate = 75,
712 OpVectorExtractDynamic = 77,
713 OpVectorInsertDynamic = 78,
714 OpVectorShuffle = 79,
715 OpCompositeConstruct = 80,
716 OpCompositeExtract = 81,
717 OpCompositeInsert = 82,
721 OpImageSampleImplicitLod = 87,
722 OpImageSampleExplicitLod = 88,
723 OpImageSampleDrefImplicitLod = 89,
724 OpImageSampleDrefExplicitLod = 90,
725 OpImageSampleProjImplicitLod = 91,
726 OpImageSampleProjExplicitLod = 92,
727 OpImageSampleProjDrefImplicitLod = 93,
728 OpImageSampleProjDrefExplicitLod = 94,
731 OpImageDrefGather = 97,
735 OpImageQueryFormat = 101,
736 OpImageQueryOrder = 102,
737 OpImageQuerySizeLod = 103,
738 OpImageQuerySize = 104,
739 OpImageQueryLod = 105,
740 OpImageQueryLevels = 106,
741 OpImageQuerySamples = 107,
749 OpQuantizeToF16 = 116,
750 OpConvertPtrToU = 117,
751 OpSatConvertSToU = 118,
752 OpSatConvertUToS = 119,
753 OpConvertUToPtr = 120,
754 OpPtrCastToGeneric = 121,
755 OpGenericCastToPtr = 122,
756 OpGenericCastToPtrExplicit = 123,
774 OpVectorTimesScalar = 142,
775 OpMatrixTimesScalar = 143,
776 OpVectorTimesMatrix = 144,
777 OpMatrixTimesVector = 145,
778 OpMatrixTimesMatrix = 146,
779 OpOuterProduct = 147,
783 OpUMulExtended = 151,
784 OpSMulExtended = 152,
792 OpLessOrGreater = 161,
795 OpLogicalEqual = 164,
796 OpLogicalNotEqual = 165,
803 OpUGreaterThan = 172,
804 OpSGreaterThan = 173,
805 OpUGreaterThanEqual = 174,
806 OpSGreaterThanEqual = 175,
809 OpULessThanEqual = 178,
810 OpSLessThanEqual = 179,
813 OpFOrdNotEqual = 182,
814 OpFUnordNotEqual = 183,
815 OpFOrdLessThan = 184,
816 OpFUnordLessThan = 185,
817 OpFOrdGreaterThan = 186,
818 OpFUnordGreaterThan = 187,
819 OpFOrdLessThanEqual = 188,
820 OpFUnordLessThanEqual = 189,
821 OpFOrdGreaterThanEqual = 190,
822 OpFUnordGreaterThanEqual = 191,
823 OpShiftRightLogical = 194,
824 OpShiftRightArithmetic = 195,
825 OpShiftLeftLogical = 196,
830 OpBitFieldInsert = 201,
831 OpBitFieldSExtract = 202,
832 OpBitFieldUExtract = 203,
843 OpFwidthCoarse = 215,
845 OpEndPrimitive = 219,
846 OpEmitStreamVertex = 220,
847 OpEndStreamPrimitive = 221,
848 OpControlBarrier = 224,
849 OpMemoryBarrier = 225,
852 OpAtomicExchange = 229,
853 OpAtomicCompareExchange = 230,
854 OpAtomicCompareExchangeWeak = 231,
855 OpAtomicIIncrement = 232,
856 OpAtomicIDecrement = 233,
868 OpSelectionMerge = 247,
871 OpBranchConditional = 250,
877 OpLifetimeStart = 256,
878 OpLifetimeStop = 257,
879 OpGroupAsyncCopy = 259,
880 OpGroupWaitEvents = 260,
883 OpGroupBroadcast = 263,
894 OpReservedReadPipe = 276,
895 OpReservedWritePipe = 277,
896 OpReserveReadPipePackets = 278,
897 OpReserveWritePipePackets = 279,
898 OpCommitReadPipe = 280,
899 OpCommitWritePipe = 281,
900 OpIsValidReserveId = 282,
901 OpGetNumPipePackets = 283,
902 OpGetMaxPipePackets = 284,
903 OpGroupReserveReadPipePackets = 285,
904 OpGroupReserveWritePipePackets = 286,
905 OpGroupCommitReadPipe = 287,
906 OpGroupCommitWritePipe = 288,
907 OpEnqueueMarker = 291,
908 OpEnqueueKernel = 292,
909 OpGetKernelNDrangeSubGroupCount = 293,
910 OpGetKernelNDrangeMaxSubGroupSize = 294,
911 OpGetKernelWorkGroupSize = 295,
912 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
914 OpReleaseEvent = 298,
915 OpCreateUserEvent = 299,
916 OpIsValidEvent = 300,
917 OpSetUserEventStatus = 301,
918 OpCaptureEventProfilingInfo = 302,
919 OpGetDefaultQueue = 303,
920 OpBuildNDRange = 304,
921 OpImageSparseSampleImplicitLod = 305,
922 OpImageSparseSampleExplicitLod = 306,
923 OpImageSparseSampleDrefImplicitLod = 307,
924 OpImageSparseSampleDrefExplicitLod = 308,
925 OpImageSparseSampleProjImplicitLod = 309,
926 OpImageSparseSampleProjExplicitLod = 310,
927 OpImageSparseSampleProjDrefImplicitLod = 311,
928 OpImageSparseSampleProjDrefExplicitLod = 312,
929 OpImageSparseFetch = 313,
930 OpImageSparseGather = 314,
931 OpImageSparseDrefGather = 315,
932 OpImageSparseTexelsResident = 316,
934 OpAtomicFlagTestAndSet = 318,
935 OpAtomicFlagClear = 319,
936 OpImageSparseRead = 320,
938 OpTypePipeStorage = 322,
939 OpConstantPipeStorage = 323,
940 OpCreatePipeFromPipeStorage = 324,
941 OpGetKernelLocalSizeForSubgroupCount = 325,
942 OpGetKernelMaxNumSubgroups = 326,
943 OpTypeNamedBarrier = 327,
944 OpNamedBarrierInitialize = 328,
945 OpMemoryNamedBarrier = 329,
946 OpModuleProcessed = 330,
947 OpExecutionModeId = 331,
949 OpSubgroupBallotKHR = 4421,
950 OpSubgroupFirstInvocationKHR = 4422,
951 OpSubgroupAllKHR = 4428,
952 OpSubgroupAnyKHR = 4429,
953 OpSubgroupAllEqualKHR = 4430,
954 OpSubgroupReadInvocationKHR = 4432,
955 OpGroupIAddNonUniformAMD = 5000,
956 OpGroupFAddNonUniformAMD = 5001,
957 OpGroupFMinNonUniformAMD = 5002,
958 OpGroupUMinNonUniformAMD = 5003,
959 OpGroupSMinNonUniformAMD = 5004,
960 OpGroupFMaxNonUniformAMD = 5005,
961 OpGroupUMaxNonUniformAMD = 5006,
962 OpGroupSMaxNonUniformAMD = 5007,
963 OpFragmentMaskFetchAMD = 5011,
964 OpFragmentFetchAMD = 5012,
965 OpSubgroupShuffleINTEL = 5571,
966 OpSubgroupShuffleDownINTEL = 5572,
967 OpSubgroupShuffleUpINTEL = 5573,
968 OpSubgroupShuffleXorINTEL = 5574,
969 OpSubgroupBlockReadINTEL = 5575,
970 OpSubgroupBlockWriteINTEL = 5576,
971 OpSubgroupImageBlockReadINTEL = 5577,
972 OpSubgroupImageBlockWriteINTEL = 5578,