[Mesa-dev] [PATCH v2 03/37] panfrost: Add missing panfrost_batch_add_bo() calls
Alyssa Rosenzweig
alyssa at rosenzweig.io
Mon Sep 16 12:17:46 UTC 2019
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
On Mon, Sep 16, 2019 at 11:36:41AM +0200, Boris Brezillon wrote:
> 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 <boris.brezillon at collabora.com>
> ---
> src/gallium/drivers/panfrost/pan_context.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
> index a063c16ab019..06a12662dd36 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);
>
> --
> 2.21.0
More information about the mesa-dev
mailing list