[Mesa-dev] [PATCH 4/5] llvmpipe: reset so buffers when not appending
Zack Rusin
zackr at vmware.com
Sat Mar 30 06:27:52 PDT 2013
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 <zackr at vmware.com>
---
src/gallium/drivers/llvmpipe/lp_state_so.c | 6 ++++++
1 file changed, 6 insertions(+)
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++) {
--
1.7.10.4
More information about the mesa-dev
mailing list