summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_gmem.c
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2019-07-27 09:00:37 -0700
committerRob Clark <[email protected]>2019-08-02 10:24:14 -0700
commitd8379da19ee1c2086cd39a648136a7128f402f58 (patch)
treeabffe4c6c86db4a3580e2349c11ffccc003c92a8 /src/gallium/drivers/freedreno/freedreno_gmem.c
parentde3e130fc9cdd894b413fa769658960a210f8b74 (diff)
freedreno/a6xx: skip tiles with no geometry
If no clear, and no geometry according to VSC_STATE[pipe] we can skip the tile entirely. If there is a fast-clear, we can't skip restore (clear) or resolve IBs, but we can still skip draw IB. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_gmem.c')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_gmem.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.c b/src/gallium/drivers/freedreno/freedreno_gmem.c
index 2f939b34ca9..b1489f2e913 100644
--- a/src/gallium/drivers/freedreno/freedreno_gmem.c
+++ b/src/gallium/drivers/freedreno/freedreno_gmem.c
@@ -376,7 +376,11 @@ render_tiles(struct fd_batch *batch)
ctx->query_prepare_tile(batch, i, batch->gmem);
/* emit IB to drawcmds: */
- ctx->emit_ib(batch->gmem, batch->draw);
+ if (ctx->emit_tile) {
+ ctx->emit_tile(batch, tile);
+ } else {
+ ctx->emit_ib(batch->gmem, batch->draw);
+ }
fd_reset_wfi(batch);
/* emit gmem2mem to transfer tile back to system memory: */