summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_batch.c
diff options
context:
space:
mode:
authorKristian H. Kristensen <[email protected]>2018-10-19 14:29:49 -0700
committerRob Clark <[email protected]>2018-11-27 15:44:02 -0500
commit9595be67a946c673273a4c9ea6b3c189d151e5f1 (patch)
tree04e9fb15259b97090920e7d51b9e5fe1d5c623dd /src/gallium/drivers/freedreno/freedreno_batch.c
parentb5a9bb28c60781799f812ab99524b45eeb721c30 (diff)
freedreno/a6xx: Clear gmem buffers at flush time
We generate an IB to clear the gmem at flush time and jump to it before rendering each tile. This lets us get rid of the command stream patching for gmem offsets. Signed-off-by: Kristian H. Kristensen <[email protected]> Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_batch.c')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_batch.c b/src/gallium/drivers/freedreno/freedreno_batch.c
index de4c8198c20..28b4942f9f8 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch.c
@@ -76,6 +76,7 @@ batch_init(struct fd_batch *batch)
batch->fence = fd_fence_create(batch);
batch->cleared = 0;
+ batch->fast_cleared = 0;
batch->invalidated = 0;
batch->restore = batch->resolve = 0;
batch->needs_flush = false;
@@ -91,8 +92,6 @@ batch_init(struct fd_batch *batch)
if (is_a3xx(ctx->screen))
util_dynarray_init(&batch->rbrc_patches, NULL);
- util_dynarray_init(&batch->gmem_patches, NULL);
-
assert(batch->resources->entries == 0);
util_dynarray_init(&batch->samples, NULL);
@@ -167,8 +166,6 @@ batch_fini(struct fd_batch *batch)
if (is_a3xx(batch->ctx->screen))
util_dynarray_fini(&batch->rbrc_patches);
- util_dynarray_fini(&batch->gmem_patches);
-
while (batch->samples.size > 0) {
struct fd_hw_sample *samp =
util_dynarray_pop(&batch->samples, struct fd_hw_sample *);