summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/freedreno_draw.c
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2017-11-24 10:37:22 -0500
committerRob Clark <[email protected]>2017-12-17 12:41:32 -0500
commitb852c3bf67cf1a047b8d17391506b19b5d1bdb70 (patch)
tree5ad211f396896f763f521ac20c220acc88bab0cb /src/gallium/drivers/freedreno/freedreno_draw.c
parent2697480c923e4c811d9b9f11169de6be55ae38da (diff)
freedreno: add non-draw batches for compute/blit
Get rid of "gmem" (ie. tiling) ringbuffer, and just emit setup commands directly to "draw" ringbuffer for compute (and in future for blits not using the 3d pipe). This way we can have a simple flat cmdstream buffer and bypass setup related to 3d pipe. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_draw.c')
-rw-r--r--src/gallium/drivers/freedreno/freedreno_draw.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_draw.c b/src/gallium/drivers/freedreno/freedreno_draw.c
index d3bf3165276..933481e742d 100644
--- a/src/gallium/drivers/freedreno/freedreno_draw.c
+++ b/src/gallium/drivers/freedreno/freedreno_draw.c
@@ -459,7 +459,7 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
struct fd_batch *batch, *save_batch = NULL;
unsigned i;
- batch = fd_batch_create(ctx);
+ batch = fd_batch_create(ctx, true);
fd_batch_reference(&save_batch, ctx->batch);
fd_batch_reference(&ctx->batch, batch);
@@ -493,9 +493,10 @@ fd_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
mtx_unlock(&ctx->screen->lock);
+ batch->needs_flush = true;
ctx->launch_grid(ctx, info);
- fd_gmem_flush_compute(batch);
+ fd_batch_flush(batch, false, false);
fd_batch_reference(&ctx->batch, save_batch);
fd_batch_reference(&save_batch, NULL);