diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-12-14 13:50:46 -0500 |
---|---|---|
committer | Jerome Glisse <jglisse@redhat.com> | 2010-12-14 13:50:46 -0500 |
commit | 54773415f407678eb9728ac347cc8302e2d76c74 (patch) | |
tree | 48aea2c5306ee0c4c6d3229e552351ea394249f4 /src/gallium/drivers/r600/r600_state_common.c | |
parent | 4d1b2df6c0fd837828fdebc0bd20d9eccf1ffedf (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.c | 5 |
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; |