diff options
author | Rob Clark <[email protected]> | 2016-04-11 20:53:13 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-04-13 14:15:47 -0400 |
commit | 0a4b0fc3154f4e3f926dcd5f2effe199c9fc6754 (patch) | |
tree | 8fc34f5bec4d74ee854852988bbf52499a1ee958 /src/gallium/drivers/freedreno/freedreno_draw.c | |
parent | a7eb12d089e1a7f8a311c46aa6aed5dccdeb04ec (diff) |
freedreno: fix prims-emitted query
This should only count when TF is not paused.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_draw.c')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_draw.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c index bf803cc77bc..11d9f64958b 100644 --- a/src/gallium/drivers/freedreno/freedreno_draw.c +++ b/src/gallium/drivers/freedreno/freedreno_draw.c @@ -174,7 +174,16 @@ fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info) prims = u_reduced_prims_for_vertices(info->mode, info->count); ctx->stats.draw_calls++; - ctx->stats.prims_emitted += prims; + + /* TODO prims_emitted should be clipped when the stream-out buffer is + * not large enough. See max_tf_vtx().. probably need to move that + * into common code. Although a bit more annoying since a2xx doesn't + * use ir3 so no common way to get at the pipe_stream_output_info + * which is needed for this calculation. + */ + if (ctx->streamout.num_targets > 0) + ctx->stats.prims_emitted += prims; + ctx->stats.prims_generated += prims; /* any buffers that haven't been cleared yet, we need to restore: */ ctx->restore |= buffers & (FD_BUFFER_ALL & ~ctx->cleared); |