summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2011-10-10 17:49:27 -0600
committerBrian Paul <brianp@vmware.com>2011-10-11 07:41:36 -0600
commit11938c87a3e5a5b0a16b22f1913567a64015a92d (patch)
tree034c95316e6d3aec7aa7475fc02fdf1ef8afe743 /src
parente6c237cfd6f53ff569f68255d5d6da15148cd0f5 (diff)
downloadexternal_mesa3d-11938c87a3e5a5b0a16b22f1913567a64015a92d.zip
external_mesa3d-11938c87a3e5a5b0a16b22f1913567a64015a92d.tar.gz
external_mesa3d-11938c87a3e5a5b0a16b22f1913567a64015a92d.tar.bz2
draw/llvm: set draw->pt.user.planes field in draw_set_clip_state()
Previously it was getting set in draw_set_mapped_constant_buffer() but if there were no shader constants, that function wasn't called. So the pt.user.planes field was null and we died when we tried to access the clip planes in the LLVM-generated code. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=41663 Note: This is a candidate for the 7.11 branch. Reviewed-by: José Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/draw/draw_context.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c
index e1b9a15..a444793 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -292,6 +292,8 @@ void draw_set_clip_state( struct draw_context *draw,
draw->nr_planes = 6 + clip->nr;
draw->depth_clamp = clip->depth_clamp;
+ draw->pt.user.planes = (float (*) [DRAW_TOTAL_CLIP_PLANES][4]) &(draw->plane[0]);
+
update_clip_flags(draw);
}
@@ -369,7 +371,6 @@ draw_set_mapped_constant_buffer(struct draw_context *draw,
case PIPE_SHADER_VERTEX:
draw->pt.user.vs_constants[slot] = buffer;
draw->pt.user.vs_constants_size[slot] = size;
- draw->pt.user.planes = (float (*) [DRAW_TOTAL_CLIP_PLANES][4]) &(draw->plane[0]);
draw_vs_set_constants(draw, slot, buffer, size);
break;
case PIPE_SHADER_GEOMETRY: