summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIcenowy Zheng <icenowy@aosc.io>2020-08-06 04:48:05 +0800
committerEric Engestrom <eric@engestrom.ch>2020-08-19 22:28:28 +0200
commit6320e4672fd99d1df470214ba9a1e965a3f15f98 (patch)
treee32bc0f7549cd6abba9b61208153bbf4761e86fd /src
parente99e81ecea821b5daf83fa5a356237e2c66a0689 (diff)
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@aosc.io> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6190> (cherry picked from commit 9e397956b092543f5fc89ccc43dc309818c150c6)
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/panfrost/pan_job.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index 154ed833927..27745c742ee 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -984,6 +984,7 @@ static void
panfrost_batch_submit(struct panfrost_batch *batch)
{
assert(batch);
+ struct panfrost_device *dev = pan_device(batch->ctx->base.screen);
/* Submit the dependencies first. */
util_dynarray_foreach(&batch->dependencies,
@@ -996,6 +997,9 @@ panfrost_batch_submit(struct panfrost_batch *batch)
/* Nothing to do! */
if (!batch->first_job && !batch->clear) {
+ if (batch->out_sync->syncobj)
+ drmSyncobjSignal(dev->fd, &batch->out_sync->syncobj, 1);
+
/* Mark the fence as signaled so the fence logic does not try
* to wait on it.
*/