summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/r600_state_common.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-12-14 13:50:46 -0500
committerJerome Glisse <jglisse@redhat.com>2010-12-14 13:50:46 -0500
commit54773415f407678eb9728ac347cc8302e2d76c74 (patch)
tree48aea2c5306ee0c4c6d3229e552351ea394249f4 /src/gallium/drivers/r600/r600_state_common.c
parent4d1b2df6c0fd837828fdebc0bd20d9eccf1ffedf (diff)
r600g: fix segfault when translating vertex buffer
Note the support for non float vertex draw likely regressed need to find what we want to do there. candidates for 7.10 branches Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'src/gallium/drivers/r600/r600_state_common.c')
-rw-r--r--src/gallium/drivers/r600/r600_state_common.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 1333808c66..99b372caac 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -119,6 +119,11 @@ void r600_bind_vertex_elements(struct pipe_context *ctx, void *state)
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
struct r600_vertex_element *v = (struct r600_vertex_element*)state;
+ /* delete previous translated vertex elements */
+ if (rctx->tran.new_velems) {
+ r600_end_vertex_translate(rctx);
+ }
+
rctx->vertex_elements = v;
if (v) {
rctx->states[v->rstate.id] = &v->rstate;