Mesa (master): panfrost: signal syncobj if nothing is going to be flushed

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Aug 6 13:27:50 UTC 2020


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

Author: Icenowy Zheng <icenowy at aosc.io>
Date:   Thu Aug  6 04:48:05 2020 +0800

panfrost: signal syncobj if nothing is going to be flushed

When nothing is going to be flushed, the kernel will get no job that
signals the syncobj.

Signal it by ourselves, otherwise it will never get signaled.

Closes: #3371

Signed-off-by: Icenowy Zheng <icenowy at aosc.io>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6190>

---

 src/gallium/drivers/panfrost/pan_job.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index 3295d841602..d59aa22f049 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -1076,8 +1076,11 @@ panfrost_batch_submit(struct panfrost_batch *batch, uint32_t out_sync)
         int ret;
 
         /* Nothing to do! */
-        if (!batch->scoreboard.first_job && !batch->clear)
+        if (!batch->scoreboard.first_job && !batch->clear) {
+                if (out_sync)
+                        drmSyncobjSignal(dev->fd, &out_sync, 1);
                 goto out;
+	}
 
         panfrost_batch_draw_wallpaper(batch);
 



More information about the mesa-commit mailing list