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 <b...@basnieuwenhuizen.nl> > > > > for the series. > > > > On Wed, Jan 25, 2017, at 04:39, Lionel Landwerlin wrote: > >> Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@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@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev