According to the comment, we need to load /some/ push constants on pre-Gen6 hardware or the GPU will hang. The existing code set these bogus parameters to NULL pointers; unfortunately, the code in brw_curbe.c that loads them dereferences those pointers. So, change them to be pointers to an actual floating point value of 0.0.
Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_vec4_emit.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp index 067f1c9..2d1c878 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp @@ -117,8 +117,8 @@ vec4_visitor::setup_uniforms(int reg) for (unsigned int i = 0; i < 4; i++) { unsigned int slot = this->uniforms * 4 + i; - - c->prog_data.param[slot] = NULL; + static float zero = 0.0; + c->prog_data.param[slot] = &zero; } this->uniforms++; -- 1.7.6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev