From: Boris Brezillon Date: Sat, 14 Sep 2019 15:32:02 +0000 (+0200) Subject: panfrost: Add missing panfrost_batch_add_bo() calls X-Git-Tag: upstream/19.3.0~1851 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c16fb1f48dc349b0eb54bf12aab13a113fb2f29e;p=platform%2Fupstream%2Fmesa.git panfrost: Add missing panfrost_batch_add_bo() calls Some BOs are used by batches but never explicitly added to the BO set. This is currently not a problem because we wait for the execution of a batch to be finished before releasing a BO, but we will soon relax this rule. Signed-off-by: Boris Brezillon Reviewed-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index a063c16..06a1266 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -794,11 +794,12 @@ panfrost_map_constant_buffer_gpu( { struct pipe_constant_buffer *cb = &buf->cb[index]; struct panfrost_resource *rsrc = pan_resource(cb->buffer); + struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); if (rsrc) { + panfrost_batch_add_bo(batch, rsrc->bo); return rsrc->bo->gpu; } else if (cb->user_buffer) { - struct panfrost_batch *batch = panfrost_get_batch_for_fbo(ctx); return panfrost_upload_transient(batch, cb->user_buffer, cb->buffer_size); } else { unreachable("No constant buffer"); @@ -1113,6 +1114,8 @@ panfrost_emit_for_draw(struct panfrost_context *ctx, bool with_vertex_data) struct panfrost_shader_state *ss = &all->variants[all->active_variant]; + panfrost_batch_add_bo(batch, ss->bo); + /* Uniforms are implicitly UBO #0 */ bool has_uniforms = buf->enabled_mask & (1 << 0);