From: Roland Scheidegger Date: Mon, 4 Sep 2017 22:17:31 +0000 (+0200) Subject: llvmpipe, draw: increase shader cache limits X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de6810d9be9d1e6426881774458f8a6f3bed17ee;p=mesa.git llvmpipe, draw: increase shader cache limits 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... Reviewed-by: Jose Fonseca --- diff --git a/src/gallium/auxiliary/draw/draw_private.h b/src/gallium/auxiliary/draw/draw_private.h index 030bb2cece6..06ad7372a74 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 5294ced3c4f..c2808162c78 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.