diff options
author | Rob Clark <[email protected]> | 2016-04-12 11:30:31 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-04-13 14:15:54 -0400 |
commit | 6ca6e80f61d4fc2e88f1abc2416b1965ecf1d114 (patch) | |
tree | 056784c25e6417677b623c1476ec25d7d577ee31 | |
parent | 0a4b0fc3154f4e3f926dcd5f2effe199c9fc6754 (diff) |
freedreno: fix handling for stream-out offsets
If changed && append, we shouldn't be resetting the internal offset back
to zero. This fixes issues w/ sequences like:
glBeginTransformFeedback()
glDraw()
glPauseTransformFeedback()
glDraw()
glResumeTransformFeedback()
glDraw()
glEndTransformFeedback()
Fixes dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_vec3
and related tests.
Signed-off-by: Rob Clark <[email protected]>
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_state.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c index 685d3a75659..6c472d19815 100644 --- a/src/gallium/drivers/freedreno/freedreno_state.c +++ b/src/gallium/drivers/freedreno/freedreno_state.c @@ -359,7 +359,8 @@ fd_set_stream_output_targets(struct pipe_context *pctx, if (!changed && append) continue; - so->offsets[i] = 0; + if (!append) + so->offsets[i] = offsets[i]; pipe_so_target_reference(&so->targets[i], targets[i]); } |