If dual instanced compile fails (as seems to happen with virgl a fair bit, and does piglit even have any tests for it?), we end up not restarting the pull params, so we call vec4_visitor::move_uniform_array_access_to_pull_constant a second time and it runs over the ends of the alloc.
Fixes: tests/spec/glsl-1.50/execution/geometry/max-input-components.shader_test running inside virgl on ivybridge. Signed-off-by: Dave Airlie <[email protected]> --- src/intel/compiler/brw_vec4_gs_visitor.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/intel/compiler/brw_vec4_gs_visitor.cpp b/src/intel/compiler/brw_vec4_gs_visitor.cpp index ca59927cd3..a8e445c473 100644 --- a/src/intel/compiler/brw_vec4_gs_visitor.cpp +++ b/src/intel/compiler/brw_vec4_gs_visitor.cpp @@ -912,6 +912,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data, memcpy(prog_data->base.base.param, param, sizeof(gl_constant_value*) * param_count); prog_data->base.base.nr_params = param_count; + prog_data->base.base.nr_pull_params = 0; ralloc_free(param); } } -- 2.13.3 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
