summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/pan_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_context.c')
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index e023144b9c8..8177f8917f3 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -1640,6 +1640,7 @@ panfrost_draw_vbo(
/* Take into account a negative bias */
ctx->vertex_count = info->count + abs(info->index_bias);
ctx->instance_count = info->instance_count;
+ ctx->active_prim = info->mode;
/* For non-indexed draws, they're the same */
unsigned vertex_count = ctx->vertex_count;
@@ -1754,6 +1755,15 @@ panfrost_draw_vbo(
/* Fire off the draw itself */
panfrost_queue_draw(ctx);
+
+ /* Increment transform feedback offsets */
+
+ for (unsigned i = 0; i < ctx->streamout.num_targets; ++i) {
+ unsigned output_count = u_stream_outputs_for_vertices(
+ ctx->active_prim, ctx->vertex_count);
+
+ ctx->streamout.offsets[i] += output_count;
+ }
}
/* CSO state */