Re: [Mesa-dev] [PATCH v2 04/37] panfrost: Add polygon_list to the batch BO set at allocation time
Reviewed-by: Alyssa Rosenzweig > That's what we do for other per-batch BOs, and we'll soon add an helper > to automate this create_bo()+add_bo()+bo_unreference() sequence, so > let's prepare the code to ease this transition. > > Signed-off-by: Boris Brezillon > --- > src/gallium/drivers/panfrost/pan_drm.c | 1 - > src/gallium/drivers/panfrost/pan_job.c | 10 +++--- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/panfrost/pan_drm.c > b/src/gallium/drivers/panfrost/pan_drm.c > index ada6221850c0..b77af714d117 100644 > --- a/src/gallium/drivers/panfrost/pan_drm.c > +++ b/src/gallium/drivers/panfrost/pan_drm.c > @@ -278,7 +278,6 @@ panfrost_drm_submit_vs_fs_batch(struct panfrost_batch > *batch, bool has_draws) > > panfrost_batch_add_bo(batch, ctx->scratchpad); > panfrost_batch_add_bo(batch, ctx->tiler_heap); > -panfrost_batch_add_bo(batch, batch->polygon_list); > > if (batch->first_job.gpu) { > ret = panfrost_drm_submit_batch(batch, batch->first_job.gpu, > 0); > diff --git a/src/gallium/drivers/panfrost/pan_job.c > b/src/gallium/drivers/panfrost/pan_job.c > index 03119e643846..e06440010aeb 100644 > --- a/src/gallium/drivers/panfrost/pan_job.c > +++ b/src/gallium/drivers/panfrost/pan_job.c > @@ -67,9 +67,6 @@ panfrost_free_batch(struct panfrost_batch *batch) > panfrost_bo_unreference(ctx->base.screen, bo); > } > > -/* Unreference the polygon list */ > -panfrost_bo_unreference(ctx->base.screen, batch->polygon_list); > - > _mesa_hash_table_remove_key(ctx->batches, >key); > > if (ctx->batch == batch) > @@ -158,6 +155,13 @@ panfrost_batch_get_polygon_list(struct panfrost_batch > *batch, unsigned size) > > batch->polygon_list = panfrost_drm_create_bo(screen, > size, PAN_ALLOCATE_INVISIBLE); > +panfrost_batch_add_bo(batch, batch->polygon_list); > + > +/* A BO reference has been retained by > panfrost_batch_add_bo(), > + * so we need to unreference it here if we want the BO to be > + * automatically released when the batch is destroyed. > + */ > +panfrost_bo_unreference(>base, batch->polygon_list); > } > > return batch->polygon_list->gpu; > -- > 2.21.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH v2 04/37] panfrost: Add polygon_list to the batch BO set at allocation time
That's what we do for other per-batch BOs, and we'll soon add an helper to automate this create_bo()+add_bo()+bo_unreference() sequence, so let's prepare the code to ease this transition. Signed-off-by: Boris Brezillon --- src/gallium/drivers/panfrost/pan_drm.c | 1 - src/gallium/drivers/panfrost/pan_job.c | 10 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_drm.c b/src/gallium/drivers/panfrost/pan_drm.c index ada6221850c0..b77af714d117 100644 --- a/src/gallium/drivers/panfrost/pan_drm.c +++ b/src/gallium/drivers/panfrost/pan_drm.c @@ -278,7 +278,6 @@ panfrost_drm_submit_vs_fs_batch(struct panfrost_batch *batch, bool has_draws) panfrost_batch_add_bo(batch, ctx->scratchpad); panfrost_batch_add_bo(batch, ctx->tiler_heap); -panfrost_batch_add_bo(batch, batch->polygon_list); if (batch->first_job.gpu) { ret = panfrost_drm_submit_batch(batch, batch->first_job.gpu, 0); diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index 03119e643846..e06440010aeb 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -67,9 +67,6 @@ panfrost_free_batch(struct panfrost_batch *batch) panfrost_bo_unreference(ctx->base.screen, bo); } -/* Unreference the polygon list */ -panfrost_bo_unreference(ctx->base.screen, batch->polygon_list); - _mesa_hash_table_remove_key(ctx->batches, >key); if (ctx->batch == batch) @@ -158,6 +155,13 @@ panfrost_batch_get_polygon_list(struct panfrost_batch *batch, unsigned size) batch->polygon_list = panfrost_drm_create_bo(screen, size, PAN_ALLOCATE_INVISIBLE); +panfrost_batch_add_bo(batch, batch->polygon_list); + +/* A BO reference has been retained by panfrost_batch_add_bo(), + * so we need to unreference it here if we want the BO to be + * automatically released when the batch is destroyed. + */ +panfrost_bo_unreference(>base, batch->polygon_list); } return batch->polygon_list->gpu; -- 2.21.0 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev