Module: Mesa Branch: master Commit: 246e68735fe22b4d9f510f8fb1bb8b7bb448b068 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=246e68735fe22b4d9f510f8fb1bb8b7bb448b068
Author: Zack Rusin <[email protected]> Date: Sat Mar 30 00:21:03 2013 -0700 llvmpipe: reset so buffers when not appending We need to reset the internal state of the so buffers or we'll keep appending even though we're not supposed to. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]> --- src/gallium/drivers/llvmpipe/lp_state_so.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_state_so.c b/src/gallium/drivers/llvmpipe/lp_state_so.c index 58bab39..fa58f79 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_so.c +++ b/src/gallium/drivers/llvmpipe/lp_state_so.c @@ -70,6 +70,12 @@ llvmpipe_set_so_targets(struct pipe_context *pipe, int i; for (i = 0; i < num_targets; i++) { pipe_so_target_reference((struct pipe_stream_output_target **)&llvmpipe->so_targets[i], targets[i]); + /* if we're not appending then lets reset the internal + data of our so target */ + if (!(append_bitmask & (1 << i)) && llvmpipe->so_targets[i]) { + llvmpipe->so_targets[i]->internal_offset = 0; + llvmpipe->so_targets[i]->emitted_vertices = 0; + } } for (; i < llvmpipe->num_so_targets; i++) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
