diff options
author | Rob Clark <[email protected]> | 2019-07-27 09:00:37 -0700 |
---|---|---|
committer | Rob Clark <[email protected]> | 2019-08-02 10:24:14 -0700 |
commit | d8379da19ee1c2086cd39a648136a7128f402f58 (patch) | |
tree | abffe4c6c86db4a3580e2349c11ffccc003c92a8 /src/gallium/drivers/freedreno/freedreno_gmem.c | |
parent | de3e130fc9cdd894b413fa769658960a210f8b74 (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.c | 6 |
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: */ |