[Mesa-dev] [PATCH v2 3/3] spirv: bump headers to SPIRV 1.1

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Jan 25 14:05:15 UTC 2017


Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
 src/compiler/spirv/GLSL.std.450.h | 12 ++++--
 src/compiler/spirv/spirv.h        | 77 ++++++++++++++++++++++++++++++++++++---
 src/compiler/spirv/spirv_info.c   |  6 +++
 3 files changed, 86 insertions(+), 9 deletions(-)

diff --git a/src/compiler/spirv/GLSL.std.450.h b/src/compiler/spirv/GLSL.std.450.h
index d1c9b5c1d4..54cc00e9a8 100644
--- a/src/compiler/spirv/GLSL.std.450.h
+++ b/src/compiler/spirv/GLSL.std.450.h
@@ -1,5 +1,5 @@
 /*
-** Copyright (c) 2014-2015 The Khronos Group Inc.
+** 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"),
@@ -27,8 +27,8 @@
 #ifndef GLSLstd450_H
 #define GLSLstd450_H

-const int GLSLstd450Version = 99;
-const int GLSLstd450Revision = 3;
+static const int GLSLstd450Version = 100;
+static const int GLSLstd450Revision = 3;

 enum GLSLstd450 {
     GLSLstd450Bad = 0,              // Don't use
@@ -83,7 +83,7 @@ enum GLSLstd450 {
     GLSLstd450UClamp = 44,
     GLSLstd450SClamp = 45,
     GLSLstd450FMix = 46,
-    GLSLstd450IMix = 47,
+    GLSLstd450IMix = 47,            // Reserved
     GLSLstd450Step = 48,
     GLSLstd450SmoothStep = 49,

@@ -121,6 +121,10 @@ enum GLSLstd450 {
     GLSLstd450InterpolateAtSample = 77,
     GLSLstd450InterpolateAtOffset = 78,

+    GLSLstd450NMin = 79,
+    GLSLstd450NMax = 80,
+    GLSLstd450NClamp = 81,
+
     GLSLstd450Count
 };

diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h
index 63bcb2f88d..769c10225d 100644
--- a/src/compiler/spirv/spirv.h
+++ b/src/compiler/spirv/spirv.h
@@ -1,5 +1,5 @@
 /*
-** Copyright (c) 2014-2015 The Khronos Group Inc.
+** 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"),
@@ -50,12 +50,12 @@

 typedef unsigned int SpvId;

-#define SPV_VERSION 0x10000
-#define SPV_REVISION 2
+#define SPV_VERSION 0x10100
+#define SPV_REVISION 4

 static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010000;
-static const unsigned int SpvRevision = 2;
+static const unsigned int SpvVersion = 0x00010100;
+static const unsigned int SpvRevision = 4;
 static const unsigned int SpvOpCodeMask = 0xffff;
 static const unsigned int SpvWordCountShift = 16;

@@ -65,6 +65,7 @@ typedef enum SpvSourceLanguage_ {
     SpvSourceLanguageGLSL = 2,
     SpvSourceLanguageOpenCL_C = 3,
     SpvSourceLanguageOpenCL_CPP = 4,
+    SpvSourceLanguageMax = 0x7fffffff,
 } SpvSourceLanguage;

 typedef enum SpvExecutionModel_ {
@@ -75,18 +76,21 @@ typedef enum SpvExecutionModel_ {
     SpvExecutionModelFragment = 4,
     SpvExecutionModelGLCompute = 5,
     SpvExecutionModelKernel = 6,
+    SpvExecutionModelMax = 0x7fffffff,
 } SpvExecutionModel;

 typedef enum SpvAddressingModel_ {
     SpvAddressingModelLogical = 0,
     SpvAddressingModelPhysical32 = 1,
     SpvAddressingModelPhysical64 = 2,
+    SpvAddressingModelMax = 0x7fffffff,
 } SpvAddressingModel;

 typedef enum SpvMemoryModel_ {
     SpvMemoryModelSimple = 0,
     SpvMemoryModelGLSL450 = 1,
     SpvMemoryModelOpenCL = 2,
+    SpvMemoryModelMax = 0x7fffffff,
 } SpvMemoryModel;

 typedef enum SpvExecutionMode_ {
@@ -121,6 +125,11 @@ typedef enum SpvExecutionMode_ {
     SpvExecutionModeOutputTriangleStrip = 29,
     SpvExecutionModeVecTypeHint = 30,
     SpvExecutionModeContractionOff = 31,
+    SpvExecutionModeInitializer = 33,
+    SpvExecutionModeFinalizer = 34,
+    SpvExecutionModeSubgroupSize = 35,
+    SpvExecutionModeSubgroupsPerWorkgroup = 36,
+    SpvExecutionModeMax = 0x7fffffff,
 } SpvExecutionMode;

 typedef enum SpvStorageClass_ {
@@ -136,6 +145,7 @@ typedef enum SpvStorageClass_ {
     SpvStorageClassPushConstant = 9,
     SpvStorageClassAtomicCounter = 10,
     SpvStorageClassImage = 11,
+    SpvStorageClassMax = 0x7fffffff,
 } SpvStorageClass;

 typedef enum SpvDim_ {
@@ -146,6 +156,7 @@ typedef enum SpvDim_ {
     SpvDimRect = 4,
     SpvDimBuffer = 5,
     SpvDimSubpassData = 6,
+    SpvDimMax = 0x7fffffff,
 } SpvDim;

 typedef enum SpvSamplerAddressingMode_ {
@@ -154,11 +165,13 @@ typedef enum SpvSamplerAddressingMode_ {
     SpvSamplerAddressingModeClamp = 2,
     SpvSamplerAddressingModeRepeat = 3,
     SpvSamplerAddressingModeRepeatMirrored = 4,
+    SpvSamplerAddressingModeMax = 0x7fffffff,
 } SpvSamplerAddressingMode;

 typedef enum SpvSamplerFilterMode_ {
     SpvSamplerFilterModeNearest = 0,
     SpvSamplerFilterModeLinear = 1,
+    SpvSamplerFilterModeMax = 0x7fffffff,
 } SpvSamplerFilterMode;

 typedef enum SpvImageFormat_ {
@@ -202,6 +215,7 @@ typedef enum SpvImageFormat_ {
     SpvImageFormatRg8ui = 37,
     SpvImageFormatR16ui = 38,
     SpvImageFormatR8ui = 39,
+    SpvImageFormatMax = 0x7fffffff,
 } SpvImageFormat;

 typedef enum SpvImageChannelOrder_ {
@@ -224,6 +238,8 @@ typedef enum SpvImageChannelOrder_ {
     SpvImageChannelOrdersRGBx = 16,
     SpvImageChannelOrdersRGBA = 17,
     SpvImageChannelOrdersBGRA = 18,
+    SpvImageChannelOrderABGR = 19,
+    SpvImageChannelOrderMax = 0x7fffffff,
 } SpvImageChannelOrder;

 typedef enum SpvImageChannelDataType_ {
@@ -244,6 +260,7 @@ typedef enum SpvImageChannelDataType_ {
     SpvImageChannelDataTypeFloat = 14,
     SpvImageChannelDataTypeUnormInt24 = 15,
     SpvImageChannelDataTypeUnormInt101010_2 = 16,
+    SpvImageChannelDataTypeMax = 0x7fffffff,
 } SpvImageChannelDataType;

 typedef enum SpvImageOperandsShift_ {
@@ -255,6 +272,7 @@ typedef enum SpvImageOperandsShift_ {
     SpvImageOperandsConstOffsetsShift = 5,
     SpvImageOperandsSampleShift = 6,
     SpvImageOperandsMinLodShift = 7,
+    SpvImageOperandsMax = 0x7fffffff,
 } SpvImageOperandsShift;

 typedef enum SpvImageOperandsMask_ {
@@ -275,6 +293,7 @@ typedef enum SpvFPFastMathModeShift_ {
     SpvFPFastMathModeNSZShift = 2,
     SpvFPFastMathModeAllowRecipShift = 3,
     SpvFPFastMathModeFastShift = 4,
+    SpvFPFastMathModeMax = 0x7fffffff,
 } SpvFPFastMathModeShift;

 typedef enum SpvFPFastMathModeMask_ {
@@ -291,17 +310,20 @@ typedef enum SpvFPRoundingMode_ {
     SpvFPRoundingModeRTZ = 1,
     SpvFPRoundingModeRTP = 2,
     SpvFPRoundingModeRTN = 3,
+    SpvFPRoundingModeMax = 0x7fffffff,
 } SpvFPRoundingMode;

 typedef enum SpvLinkageType_ {
     SpvLinkageTypeExport = 0,
     SpvLinkageTypeImport = 1,
+    SpvLinkageTypeMax = 0x7fffffff,
 } SpvLinkageType;

 typedef enum SpvAccessQualifier_ {
     SpvAccessQualifierReadOnly = 0,
     SpvAccessQualifierWriteOnly = 1,
     SpvAccessQualifierReadWrite = 2,
+    SpvAccessQualifierMax = 0x7fffffff,
 } SpvAccessQualifier;

 typedef enum SpvFunctionParameterAttribute_ {
@@ -313,6 +335,7 @@ typedef enum SpvFunctionParameterAttribute_ {
     SpvFunctionParameterAttributeNoCapture = 5,
     SpvFunctionParameterAttributeNoWrite = 6,
     SpvFunctionParameterAttributeNoReadWrite = 7,
+    SpvFunctionParameterAttributeMax = 0x7fffffff,
 } SpvFunctionParameterAttribute;

 typedef enum SpvDecoration_ {
@@ -359,6 +382,8 @@ typedef enum SpvDecoration_ {
     SpvDecorationNoContraction = 42,
     SpvDecorationInputAttachmentIndex = 43,
     SpvDecorationAlignment = 44,
+    SpvDecorationMaxByteOffset = 45,
+    SpvDecorationMax = 0x7fffffff,
 } SpvDecoration;

 typedef enum SpvBuiltIn_ {
@@ -403,11 +428,21 @@ typedef enum SpvBuiltIn_ {
     SpvBuiltInSubgroupLocalInvocationId = 41,
     SpvBuiltInVertexIndex = 42,
     SpvBuiltInInstanceIndex = 43,
+    SpvBuiltInSubgroupEqMaskKHR = 4416,
+    SpvBuiltInSubgroupGeMaskKHR = 4417,
+    SpvBuiltInSubgroupGtMaskKHR = 4418,
+    SpvBuiltInSubgroupLeMaskKHR = 4419,
+    SpvBuiltInSubgroupLtMaskKHR = 4420,
+    SpvBuiltInBaseVertex = 4424,
+    SpvBuiltInBaseInstance = 4425,
+    SpvBuiltInDrawIndex = 4426,
+    SpvBuiltInMax = 0x7fffffff,
 } SpvBuiltIn;

 typedef enum SpvSelectionControlShift_ {
     SpvSelectionControlFlattenShift = 0,
     SpvSelectionControlDontFlattenShift = 1,
+    SpvSelectionControlMax = 0x7fffffff,
 } SpvSelectionControlShift;

 typedef enum SpvSelectionControlMask_ {
@@ -419,12 +454,17 @@ typedef enum SpvSelectionControlMask_ {
 typedef enum SpvLoopControlShift_ {
     SpvLoopControlUnrollShift = 0,
     SpvLoopControlDontUnrollShift = 1,
+    SpvLoopControlDependencyInfiniteShift = 2,
+    SpvLoopControlDependencyLengthShift = 3,
+    SpvLoopControlMax = 0x7fffffff,
 } SpvLoopControlShift;

 typedef enum SpvLoopControlMask_ {
     SpvLoopControlMaskNone = 0,
     SpvLoopControlUnrollMask = 0x00000001,
     SpvLoopControlDontUnrollMask = 0x00000002,
+    SpvLoopControlDependencyInfiniteMask = 0x00000004,
+    SpvLoopControlDependencyLengthMask = 0x00000008,
 } SpvLoopControlMask;

 typedef enum SpvFunctionControlShift_ {
@@ -432,6 +472,7 @@ typedef enum SpvFunctionControlShift_ {
     SpvFunctionControlDontInlineShift = 1,
     SpvFunctionControlPureShift = 2,
     SpvFunctionControlConstShift = 3,
+    SpvFunctionControlMax = 0x7fffffff,
 } SpvFunctionControlShift;

 typedef enum SpvFunctionControlMask_ {
@@ -453,6 +494,7 @@ typedef enum SpvMemorySemanticsShift_ {
     SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
     SpvMemorySemanticsAtomicCounterMemoryShift = 10,
     SpvMemorySemanticsImageMemoryShift = 11,
+    SpvMemorySemanticsMax = 0x7fffffff,
 } SpvMemorySemanticsShift;

 typedef enum SpvMemorySemanticsMask_ {
@@ -473,6 +515,7 @@ typedef enum SpvMemoryAccessShift_ {
     SpvMemoryAccessVolatileShift = 0,
     SpvMemoryAccessAlignedShift = 1,
     SpvMemoryAccessNontemporalShift = 2,
+    SpvMemoryAccessMax = 0x7fffffff,
 } SpvMemoryAccessShift;

 typedef enum SpvMemoryAccessMask_ {
@@ -488,22 +531,26 @@ typedef enum SpvScope_ {
     SpvScopeWorkgroup = 2,
     SpvScopeSubgroup = 3,
     SpvScopeInvocation = 4,
+    SpvScopeMax = 0x7fffffff,
 } SpvScope;

 typedef enum SpvGroupOperation_ {
     SpvGroupOperationReduce = 0,
     SpvGroupOperationInclusiveScan = 1,
     SpvGroupOperationExclusiveScan = 2,
+    SpvGroupOperationMax = 0x7fffffff,
 } SpvGroupOperation;

 typedef enum SpvKernelEnqueueFlags_ {
     SpvKernelEnqueueFlagsNoWait = 0,
     SpvKernelEnqueueFlagsWaitKernel = 1,
     SpvKernelEnqueueFlagsWaitWorkGroup = 2,
+    SpvKernelEnqueueFlagsMax = 0x7fffffff,
 } SpvKernelEnqueueFlags;

 typedef enum SpvKernelProfilingInfoShift_ {
     SpvKernelProfilingInfoCmdExecTimeShift = 0,
+    SpvKernelProfilingInfoMax = 0x7fffffff,
 } SpvKernelProfilingInfoShift;

 typedef enum SpvKernelProfilingInfoMask_ {
@@ -568,6 +615,12 @@ typedef enum SpvCapability_ {
     SpvCapabilityStorageImageReadWithoutFormat = 55,
     SpvCapabilityStorageImageWriteWithoutFormat = 56,
     SpvCapabilityMultiViewport = 57,
+    SpvCapabilitySubgroupDispatch = 58,
+    SpvCapabilityNamedBarrier = 59,
+    SpvCapabilityPipeStorage = 60,
+    SpvCapabilitySubgroupBallotKHR = 4423,
+    SpvCapabilityDrawParameters = 4427,
+    SpvCapabilityMax = 0x7fffffff,
 } SpvCapability;

 typedef enum SpvOp_ {
@@ -864,6 +917,20 @@ typedef enum SpvOp_ {
     SpvOpNoLine = 317,
     SpvOpAtomicFlagTestAndSet = 318,
     SpvOpAtomicFlagClear = 319,
+    SpvOpImageSparseRead = 320,
+    SpvOpSizeOf = 321,
+    SpvOpTypePipeStorage = 322,
+    SpvOpConstantPipeStorage = 323,
+    SpvOpCreatePipeFromPipeStorage = 324,
+    SpvOpGetKernelLocalSizeForSubgroupCount = 325,
+    SpvOpGetKernelMaxNumSubgroups = 326,
+    SpvOpTypeNamedBarrier = 327,
+    SpvOpNamedBarrierInitialize = 328,
+    SpvOpMemoryNamedBarrier = 329,
+    SpvOpModuleProcessed = 330,
+    SpvOpSubgroupBallotKHR = 4421,
+    SpvOpSubgroupFirstInvocationKHR = 4422,
+    SpvOpMax = 0x7fffffff,
 } SpvOp;

 #endif  // #ifndef spirv_H
diff --git a/src/compiler/spirv/spirv_info.c b/src/compiler/spirv/spirv_info.c
index 7a5774c443..1036b41c31 100644
--- a/src/compiler/spirv/spirv_info.c
+++ b/src/compiler/spirv/spirv_info.c
@@ -82,6 +82,11 @@ static const char * const capability_to_string[] = {
    CAPABILITY(StorageImageReadWithoutFormat),
    CAPABILITY(StorageImageWriteWithoutFormat),
    CAPABILITY(MultiViewport),
+   CAPABILITY(SubgroupDispatch),
+   CAPABILITY(NamedBarrier),
+   CAPABILITY(PipeStorage),
+   CAPABILITY(SubgroupBallotKHR),
+   CAPABILITY(DrawParameters),
 };

 const char *
@@ -138,6 +143,7 @@ static const char * const decoration_to_string[] = {
    DECORATION(NoContraction),
    DECORATION(InputAttachmentIndex),
    DECORATION(Alignment),
+   DECORATION(MaxByteOffset),
 };

 const char *
--
2.11.0


More information about the mesa-dev mailing list