<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>