summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/vc4/vc4_job.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_job.c')
-rw-r--r--src/gallium/drivers/vc4/vc4_job.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc4/vc4_job.c b/src/gallium/drivers/vc4/vc4_job.c
index 3b0ba8b69cf..72569765847 100644
--- a/src/gallium/drivers/vc4/vc4_job.c
+++ b/src/gallium/drivers/vc4/vc4_job.c
@@ -477,9 +477,19 @@ vc4_job_submit(struct vc4_context *vc4, struct vc4_job *job)
}
submit.flags |= job->flags;
- if (vc4->screen->has_syncobj)
+ if (vc4->screen->has_syncobj) {
submit.out_sync = vc4->job_syncobj;
+ if (vc4->in_fence_fd >= 0) {
+ /* This replaces the fence in the syncobj. */
+ drmSyncobjImportSyncFile(vc4->fd, vc4->in_syncobj,
+ vc4->in_fence_fd);
+ submit.in_sync = vc4->in_syncobj;
+ close(vc4->in_fence_fd);
+ vc4->in_fence_fd = -1;
+ }
+ }
+
if (!(vc4_debug & VC4_DEBUG_NORAST)) {
int ret;