diff options
author | marha <marha@users.sourceforge.net> | 2011-02-10 07:12:27 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-02-10 07:12:27 +0000 |
commit | 183968dd18dc91f73325980bd511ed6bdb38b432 (patch) | |
tree | 44b101aea37e5ef679aca953399c20502dabdd01 /mesalib/src/mesa/state_tracker/st_draw_feedback.c | |
parent | 51a59b7f7f9b134791d3b09673063e4c45ea9eee (diff) | |
download | vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.tar.gz vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.tar.bz2 vcxsrv-183968dd18dc91f73325980bd511ed6bdb38b432.zip |
libX11 mesa git update 10 Feb 2011
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_draw_feedback.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_draw_feedback.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_draw_feedback.c b/mesalib/src/mesa/state_tracker/st_draw_feedback.c index c11c7696e..545b32d75 100644 --- a/mesalib/src/mesa/state_tracker/st_draw_feedback.c +++ b/mesalib/src/mesa/state_tracker/st_draw_feedback.c @@ -220,7 +220,7 @@ st_feedback_draw_vbo(struct gl_context *ctx, break; default: assert(0); - return; + goto out_unref_vertex; } if (bufobj && bufobj->Name) { @@ -256,15 +256,6 @@ st_feedback_draw_vbo(struct gl_context *ctx, /* * unmap vertex/index buffers */ - for (i = 0; i < PIPE_MAX_ATTRIBS; i++) { - if (draw->pt.vertex_buffer[i].buffer) { - pipe_buffer_unmap(pipe, vb_transfer[i]); - pipe_resource_reference(&draw->pt.vertex_buffer[i].buffer, NULL); - draw_set_mapped_vertex_buffer(draw, i, NULL); - pipe_resource_reference(&vbuffers[i].buffer, NULL); - } - } - if (ib) { draw_set_mapped_index_buffer(draw, NULL); draw_set_index_buffer(draw, NULL); @@ -273,6 +264,14 @@ st_feedback_draw_vbo(struct gl_context *ctx, pipe_buffer_unmap(pipe, ib_transfer); pipe_resource_reference(&ibuffer.buffer, NULL); } + + out_unref_vertex: + for (attr = 0; attr < vp->num_inputs; attr++) { + pipe_buffer_unmap(pipe, vb_transfer[attr]); + draw_set_mapped_vertex_buffer(draw, attr, NULL); + pipe_resource_reference(&vbuffers[attr].buffer, NULL); + } + draw_set_vertex_buffers(draw, 0, NULL); } #endif /* FEATURE_feedback || FEATURE_rastpos */ |