mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-04 23:20:31 +01:00
freedreno: fix prims-emitted query
This should only count when TF is not paused. Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
a7eb12d089
commit
0a4b0fc315
3 changed files with 12 additions and 2 deletions
|
|
@ -241,6 +241,7 @@ struct fd_context {
|
|||
*/
|
||||
struct {
|
||||
uint64_t prims_emitted;
|
||||
uint64_t prims_generated;
|
||||
uint64_t draw_calls;
|
||||
uint64_t batch_total, batch_sysmem, batch_gmem, batch_restore;
|
||||
} stats;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ read_counter(struct fd_context *ctx, int type)
|
|||
{
|
||||
switch (type) {
|
||||
case PIPE_QUERY_PRIMITIVES_GENERATED:
|
||||
/* for now same thing as _PRIMITIVES_EMITTED */
|
||||
return ctx->stats.prims_generated;
|
||||
case PIPE_QUERY_PRIMITIVES_EMITTED:
|
||||
return ctx->stats.prims_emitted;
|
||||
case FD_QUERY_DRAW_CALLS:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue