diff options
author | Dmitry Osipenko <dmitry.osipenko@collabora.com> | 2023-05-16 20:00:41 +0300 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-09-11 12:58:18 +0000 |
commit | 39d48de21aea89e32edd394dfa9fc8e658b774f3 (patch) | |
tree | b3e6c2b10841f57b3470ad6725f5359195ecad9a | |
parent | 725fcc9f520ca10a9aeca820d3109e33cb8af51b (diff) |
drm_fence: Support inter-context fence sharing
Use virgl_fence_set_fd() to enable sync file sharing between virgl
contexts. Now the sync file is set in global virg_fence table for the
armed drm-fence, this sync file is auto-removed from the table by
virgl_fence core code once fence is signalled.
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1138>
-rw-r--r-- | src/drm/drm_fence.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/drm/drm_fence.c b/src/drm/drm_fence.c index 90b388c..57635c1 100644 --- a/src/drm/drm_fence.c +++ b/src/drm/drm_fence.c @@ -7,6 +7,7 @@ #include <string.h> #include "virgl_context.h" +#include "virgl_fence.h" #include "virgl_util.h" #include "util/os_file.h" @@ -152,6 +153,8 @@ drm_timeline_submit_fence(struct drm_timeline *timeline, uint32_t flags, drm_dbg("fence: %p (%" PRIu64 ")", fence, fence->fence_id); + virgl_fence_set_fd(fence_id, fence->fd); + mtx_lock(&timeline->fence_mutex); list_addtail(&fence->node, &timeline->pending_fences); cnd_signal(&timeline->fence_cond); |