diff options
author | Rob Clark <[email protected]> | 2017-11-24 10:37:22 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-12-17 12:41:32 -0500 |
commit | b852c3bf67cf1a047b8d17391506b19b5d1bdb70 (patch) | |
tree | 5ad211f396896f763f521ac20c220acc88bab0cb /src/gallium/drivers/freedreno/freedreno_draw.c | |
parent | 2697480c923e4c811d9b9f11169de6be55ae38da (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.c | 5 |
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); |