summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno
diff options
context:
space:
mode:
authorHyunjun Ko <[email protected]>2018-10-17 21:57:27 +0900
committerRob Clark <[email protected]>2018-10-17 12:44:48 -0400
commit2385d7b06683e00984f05d32cd2b9e940fefd5af (patch)
tree1694859d095aecbb8ea564dcb5f6ab5a06571308 /src/gallium/drivers/freedreno
parent9e6019bd46902987c677bb19142e7cc89e43d2b9 (diff)
freedreno: adds nondraw param to fd_bc_alloc_batch
Needs to specify nondraw when creating a batch through fd_bc_alloc_batch since it'd better create a batch through it rather than fd_batch_create. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_blitter.c2
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch_cache.c6
-rw-r--r--src/gallium/drivers/freedreno/freedreno_batch_cache.h2
-rw-r--r--src/gallium/drivers/freedreno/freedreno_context.c2
4 files changed, 6 insertions, 6 deletions
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
index bd37005d50f..c962fe79970 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.c
@@ -486,7 +486,7 @@ fd6_blit(struct pipe_context *pctx, const struct pipe_blit_info *info)
return;
}
- batch = fd_bc_alloc_batch(&ctx->screen->batch_cache, ctx);
+ batch = fd_bc_alloc_batch(&ctx->screen->batch_cache, ctx, true);
fd6_emit_restore(batch, batch->draw);
fd6_emit_lrz_flush(batch->draw);
diff --git a/src/gallium/drivers/freedreno/freedreno_batch_cache.c b/src/gallium/drivers/freedreno/freedreno_batch_cache.c
index 9d046f205bc..a8b32d9bd08 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch_cache.c
+++ b/src/gallium/drivers/freedreno/freedreno_batch_cache.c
@@ -270,7 +270,7 @@ fd_bc_invalidate_resource(struct fd_resource *rsc, bool destroy)
}
struct fd_batch *
-fd_bc_alloc_batch(struct fd_batch_cache *cache, struct fd_context *ctx)
+fd_bc_alloc_batch(struct fd_batch_cache *cache, struct fd_context *ctx, bool nondraw)
{
struct fd_batch *batch;
uint32_t idx;
@@ -333,7 +333,7 @@ fd_bc_alloc_batch(struct fd_batch_cache *cache, struct fd_context *ctx)
idx--; /* bit zero returns 1 for ffs() */
- batch = fd_batch_create(ctx, false);
+ batch = fd_batch_create(ctx, nondraw);
if (!batch)
goto out;
@@ -365,7 +365,7 @@ batch_from_key(struct fd_batch_cache *cache, struct key *key,
return batch;
}
- batch = fd_bc_alloc_batch(cache, ctx);
+ batch = fd_bc_alloc_batch(cache, ctx, false);
#ifdef DEBUG
DBG("%p: hash=0x%08x, %ux%u, %u layers, %u samples", batch, hash,
key->width, key->height, key->layers, key->samples);
diff --git a/src/gallium/drivers/freedreno/freedreno_batch_cache.h b/src/gallium/drivers/freedreno/freedreno_batch_cache.h
index 348418e1876..0f2c40ba8d8 100644
--- a/src/gallium/drivers/freedreno/freedreno_batch_cache.h
+++ b/src/gallium/drivers/freedreno/freedreno_batch_cache.h
@@ -68,7 +68,7 @@ void fd_bc_flush_deferred(struct fd_batch_cache *cache, struct fd_context *ctx);
void fd_bc_invalidate_context(struct fd_context *ctx);
void fd_bc_invalidate_batch(struct fd_batch *batch, bool destroy);
void fd_bc_invalidate_resource(struct fd_resource *rsc, bool destroy);
-struct fd_batch * fd_bc_alloc_batch(struct fd_batch_cache *cache, struct fd_context *ctx);
+struct fd_batch * fd_bc_alloc_batch(struct fd_batch_cache *cache, struct fd_context *ctx, bool nondraw);
struct fd_batch * fd_batch_from_fb(struct fd_batch_cache *cache,
struct fd_context *ctx, const struct pipe_framebuffer_state *pfb);
diff --git a/src/gallium/drivers/freedreno/freedreno_context.c b/src/gallium/drivers/freedreno/freedreno_context.c
index 55e978073ab..c540d6d143c 100644
--- a/src/gallium/drivers/freedreno/freedreno_context.c
+++ b/src/gallium/drivers/freedreno/freedreno_context.c
@@ -316,7 +316,7 @@ fd_context_init(struct fd_context *ctx, struct pipe_screen *pscreen,
pctx->const_uploader = pctx->stream_uploader;
if (!ctx->screen->reorder)
- ctx->batch = fd_bc_alloc_batch(&screen->batch_cache, ctx);
+ ctx->batch = fd_bc_alloc_batch(&screen->batch_cache, ctx, false);
slab_create_child(&ctx->transfer_pool, &screen->transfer_pool);