Mesa (master): v3d: add a helper function to flush jobs using a BO

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 18 06:10:37 UTC 2019


Module: Mesa
Branch: master
Commit: 5491883a9ad678393621082c03c2e1a24019e86c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5491883a9ad678393621082c03c2e1a24019e86c

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Fri Jun 14 12:06:25 2019 +0200

v3d: add a helper function to flush jobs using a BO

v2: use _mesa_set_search() (Eric)

Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/gallium/drivers/v3d/v3d_context.h |  1 +
 src/gallium/drivers/v3d/v3d_job.c     | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/src/gallium/drivers/v3d/v3d_context.h b/src/gallium/drivers/v3d/v3d_context.h
index 225ebe2f5ab..3ab227afb6c 100644
--- a/src/gallium/drivers/v3d/v3d_context.h
+++ b/src/gallium/drivers/v3d/v3d_context.h
@@ -583,6 +583,7 @@ struct v3d_job *v3d_get_job_for_fbo(struct v3d_context *v3d);
 void v3d_job_add_bo(struct v3d_job *job, struct v3d_bo *bo);
 void v3d_job_add_write_resource(struct v3d_job *job, struct pipe_resource *prsc);
 void v3d_job_submit(struct v3d_context *v3d, struct v3d_job *job);
+void v3d_flush_jobs_using_bo(struct v3d_context *v3d, struct v3d_bo *bo);
 void v3d_flush_jobs_writing_resource(struct v3d_context *v3d,
                                      struct pipe_resource *prsc);
 void v3d_flush_jobs_reading_resource(struct v3d_context *v3d,
diff --git a/src/gallium/drivers/v3d/v3d_job.c b/src/gallium/drivers/v3d/v3d_job.c
index 73546adfc66..487f514a055 100644
--- a/src/gallium/drivers/v3d/v3d_job.c
+++ b/src/gallium/drivers/v3d/v3d_job.c
@@ -147,6 +147,17 @@ v3d_job_add_write_resource(struct v3d_job *job, struct pipe_resource *prsc)
 }
 
 void
+v3d_flush_jobs_using_bo(struct v3d_context *v3d, struct v3d_bo *bo)
+{
+        hash_table_foreach(v3d->jobs, entry) {
+                struct v3d_job *job = entry->data;
+
+                if (_mesa_set_search(job->bos, bo))
+                        v3d_job_submit(v3d, job);
+        }
+}
+
+void
 v3d_flush_jobs_writing_resource(struct v3d_context *v3d,
                                 struct pipe_resource *prsc)
 {




More information about the mesa-commit mailing list