On Wed, Jan 25, 2017 at 4:45 AM, Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> wrote:
> Can you split the switch changes to a different commit? With that, > Agreed, Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > 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