[Mesa-dev] [PATCH 2/2] spirv: bump headers to SPIRV 1.1
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Wed Jan 25 13:13:14 UTC 2017
On Wed, Jan 25, 2017, at 05:06, Lionel Landwerlin wrote:
> Just to confirm, are you fine with the header update triggering warnings
> fixed by the following commit?
Can't you update the switches before updating the header? That would
avoid any warnings unless I'm missing stuff.
>
> Thanks!
>
> On 25/01/17 12:45, Bas Nieuwenhuizen wrote:
> > Can you split the switch changes to a different commit? With that,
> >
> > Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
> >
> > for the series.
> >
> > On Wed, Jan 25, 2017, at 04:39, Lionel Landwerlin wrote:
> >> 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 +++
> >> src/compiler/spirv/spirv_to_nir.c | 12 ++++++
> >> src/compiler/spirv/vtn_variables.c | 3 ++
> >> 5 files changed, 101 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 *
> >> diff --git a/src/compiler/spirv/spirv_to_nir.c
> >> b/src/compiler/spirv/spirv_to_nir.c
> >> index 968502c5fd..6f18af2018 100644
> >> --- a/src/compiler/spirv/spirv_to_nir.c
> >> +++ b/src/compiler/spirv/spirv_to_nir.c
> >> @@ -561,6 +561,9 @@ struct_member_decoration_cb(struct vtn_builder *b,
> >> vtn_warn("Decoration only allowed for CL-style kernels: %s",
> >> spirv_decoration_to_string(dec->decoration));
> >> break;
> >> +
> >> + default:
> >> + unreachable("Unhandled decoration");
> >> }
> >> }
> >>
> >> @@ -638,6 +641,9 @@ type_decoration_cb(struct vtn_builder *b,
> >> vtn_warn("Decoration only allowed for CL-style kernels: %s",
> >> spirv_decoration_to_string(dec->decoration));
> >> break;
> >> +
> >> + default:
> >> + unreachable("Unhandled decoration");
> >> }
> >> }
> >>
> >> @@ -2653,6 +2659,9 @@ vtn_handle_preamble_instruction(struct vtn_builder
> >> *b, SpvOp opcode,
> >> case SpvCapabilityTessellationPointSize:
> >> spv_check_supported(tessellation, cap);
> >> break;
> >> +
> >> + default:
> >> + unreachable("Unhandled capability");
> >> }
> >> break;
> >> }
> >> @@ -2842,6 +2851,9 @@ vtn_handle_execution_mode(struct vtn_builder *b,
> >> struct vtn_value *entry_point,
> >> case SpvExecutionModeVecTypeHint:
> >> case SpvExecutionModeContractionOff:
> >> break; /* OpenCL */
> >> +
> >> + default:
> >> + unreachable("Unhandled execution mode");
> >> }
> >> }
> >>
> >> diff --git a/src/compiler/spirv/vtn_variables.c
> >> b/src/compiler/spirv/vtn_variables.c
> >> index 4d1ec789cc..05ac91eedd 100644
> >> --- a/src/compiler/spirv/vtn_variables.c
> >> +++ b/src/compiler/spirv/vtn_variables.c
> >> @@ -1139,6 +1139,9 @@ apply_var_decoration(struct vtn_builder *b,
> >> nir_variable *nir_var,
> >> vtn_warn("Decoration only allowed for CL-style kernels: %s",
> >> spirv_decoration_to_string(dec->decoration));
> >> break;
> >> +
> >> + default:
> >> + unreachable("Unhandled decoration");
> >> }
> >> }
> >>
> >> --
> >> 2.11.0
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
More information about the mesa-dev
mailing list