<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 25, 2017 at 4:45 AM, Bas Nieuwenhuizen <span dir="ltr"><<a href="mailto:bas@basnieuwenhuizen.nl" target="_blank">bas@basnieuwenhuizen.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Can you split the switch changes to a different commit? With that,<br></blockquote><div><br></div><div>Agreed,<br><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Reviewed-by: Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>><br>
<br>
for the series.<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Jan 25, 2017, at 04:39, Lionel Landwerlin wrote:<br>
> Signed-off-by: Lionel Landwerlin <<a href="mailto:lionel.g.landwerlin@intel.com">lionel.g.landwerlin@intel.com</a><wbr>><br>
> ---<br>
>  src/compiler/spirv/GLSL.std.<wbr>450.h  | 12 ++++--<br>
>  src/compiler/spirv/spirv.h  Â  Â  Â  Â | 77<br>
>  ++++++++++++++++++++++++++++++<wbr>+++++---<br>
>  src/compiler/spirv/spirv_info.<wbr>c  Â  |  6 +++<br>
>  src/compiler/spirv/spirv_to_<wbr>nir.c  | 12 ++++++<br>
>  src/compiler/spirv/vtn_<wbr>variables.c |  3 ++<br>
>  5 files changed, 101 insertions(+), 9 deletions(-)<br>
><br>
> diff --git a/src/compiler/spirv/GLSL.std.<wbr>450.h<br>
> b/src/compiler/spirv/GLSL.std.<wbr>450.h<br>
> index d1c9b5c1d4..54cc00e9a8 100644<br>
> --- a/src/compiler/spirv/GLSL.std.<wbr>450.h<br>
> +++ b/src/compiler/spirv/GLSL.std.<wbr>450.h<br>
> @@ -1,5 +1,5 @@<br>
>  /*<br>
> -** Copyright (c) 2014-2015 The Khronos Group Inc.<br>
> +** Copyright (c) 2014-2016 The Khronos Group Inc.<br>
>  **<br>
>  ** Permission is hereby granted, free of charge, to any person obtaining<br>
>  a copy<br>
>  ** of this software and/or associated documentation files (the<br>
>  "Materials"),<br>
> @@ -27,8 +27,8 @@<br>
>  #ifndef GLSLstd450_H<br>
>  #define GLSLstd450_H<br>
><br>
> -const int GLSLstd450Version = 99;<br>
> -const int GLSLstd450Revision = 3;<br>
> +static const int GLSLstd450Version = 100;<br>
> +static const int GLSLstd450Revision = 3;<br>
><br>
>  enum GLSLstd450 {<br>
>  Â  Â  GLSLstd450Bad = 0,  Â  Â  Â  Â  Â  Â  // Don't use<br>
> @@ -83,7 +83,7 @@ enum GLSLstd450 {<br>
>  Â  Â  GLSLstd450UClamp = 44,<br>
>  Â  Â  GLSLstd450SClamp = 45,<br>
>  Â  Â  GLSLstd450FMix = 46,<br>
> -  Â  GLSLstd450IMix = 47,<br>
> +  Â  GLSLstd450IMix = 47,  Â  Â  Â  Â  Â  // Reserved<br>
>  Â  Â  GLSLstd450Step = 48,<br>
>  Â  Â  GLSLstd450SmoothStep = 49,<br>
><br>
> @@ -121,6 +121,10 @@ enum GLSLstd450 {<br>
>  Â  Â  GLSLstd450InterpolateAtSample = 77,<br>
>  Â  Â  GLSLstd450InterpolateAtOffset = 78,<br>
><br>
> +  Â  GLSLstd450NMin = 79,<br>
> +  Â  GLSLstd450NMax = 80,<br>
> +  Â  GLSLstd450NClamp = 81,<br>
> +<br>
>  Â  Â  GLSLstd450Count<br>
>  };<br>
><br>
> diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h<br>
> index 63bcb2f88d..769c10225d 100644<br>
> --- a/src/compiler/spirv/spirv.h<br>
> +++ b/src/compiler/spirv/spirv.h<br>
> @@ -1,5 +1,5 @@<br>
>  /*<br>
> -** Copyright (c) 2014-2015 The Khronos Group Inc.<br>
> +** Copyright (c) 2014-2016 The Khronos Group Inc.<br>
>  **<br>
>  ** Permission is hereby granted, free of charge, to any person obtaining<br>
>  a copy<br>
>  ** of this software and/or associated documentation files (the<br>
>  "Materials"),<br>
> @@ -50,12 +50,12 @@<br>
><br>
>  typedef unsigned int SpvId;<br>
><br>
> -#define SPV_VERSION 0x10000<br>
> -#define SPV_REVISION 2<br>
> +#define SPV_VERSION 0x10100<br>
> +#define SPV_REVISION 4<br>
><br>
>  static const unsigned int SpvMagicNumber = 0x07230203;<br>
> -static const unsigned int SpvVersion = 0x00010000;<br>
> -static const unsigned int SpvRevision = 2;<br>
> +static const unsigned int SpvVersion = 0x00010100;<br>
> +static const unsigned int SpvRevision = 4;<br>
>  static const unsigned int SpvOpCodeMask = 0xffff;<br>
>  static const unsigned int SpvWordCountShift = 16;<br>
><br>
> @@ -65,6 +65,7 @@ typedef enum SpvSourceLanguage_ {<br>
>  Â  Â  SpvSourceLanguageGLSL = 2,<br>
>  Â  Â  SpvSourceLanguageOpenCL_C = 3,<br>
>  Â  Â  SpvSourceLanguageOpenCL_CPP = 4,<br>
> +  Â  SpvSourceLanguageMax = 0x7fffffff,<br>
>  } SpvSourceLanguage;<br>
><br>
>  typedef enum SpvExecutionModel_ {<br>
> @@ -75,18 +76,21 @@ typedef enum SpvExecutionModel_ {<br>
>  Â  Â  SpvExecutionModelFragment = 4,<br>
>  Â  Â  SpvExecutionModelGLCompute = 5,<br>
>  Â  Â  SpvExecutionModelKernel = 6,<br>
> +  Â  SpvExecutionModelMax = 0x7fffffff,<br>
>  } SpvExecutionModel;<br>
><br>
>  typedef enum SpvAddressingModel_ {<br>
>  Â  Â  SpvAddressingModelLogical = 0,<br>
>  Â  Â  SpvAddressingModelPhysical32 = 1,<br>
>  Â  Â  SpvAddressingModelPhysical64 = 2,<br>
> +  Â  SpvAddressingModelMax = 0x7fffffff,<br>
>  } SpvAddressingModel;<br>
><br>
>  typedef enum SpvMemoryModel_ {<br>
>  Â  Â  SpvMemoryModelSimple = 0,<br>
>  Â  Â  SpvMemoryModelGLSL450 = 1,<br>
>  Â  Â  SpvMemoryModelOpenCL = 2,<br>
> +  Â  SpvMemoryModelMax = 0x7fffffff,<br>
>  } SpvMemoryModel;<br>
><br>
>  typedef enum SpvExecutionMode_ {<br>
> @@ -121,6 +125,11 @@ typedef enum SpvExecutionMode_ {<br>
>  Â  Â  SpvExecutionModeOutputTriangle<wbr>Strip = 29,<br>
>  Â  Â  SpvExecutionModeVecTypeHint = 30,<br>
>  Â  Â  SpvExecutionModeContractionOff = 31,<br>
> +  Â  SpvExecutionModeInitializer = 33,<br>
> +  Â  SpvExecutionModeFinalizer = 34,<br>
> +  Â  SpvExecutionModeSubgroupSize = 35,<br>
> +  Â  SpvExecutionModeSubgroupsPerWo<wbr>rkgroup = 36,<br>
> +  Â  SpvExecutionModeMax = 0x7fffffff,<br>
>  } SpvExecutionMode;<br>
><br>
>  typedef enum SpvStorageClass_ {<br>
> @@ -136,6 +145,7 @@ typedef enum SpvStorageClass_ {<br>
>  Â  Â  SpvStorageClassPushConstant = 9,<br>
>  Â  Â  SpvStorageClassAtomicCounter = 10,<br>
>  Â  Â  SpvStorageClassImage = 11,<br>
> +  Â  SpvStorageClassMax = 0x7fffffff,<br>
>  } SpvStorageClass;<br>
><br>
>  typedef enum SpvDim_ {<br>
> @@ -146,6 +156,7 @@ typedef enum SpvDim_ {<br>
>  Â  Â  SpvDimRect = 4,<br>
>  Â  Â  SpvDimBuffer = 5,<br>
>  Â  Â  SpvDimSubpassData = 6,<br>
> +  Â  SpvDimMax = 0x7fffffff,<br>
>  } SpvDim;<br>
><br>
>  typedef enum SpvSamplerAddressingMode_ {<br>
> @@ -154,11 +165,13 @@ typedef enum SpvSamplerAddressingMode_ {<br>
>  Â  Â  SpvSamplerAddressingModeClamp = 2,<br>
>  Â  Â  SpvSamplerAddressingModeRepeat = 3,<br>
>  Â  Â  SpvSamplerAddressingModeRepeat<wbr>Mirrored = 4,<br>
> +  Â  SpvSamplerAddressingModeMax = 0x7fffffff,<br>
>  } SpvSamplerAddressingMode;<br>
><br>
>  typedef enum SpvSamplerFilterMode_ {<br>
>  Â  Â  SpvSamplerFilterModeNearest = 0,<br>
>  Â  Â  SpvSamplerFilterModeLinear = 1,<br>
> +  Â  SpvSamplerFilterModeMax = 0x7fffffff,<br>
>  } SpvSamplerFilterMode;<br>
><br>
>  typedef enum SpvImageFormat_ {<br>
> @@ -202,6 +215,7 @@ typedef enum SpvImageFormat_ {<br>
>  Â  Â  SpvImageFormatRg8ui = 37,<br>
>  Â  Â  SpvImageFormatR16ui = 38,<br>
>  Â  Â  SpvImageFormatR8ui = 39,<br>
> +  Â  SpvImageFormatMax = 0x7fffffff,<br>
>  } SpvImageFormat;<br>
><br>
>  typedef enum SpvImageChannelOrder_ {<br>
> @@ -224,6 +238,8 @@ typedef enum SpvImageChannelOrder_ {<br>
>  Â  Â  SpvImageChannelOrdersRGBx = 16,<br>
>  Â  Â  SpvImageChannelOrdersRGBA = 17,<br>
>  Â  Â  SpvImageChannelOrdersBGRA = 18,<br>
> +  Â  SpvImageChannelOrderABGR = 19,<br>
> +  Â  SpvImageChannelOrderMax = 0x7fffffff,<br>
>  } SpvImageChannelOrder;<br>
><br>
>  typedef enum SpvImageChannelDataType_ {<br>
> @@ -244,6 +260,7 @@ typedef enum SpvImageChannelDataType_ {<br>
>  Â  Â  SpvImageChannelDataTypeFloat = 14,<br>
>  Â  Â  SpvImageChannelDataTypeUnormIn<wbr>t24 = 15,<br>
>  Â  Â  SpvImageChannelDataTypeUnormIn<wbr>t101010_2 = 16,<br>
> +  Â  SpvImageChannelDataTypeMax = 0x7fffffff,<br>
>  } SpvImageChannelDataType;<br>
><br>
>  typedef enum SpvImageOperandsShift_ {<br>
> @@ -255,6 +272,7 @@ typedef enum SpvImageOperandsShift_ {<br>
>  Â  Â  SpvImageOperandsConstOffsetsSh<wbr>ift = 5,<br>
>  Â  Â  SpvImageOperandsSampleShift = 6,<br>
>  Â  Â  SpvImageOperandsMinLodShift = 7,<br>
> +  Â  SpvImageOperandsMax = 0x7fffffff,<br>
>  } SpvImageOperandsShift;<br>
><br>
>  typedef enum SpvImageOperandsMask_ {<br>
> @@ -275,6 +293,7 @@ typedef enum SpvFPFastMathModeShift_ {<br>
>  Â  Â  SpvFPFastMathModeNSZShift = 2,<br>
>  Â  Â  SpvFPFastMathModeAllowRecipShi<wbr>ft = 3,<br>
>  Â  Â  SpvFPFastMathModeFastShift = 4,<br>
> +  Â  SpvFPFastMathModeMax = 0x7fffffff,<br>
>  } SpvFPFastMathModeShift;<br>
><br>
>  typedef enum SpvFPFastMathModeMask_ {<br>
> @@ -291,17 +310,20 @@ typedef enum SpvFPRoundingMode_ {<br>
>  Â  Â  SpvFPRoundingModeRTZ = 1,<br>
>  Â  Â  SpvFPRoundingModeRTP = 2,<br>
>  Â  Â  SpvFPRoundingModeRTN = 3,<br>
> +  Â  SpvFPRoundingModeMax = 0x7fffffff,<br>
>  } SpvFPRoundingMode;<br>
><br>
>  typedef enum SpvLinkageType_ {<br>
>  Â  Â  SpvLinkageTypeExport = 0,<br>
>  Â  Â  SpvLinkageTypeImport = 1,<br>
> +  Â  SpvLinkageTypeMax = 0x7fffffff,<br>
>  } SpvLinkageType;<br>
><br>
>  typedef enum SpvAccessQualifier_ {<br>
>  Â  Â  SpvAccessQualifierReadOnly = 0,<br>
>  Â  Â  SpvAccessQualifierWriteOnly = 1,<br>
>  Â  Â  SpvAccessQualifierReadWrite = 2,<br>
> +  Â  SpvAccessQualifierMax = 0x7fffffff,<br>
>  } SpvAccessQualifier;<br>
><br>
>  typedef enum SpvFunctionParameterAttribute_ {<br>
> @@ -313,6 +335,7 @@ typedef enum SpvFunctionParameterAttribute_ {<br>
>  Â  Â  SpvFunctionParameterAttributeN<wbr>oCapture = 5,<br>
>  Â  Â  SpvFunctionParameterAttributeN<wbr>oWrite = 6,<br>
>  Â  Â  SpvFunctionParameterAttributeN<wbr>oReadWrite = 7,<br>
> +  Â  SpvFunctionParameterAttributeM<wbr>ax = 0x7fffffff,<br>
>  } SpvFunctionParameterAttribute;<br>
><br>
>  typedef enum SpvDecoration_ {<br>
> @@ -359,6 +382,8 @@ typedef enum SpvDecoration_ {<br>
>  Â  Â  SpvDecorationNoContraction = 42,<br>
>  Â  Â  SpvDecorationInputAttachmentIn<wbr>dex = 43,<br>
>  Â  Â  SpvDecorationAlignment = 44,<br>
> +  Â  SpvDecorationMaxByteOffset = 45,<br>
> +  Â  SpvDecorationMax = 0x7fffffff,<br>
>  } SpvDecoration;<br>
><br>
>  typedef enum SpvBuiltIn_ {<br>
> @@ -403,11 +428,21 @@ typedef enum SpvBuiltIn_ {<br>
>  Â  Â  SpvBuiltInSubgroupLocalInvocat<wbr>ionId = 41,<br>
>  Â  Â  SpvBuiltInVertexIndex = 42,<br>
>  Â  Â  SpvBuiltInInstanceIndex = 43,<br>
> +  Â  SpvBuiltInSubgroupEqMaskKHR = 4416,<br>
> +  Â  SpvBuiltInSubgroupGeMaskKHR = 4417,<br>
> +  Â  SpvBuiltInSubgroupGtMaskKHR = 4418,<br>
> +  Â  SpvBuiltInSubgroupLeMaskKHR = 4419,<br>
> +  Â  SpvBuiltInSubgroupLtMaskKHR = 4420,<br>
> +  Â  SpvBuiltInBaseVertex = 4424,<br>
> +  Â  SpvBuiltInBaseInstance = 4425,<br>
> +  Â  SpvBuiltInDrawIndex = 4426,<br>
> +  Â  SpvBuiltInMax = 0x7fffffff,<br>
>  } SpvBuiltIn;<br>
><br>
>  typedef enum SpvSelectionControlShift_ {<br>
>  Â  Â  SpvSelectionControlFlattenShif<wbr>t = 0,<br>
>  Â  Â  SpvSelectionControlDontFlatten<wbr>Shift = 1,<br>
> +  Â  SpvSelectionControlMax = 0x7fffffff,<br>
>  } SpvSelectionControlShift;<br>
><br>
>  typedef enum SpvSelectionControlMask_ {<br>
> @@ -419,12 +454,17 @@ typedef enum SpvSelectionControlMask_ {<br>
>  typedef enum SpvLoopControlShift_ {<br>
>  Â  Â  SpvLoopControlUnrollShift = 0,<br>
>  Â  Â  SpvLoopControlDontUnrollShift = 1,<br>
> +  Â  SpvLoopControlDependencyInfini<wbr>teShift = 2,<br>
> +  Â  SpvLoopControlDependencyLength<wbr>Shift = 3,<br>
> +  Â  SpvLoopControlMax = 0x7fffffff,<br>
>  } SpvLoopControlShift;<br>
><br>
>  typedef enum SpvLoopControlMask_ {<br>
>  Â  Â  SpvLoopControlMaskNone = 0,<br>
>  Â  Â  SpvLoopControlUnrollMask = 0x00000001,<br>
>  Â  Â  SpvLoopControlDontUnrollMask = 0x00000002,<br>
> +  Â  SpvLoopControlDependencyInfini<wbr>teMask = 0x00000004,<br>
> +  Â  SpvLoopControlDependencyLength<wbr>Mask = 0x00000008,<br>
>  } SpvLoopControlMask;<br>
><br>
>  typedef enum SpvFunctionControlShift_ {<br>
> @@ -432,6 +472,7 @@ typedef enum SpvFunctionControlShift_ {<br>
>  Â  Â  SpvFunctionControlDontInlineSh<wbr>ift = 1,<br>
>  Â  Â  SpvFunctionControlPureShift = 2,<br>
>  Â  Â  SpvFunctionControlConstShift = 3,<br>
> +  Â  SpvFunctionControlMax = 0x7fffffff,<br>
>  } SpvFunctionControlShift;<br>
><br>
>  typedef enum SpvFunctionControlMask_ {<br>
> @@ -453,6 +494,7 @@ typedef enum SpvMemorySemanticsShift_ {<br>
>  Â  Â  SpvMemorySemanticsCrossWorkgro<wbr>upMemoryShift = 9,<br>
>  Â  Â  SpvMemorySemanticsAtomicCounte<wbr>rMemoryShift = 10,<br>
>  Â  Â  SpvMemorySemanticsImageMemoryS<wbr>hift = 11,<br>
> +  Â  SpvMemorySemanticsMax = 0x7fffffff,<br>
>  } SpvMemorySemanticsShift;<br>
><br>
>  typedef enum SpvMemorySemanticsMask_ {<br>
> @@ -473,6 +515,7 @@ typedef enum SpvMemoryAccessShift_ {<br>
>  Â  Â  SpvMemoryAccessVolatileShift = 0,<br>
>  Â  Â  SpvMemoryAccessAlignedShift = 1,<br>
>  Â  Â  SpvMemoryAccessNontemporalShif<wbr>t = 2,<br>
> +  Â  SpvMemoryAccessMax = 0x7fffffff,<br>
>  } SpvMemoryAccessShift;<br>
><br>
>  typedef enum SpvMemoryAccessMask_ {<br>
> @@ -488,22 +531,26 @@ typedef enum SpvScope_ {<br>
>  Â  Â  SpvScopeWorkgroup = 2,<br>
>  Â  Â  SpvScopeSubgroup = 3,<br>
>  Â  Â  SpvScopeInvocation = 4,<br>
> +  Â  SpvScopeMax = 0x7fffffff,<br>
>  } SpvScope;<br>
><br>
>  typedef enum SpvGroupOperation_ {<br>
>  Â  Â  SpvGroupOperationReduce = 0,<br>
>  Â  Â  SpvGroupOperationInclusiveScan = 1,<br>
>  Â  Â  SpvGroupOperationExclusiveScan = 2,<br>
> +  Â  SpvGroupOperationMax = 0x7fffffff,<br>
>  } SpvGroupOperation;<br>
><br>
>  typedef enum SpvKernelEnqueueFlags_ {<br>
>  Â  Â  SpvKernelEnqueueFlagsNoWait = 0,<br>
>  Â  Â  SpvKernelEnqueueFlagsWaitKerne<wbr>l = 1,<br>
>  Â  Â  SpvKernelEnqueueFlagsWaitWorkG<wbr>roup = 2,<br>
> +  Â  SpvKernelEnqueueFlagsMax = 0x7fffffff,<br>
>  } SpvKernelEnqueueFlags;<br>
><br>
>  typedef enum SpvKernelProfilingInfoShift_ {<br>
>  Â  Â  SpvKernelProfilingInfoCmdExecT<wbr>imeShift = 0,<br>
> +  Â  SpvKernelProfilingInfoMax = 0x7fffffff,<br>
>  } SpvKernelProfilingInfoShift;<br>
><br>
>  typedef enum SpvKernelProfilingInfoMask_ {<br>
> @@ -568,6 +615,12 @@ typedef enum SpvCapability_ {<br>
>  Â  Â  SpvCapabilityStorageImageReadW<wbr>ithoutFormat = 55,<br>
>  Â  Â  SpvCapabilityStorageImageWrite<wbr>WithoutFormat = 56,<br>
>  Â  Â  SpvCapabilityMultiViewport = 57,<br>
> +  Â  SpvCapabilitySubgroupDispatch = 58,<br>
> +  Â  SpvCapabilityNamedBarrier = 59,<br>
> +  Â  SpvCapabilityPipeStorage = 60,<br>
> +  Â  SpvCapabilitySubgroupBallotKHR = 4423,<br>
> +  Â  SpvCapabilityDrawParameters = 4427,<br>
> +  Â  SpvCapabilityMax = 0x7fffffff,<br>
>  } SpvCapability;<br>
><br>
>  typedef enum SpvOp_ {<br>
> @@ -864,6 +917,20 @@ typedef enum SpvOp_ {<br>
>  Â  Â  SpvOpNoLine = 317,<br>
>  Â  Â  SpvOpAtomicFlagTestAndSet = 318,<br>
>  Â  Â  SpvOpAtomicFlagClear = 319,<br>
> +  Â  SpvOpImageSparseRead = 320,<br>
> +  Â  SpvOpSizeOf = 321,<br>
> +  Â  SpvOpTypePipeStorage = 322,<br>
> +  Â  SpvOpConstantPipeStorage = 323,<br>
> +  Â  SpvOpCreatePipeFromPipeStorage = 324,<br>
> +  Â  SpvOpGetKernelLocalSizeForSubg<wbr>roupCount = 325,<br>
> +  Â  SpvOpGetKernelMaxNumSubgroups = 326,<br>
> +  Â  SpvOpTypeNamedBarrier = 327,<br>
> +  Â  SpvOpNamedBarrierInitialize = 328,<br>
> +  Â  SpvOpMemoryNamedBarrier = 329,<br>
> +  Â  SpvOpModuleProcessed = 330,<br>
> +  Â  SpvOpSubgroupBallotKHR = 4421,<br>
> +  Â  SpvOpSubgroupFirstInvocationKH<wbr>R = 4422,<br>
> +  Â  SpvOpMax = 0x7fffffff,<br>
>  } SpvOp;<br>
><br>
>  #endif  // #ifndef spirv_H<br>
> diff --git a/src/compiler/spirv/spirv_<wbr>info.c<br>
> b/src/compiler/spirv/spirv_<wbr>info.c<br>
> index 7a5774c443..1036b41c31 100644<br>
> --- a/src/compiler/spirv/spirv_<wbr>info.c<br>
> +++ b/src/compiler/spirv/spirv_<wbr>info.c<br>
> @@ -82,6 +82,11 @@ static const char * const capability_to_string[] = {<br>
>  Â  Â CAPABILITY(<wbr>StorageImageReadWithoutFormat)<wbr>,<br>
>  Â  Â CAPABILITY(<wbr>StorageImageWriteWithoutFormat<wbr>),<br>
>  Â  Â CAPABILITY(MultiViewport),<br>
> +  Â CAPABILITY(SubgroupDispatch),<br>
> +  Â CAPABILITY(NamedBarrier),<br>
> +  Â CAPABILITY(PipeStorage),<br>
> +  Â CAPABILITY(SubgroupBallotKHR),<br>
> +  Â CAPABILITY(DrawParameters),<br>
>  };<br>
><br>
>  const char *<br>
> @@ -138,6 +143,7 @@ static const char * const decoration_to_string[] = {<br>
>  Â  Â DECORATION(NoContraction),<br>
>  Â  Â DECORATION(<wbr>InputAttachmentIndex),<br>
>  Â  Â DECORATION(Alignment),<br>
> +  Â DECORATION(MaxByteOffset),<br>
>  };<br>
><br>
>  const char *<br>
> diff --git a/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
> b/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
> index 968502c5fd..6f18af2018 100644<br>
> --- a/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
> +++ b/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
> @@ -561,6 +561,9 @@ struct_member_decoration_cb(<wbr>struct vtn_builder *b,<br>
>  Â  Â  Â  vtn_warn("Decoration only allowed for CL-style kernels: %s",<br>
>  Â  Â  Â  Â  Â  Â  Â  Â spirv_decoration_to_string(<wbr>dec->decoration));<br>
>  Â  Â  Â  break;<br>
> +<br>
> +  Â default:<br>
> +  Â  Â  unreachable("Unhandled decoration");<br>
>  Â  Â }<br>
>  }<br>
><br>
> @@ -638,6 +641,9 @@ type_decoration_cb(struct vtn_builder *b,<br>
>  Â  Â  Â  vtn_warn("Decoration only allowed for CL-style kernels: %s",<br>
>  Â  Â  Â  Â  Â  Â  Â  Â spirv_decoration_to_string(<wbr>dec->decoration));<br>
>  Â  Â  Â  break;<br>
> +<br>
> +  Â default:<br>
> +  Â  Â  unreachable("Unhandled decoration");<br>
>  Â  Â }<br>
>  }<br>
><br>
> @@ -2653,6 +2659,9 @@ vtn_handle_preamble_<wbr>instruction(struct vtn_builder<br>
> *b, SpvOp opcode,<br>
>  Â  Â  Â  case SpvCapabilityTessellationPoint<wbr>Size:<br>
>  Â  Â  Â  Â  Â spv_check_supported(<wbr>tessellation, cap);<br>
>  Â  Â  Â  Â  Â break;<br>
> +<br>
> +  Â  Â  default:<br>
> +  Â  Â  Â  Â unreachable("Unhandled capability");<br>
>  Â  Â  Â  }<br>
>  Â  Â  Â  break;<br>
>  Â  Â }<br>
> @@ -2842,6 +2851,9 @@ vtn_handle_execution_mode(<wbr>struct vtn_builder *b,<br>
> struct vtn_value *entry_point,<br>
>  Â  Â case SpvExecutionModeVecTypeHint:<br>
>  Â  Â case SpvExecutionModeContractionOff<wbr>:<br>
>  Â  Â  Â  break; /* OpenCL */<br>
> +<br>
> +  Â default:<br>
> +  Â  Â  unreachable("Unhandled execution mode");<br>
>  Â  Â }<br>
>  }<br>
><br>
> diff --git a/src/compiler/spirv/vtn_<wbr>variables.c<br>
> b/src/compiler/spirv/vtn_<wbr>variables.c<br>
> index 4d1ec789cc..05ac91eedd 100644<br>
> --- a/src/compiler/spirv/vtn_<wbr>variables.c<br>
> +++ b/src/compiler/spirv/vtn_<wbr>variables.c<br>
> @@ -1139,6 +1139,9 @@ apply_var_decoration(struct vtn_builder *b,<br>
> nir_variable *nir_var,<br>
>  Â  Â  Â  vtn_warn("Decoration only allowed for CL-style kernels: %s",<br>
>  Â  Â  Â  Â  Â  Â  Â  Â spirv_decoration_to_string(<wbr>dec->decoration));<br>
>  Â  Â  Â  break;<br>
> +<br>
> +  Â default:<br>
> +  Â  Â  unreachable("Unhandled decoration");<br>
>  Â  Â }<br>
>  }<br>
><br>
> --<br>
> 2.11.0<br>
><br>
> ______________________________<wbr>_________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>