On 10/11/2013 07:11 AM, srol...@vmware.com wrote:
From: Roland Scheidegger <srol...@vmware.com>

The previous limit of of 128*1024 was reported to cause frequent recompiles
in some apps due to shader variant thrashing on IRC in some apps leading
to noticeable lags.
Note that the LP_MAX_SHADER_VARIANTS limit (1024) was more or less impossible
to reach, since even simple fragment shaders without texturing (glxgears) used
more than twice than 128 instructions, hence the instruction limit would have
always been reached first (excluding things like trivial shaders not writing
color). Even with the new limit it is VERY likely the instruction limit is hit
first.
Should help with such lags due to recompiles (though other shader types have
their own limits, LP_MAX_SETUP_VARIANTS and DRAW_MAX_SHADER_VARIANTS, in
particular the latter seems a bit small (128)).
---
  src/gallium/drivers/llvmpipe/lp_limits.h |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_limits.h 
b/src/gallium/drivers/llvmpipe/lp_limits.h
index af31b35..8cfab5a 100644
--- a/src/gallium/drivers/llvmpipe/lp_limits.h
+++ b/src/gallium/drivers/llvmpipe/lp_limits.h
@@ -79,7 +79,7 @@
   * Max number of instructions (for all fragment shaders combined per context)
   * that will be kept around.
   */
-#define LP_MAX_SHADER_INSTRUCTIONS (128*1024)
+#define LP_MAX_SHADER_INSTRUCTIONS (512*LP_MAX_SHADER_VARIANTS)

  /**
   * Max number of setup variants that will be kept around.


Reviewed-by: Brian Paul <bri...@vmware.com>

Maybe the comment on LP_MAX_SHADER_INSTRUCTIONS should indicate that these are LLVM IR instructions, not TGSI instructions, not machine instructions. I had to dig for a while to find that.

-Brian

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to