[Mesa-dev] [PATCH 1/3] i965/vs: Fix NULL pointer dereference in pre-Gen6 push constant loading.
Kenneth Graunke
kenneth at whitecape.org
Tue Aug 30 12:34:13 PDT 2011
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 <kenneth at 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
More information about the mesa-dev
mailing list