llvmpipe, draw: increase shader cache limits
authorRoland Scheidegger <sroland@vmware.com>
Mon, 4 Sep 2017 22:17:31 +0000 (00:17 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Thu, 7 Sep 2017 01:32:01 +0000 (03:32 +0200)
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 <jfonseca@vmware.com>
src/gallium/auxiliary/draw/draw_private.h
src/gallium/drivers/llvmpipe/lp_limits.h

index 030bb2cece64cc1ecb602590616e1b6fa0177ff4..06ad7372a745c457950c673c848cd697c079eff6 100644 (file)
@@ -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.
index 5294ced3c4f64f6b48c29a20a6328b5b0eda4260..c2808162c78a8019a87dae4d4937c2a65f610575 100644 (file)
 /**
  * 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.