summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-08-03 13:48:40 +1000
committerDave Airlie <[email protected]>2017-08-03 16:54:08 +1000
commit271fa3a684ef0eefe99087c13d1abb099784163f (patch)
tree1103f5b73ca482f2e0abefa44abf82a8d4344ce9
parentd5ba75f8881f0869dc16f71f7395514c0a35b6e2 (diff)
intel/vec4/gs: reset nr_pull_param if DUAL_INSTANCED compile failed.
If dual object 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. Reviewed-by: Kenneth Graunke <[email protected]> Cc: <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r--src/intel/compiler/brw_vec4_gs_visitor.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_vec4_gs_visitor.cpp b/src/intel/compiler/brw_vec4_gs_visitor.cpp
index ca59927cd3a..a8e445c473c 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);
}
}