[Mesa-dev] [PATCH 0/2] Fix array overrun on too many uniforms

Petri Latvala petri.latvala at intel.com
Fri Nov 8 03:14:47 PST 2013


vec4_visitor has two arrays, uniform_size and
uniform_vector_size. Their size is set to MAX_UNIFORMS, which is the
number of uniform vec4s. The size should be the number of uniform
components instead.

When testing this fix (testcase shader attached in the bug), you'll
need to set the stack limit to bigger than the default 8MB. 16MB was
enough for the testcase shader. I verified that with this fix correct
error message is given with 17000 uniforms, and compiling a shader
with 15000 uniforms works, although it took 5 minutes to compile.

Petri Latvala (2):
  Increase array sizes to what they should be.
  Check access to vec4_visitor's arrays

 src/mesa/drivers/dri/i965/brw_vec4.cpp         | 3 +++
 src/mesa/drivers/dri/i965/brw_vec4.h           | 4 ++--
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 6 ++++++
 src/mesa/drivers/dri/i965/brw_vec4_vp.cpp      | 1 +
 4 files changed, 12 insertions(+), 2 deletions(-)


More information about the mesa-dev mailing list