freedreno: Don't count SW TF queries on a6xx.

On a6xx, since we have GS and tess, we do this counting in hardware.  The
next fix is going to use some functions that don't work with GS prims.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9687>
This commit is contained in:
Eric Anholt
2021-03-17 21:15:57 -07:00
committed by Marge Bot
parent 2e002675db
commit 538e5059d0

View File

@@ -230,6 +230,9 @@ update_draw_stats(struct fd_context *ctx, const struct pipe_draw_info *info,
const struct pipe_draw_start_count *draws, unsigned num_draws)
assert_dt
{
ctx->stats.draw_calls++;
if (ctx->screen->gpu_id < 600) {
/* Counting prims in sw doesn't work for GS and tesselation. For older
* gens we don't have those stages and don't have the hw counters enabled,
* so keep the count accurate for non-patch geometry.
@@ -242,8 +245,6 @@ update_draw_stats(struct fd_context *ctx, const struct pipe_draw_info *info,
}
}
ctx->stats.draw_calls++;
/* 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
@@ -256,6 +257,7 @@ update_draw_stats(struct fd_context *ctx, const struct pipe_draw_info *info,
}
ctx->stats.prims_generated += prims;
}
}
static void
fd_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info,