freedreno: fix fence creation fail if no rendering
Android tries to create a FENCE_FD fence without any rendering. And
then falls over when that fails. So just always create an initial
batch.
Fixes: e4ad8695
("freedreno: fix crash when flush() but no rendering")
Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
ab8fb5a082
commit
8fc9702a1b
|
@ -45,12 +45,6 @@ fd_context_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence,
|
||||||
{
|
{
|
||||||
struct fd_context *ctx = fd_context(pctx);
|
struct fd_context *ctx = fd_context(pctx);
|
||||||
|
|
||||||
if (!ctx->batch) {
|
|
||||||
if (fence)
|
|
||||||
*fence = NULL;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flags & PIPE_FLUSH_FENCE_FD)
|
if (flags & PIPE_FLUSH_FENCE_FD)
|
||||||
ctx->batch->needs_out_fence_fd = true;
|
ctx->batch->needs_out_fence_fd = true;
|
||||||
|
|
||||||
|
@ -283,13 +277,7 @@ fd_context_init(struct fd_context *ctx, struct pipe_screen *pscreen,
|
||||||
goto fail;
|
goto fail;
|
||||||
pctx->const_uploader = pctx->stream_uploader;
|
pctx->const_uploader = pctx->stream_uploader;
|
||||||
|
|
||||||
/* TODO what about compute? Ideally it creates it's own independent
|
ctx->batch = fd_bc_alloc_batch(&screen->batch_cache, ctx);
|
||||||
* batches per compute job (since it isn't using tiling, so no point
|
|
||||||
* in getting involved with the re-ordering madness)..
|
|
||||||
*/
|
|
||||||
if (!screen->reorder) {
|
|
||||||
ctx->batch = fd_bc_alloc_batch(&screen->batch_cache, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
slab_create_child(&ctx->transfer_pool, &screen->transfer_pool);
|
slab_create_child(&ctx->transfer_pool, &screen->transfer_pool);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue