summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2011-08-30 12:34:13 -0700
committerEric Anholt <[email protected]>2011-09-02 12:17:06 -0700
commitee41383ab31f6ef5f1d18961de78371d4f52065b (patch)
tree4b830fef0de52927bda98f6070bad2e1de5470c9 /src
parent7fdbedac14637b5e8990cb639bd4ddae28c46994 (diff)
i965/vs: Fix NULL pointer dereference in pre-Gen6 push constant loading.
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 <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_emit.cpp4
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 067f1c98af9..2d1c878706b 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++;