[Mesa-dev] [PATCH v2 2/9] panfrost: Remove job from ctx->jobs at submission time

Boris Brezillon boris.brezillon at collabora.com
Fri Aug 2 17:18:41 UTC 2019


This guarantees that new draws targetting the same framebuffer will
get a new job instance.

Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
---
Changes in v2:
* Add Alyssa's R-b
---
 src/gallium/drivers/panfrost/pan_job.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index cc81d475165e..d75af0c53308 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -198,6 +198,14 @@ panfrost_job_submit(struct panfrost_context *ctx, struct panfrost_job *job)
 	 */
         assert(!ctx->job || job == ctx->job);
         ctx->job = NULL;
+
+        /* Remove the job from the ctx->jobs set so that future
+         * panfrost_get_job() calls don't see it.
+         * We must reset the job key to avoid removing another valid entry when
+         * the job is freed.
+         */
+        _mesa_hash_table_remove_key(ctx->jobs, &job->key);
+        memset(&job->key, 0, sizeof(job->key));
 }
 
 void
-- 
2.21.0



More information about the mesa-dev mailing list