[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