winsys/svga/drm: Prepare to support fence fd
authorSinclair Yeh <syeh@vmware.com>
Mon, 15 May 2017 22:25:31 +0000 (15:25 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 17 Jul 2017 16:09:25 +0000 (10:09 -0600)
Make the fields and flags available.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/winsys/svga/drm/vmwgfx_drm.h

index 807ec901ad58d2b0f69eeda523f229c984dc9d6f..13d779494fb3578177a9b6f51bbc78854291a7a8 100644 (file)
@@ -294,13 +294,17 @@ union drm_vmw_surface_reference_arg {
  * @version: Allows expanding the execbuf ioctl parameters without breaking
  * backwards compatibility, since user-space will always tell the kernel
  * which version it uses.
- * @flags: Execbuf flags. None currently.
+ * @flags: Execbuf flags.
+ * @imported_fence_fd:  FD for a fence imported from another device
  *
  * Argument to the DRM_VMW_EXECBUF Ioctl.
  */
 
 #define DRM_VMW_EXECBUF_VERSION 2
 
+#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
+#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
+
 struct drm_vmw_execbuf_arg {
        uint64_t commands;
        uint32_t command_size;
@@ -309,7 +313,7 @@ struct drm_vmw_execbuf_arg {
        uint32_t version;
        uint32_t flags;
        uint32_t context_handle;
-       uint32_t pad64;
+       int32_t imported_fence_fd;
 };
 
 /**
@@ -325,6 +329,7 @@ struct drm_vmw_execbuf_arg {
  * @passed_seqno: The highest seqno number processed by the hardware
  * so far. This can be used to mark user-space fence objects as signaled, and
  * to determine whether a fence seqno might be stale.
+ * @fd: FD associated with the fence, -1 if not exported
  * @error: This member should've been set to -EFAULT on submission.
  * The following actions should be take on completion:
  * error == -EFAULT: Fence communication failed. The host is synchronized.
@@ -342,7 +347,7 @@ struct drm_vmw_fence_rep {
        uint32_t mask;
        uint32_t seqno;
        uint32_t passed_seqno;
-       uint32_t pad64;
+       int32_t fd;
        int32_t error;
 };