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

Author: Bas Nieuwenhuizen <[email protected]>
Date:   Mon Dec 18 20:33:07 2017 +0100

radv/amdgpu: wrap sync fd import/export.

Reviewed-by: Dave Airlie <[email protected]>

---

 src/amd/vulkan/radv_radeon_winsys.h           |  5 +++++
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 21 +++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/src/amd/vulkan/radv_radeon_winsys.h 
b/src/amd/vulkan/radv_radeon_winsys.h
index e851c3edf8..45f58f063a 100644
--- a/src/amd/vulkan/radv_radeon_winsys.h
+++ b/src/amd/vulkan/radv_radeon_winsys.h
@@ -281,6 +281,11 @@ struct radeon_winsys {
        int (*export_syncobj)(struct radeon_winsys *ws, uint32_t syncobj, int 
*fd);
        int (*import_syncobj)(struct radeon_winsys *ws, int fd, uint32_t 
*syncobj);
 
+       int (*export_syncobj_to_sync_file)(struct radeon_winsys *ws, uint32_t 
syncobj, int *fd);
+
+       /* Note that this, unlike the normal import, uses an existing syncobj. 
*/
+       int (*import_syncobj_from_sync_file)(struct radeon_winsys *ws, uint32_t 
syncobj, int fd);
+
 };
 
 static inline void radeon_emit(struct radeon_winsys_cs *cs, uint32_t value)
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index e4d444b852..4578a9b548 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -1336,6 +1336,25 @@ static int radv_amdgpu_import_syncobj(struct 
radeon_winsys *_ws,
        return amdgpu_cs_import_syncobj(ws->dev, fd, syncobj);
 }
 
+
+static int radv_amdgpu_export_syncobj_to_sync_file(struct radeon_winsys *_ws,
+                                                   uint32_t syncobj,
+                                                   int *fd)
+{
+       struct radv_amdgpu_winsys *ws = radv_amdgpu_winsys(_ws);
+
+       return amdgpu_cs_syncobj_export_sync_file(ws->dev, syncobj, fd);
+}
+
+static int radv_amdgpu_import_syncobj_from_sync_file(struct radeon_winsys *_ws,
+                                                     uint32_t syncobj,
+                                                     int fd)
+{
+       struct radv_amdgpu_winsys *ws = radv_amdgpu_winsys(_ws);
+
+       return amdgpu_cs_syncobj_import_sync_file(ws->dev, syncobj, fd);
+}
+
 void radv_amdgpu_cs_init_functions(struct radv_amdgpu_winsys *ws)
 {
        ws->base.ctx_create = radv_amdgpu_ctx_create;
@@ -1361,5 +1380,7 @@ void radv_amdgpu_cs_init_functions(struct 
radv_amdgpu_winsys *ws)
        ws->base.wait_syncobj = radv_amdgpu_wait_syncobj;
        ws->base.export_syncobj = radv_amdgpu_export_syncobj;
        ws->base.import_syncobj = radv_amdgpu_import_syncobj;
+       ws->base.export_syncobj_to_sync_file = 
radv_amdgpu_export_syncobj_to_sync_file;
+       ws->base.import_syncobj_from_sync_file = 
radv_amdgpu_import_syncobj_from_sync_file;
        ws->base.fence_wait = radv_amdgpu_fence_wait;
 }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to