Re: [Mesa-dev] [PATCH v2 04/37] panfrost: Add polygon_list to the batch BO set at allocation time

2019-09-16 Thread Alyssa Rosenzweig
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

2019-09-16 Thread Boris Brezillon
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