[Mesa-dev] [PATCH] llvmpipe, draw: increase shader cache limits

Jose Fonseca jfonseca at vmware.com
Tue Sep 5 11:42:05 UTC 2017


On 05/09/17 00:28, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
> 
> We're not particularly concerned with memory usage, if the tradeoff is
> shader recompiles. And it's common for apps to have a lot of shaders
> nowadays (and, since our shaders include a LOT of context state of course
> we may create quite a bit more shaders even).
> So quadruple the amount of shaders draw will cache (from 128 to 512).
> For llvmpipe (fs shaders) quadruple the number of instructions, keep the
> number of variants the same for now (only with very simple, non-texturing
> shaders the variant limit could really be reached), and simplify the
> definition, it's probably easier to just have one different definition
> per branch...
> ---
>   src/gallium/auxiliary/draw/draw_private.h | 2 +-
>   src/gallium/drivers/llvmpipe/lp_limits.h  | 4 +---
>   2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h
> index 030bb2c..06ad737 100644
> --- a/src/gallium/auxiliary/draw/draw_private.h
> +++ b/src/gallium/auxiliary/draw/draw_private.h
> @@ -103,7 +103,7 @@ struct vertex_header {
>   
>   
>   /* maximum number of shader variants we can cache */
> -#define DRAW_MAX_SHADER_VARIANTS 128
> +#define DRAW_MAX_SHADER_VARIANTS 512
>   
>   /**
>    * Private context for the drawing module.
> diff --git a/src/gallium/drivers/llvmpipe/lp_limits.h b/src/gallium/drivers/llvmpipe/lp_limits.h
> index 5294ced..c280816 100644
> --- a/src/gallium/drivers/llvmpipe/lp_limits.h
> +++ b/src/gallium/drivers/llvmpipe/lp_limits.h
> @@ -78,10 +78,8 @@
>   /**
>    * Max number of instructions (for all fragment shaders combined per context)
>    * that will be kept around (counted in terms of llvm ir).
> - * Note: the definition looks odd, but there's branches which use a different
> - * number of max shader variants.
>    */
> -#define LP_MAX_SHADER_INSTRUCTIONS MAX2(256*1024, 512*LP_MAX_SHADER_VARIANTS)
> +#define LP_MAX_SHADER_INSTRUCTIONS (2048 * LP_MAX_SHADER_VARIANTS)
>   
>   /**
>    * Max number of setup variants that will be kept around.
> 

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


More information about the mesa-dev mailing list