On Wed, May 24, 2017 at 05:06:11PM +1000, Dave Airlie wrote:
> From: Dave Airlie <airl...@redhat.com>
> 
> Sync objects are new toplevel drm object, that contain a
> pointer to a fence. This fence can be updated via command
> submission ioctls via drivers.
> 
> There is also a generic wait obj API modelled on the vulkan
> wait API (with code modelled on some amdgpu code).
> 
> These objects can be converted to an opaque fd that can be
> passes between processes.
> 
> v2: rename reference/unreference to put/get (Chris)
> fix leaked reference (David Zhou)
> drop mutex in favour of cmpxchg (Chris)
> v3: cleanups from danvet, rebase on drm_fops rename
> check fd_flags is 0 in ioctls.
> 
> Reviewed-by: Sean Paul <seanp...@chromium.org>
> Signed-off-by: Dave Airlie <airl...@redhat.com>
> ---
> diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
> index 42d9f64..96c5c78 100644
> --- a/include/uapi/drm/drm.h
> +++ b/include/uapi/drm/drm.h
> @@ -648,6 +648,7 @@ struct drm_gem_open {
>  #define DRM_CAP_ADDFB2_MODIFIERS     0x10
>  #define DRM_CAP_PAGE_FLIP_TARGET     0x11
>  #define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
> +#define DRM_CAP_SYNCOBJ              0x13
>  
>  /** DRM_IOCTL_GET_CAP ioctl argument type */
>  struct drm_get_cap {
> @@ -697,6 +698,24 @@ struct drm_prime_handle {
>       __s32 fd;
>  };
>  
> +struct drm_syncobj_create {
> +     __u32 handle;
> +     __u32 flags;
> +};
> +
> +struct drm_syncobj_destroy {
> +     __u32 handle;
> +     __u32 pad;
> +};
> +
> +struct drm_syncobj_handle {
> +     __u32 handle;
> +     __u32 flags;
> +
> +     __s32 fd;
> +     __u32 pad;
> +};
> +
>  #if defined(__cplusplus)
>  }
>  #endif
> @@ -815,6 +834,11 @@ extern "C" {
>  #define DRM_IOCTL_MODE_CREATEPROPBLOB        DRM_IOWR(0xBD, struct 
> drm_mode_create_blob)
>  #define DRM_IOCTL_MODE_DESTROYPROPBLOB       DRM_IOWR(0xBE, struct 
> drm_mode_destroy_blob)
>  
> +#define DRM_IOCTL_SYNCOBJ_CREATE     DRM_IOWR(0xBF, struct 
> drm_syncobj_create)
> +#define DRM_IOCTL_SYNCOBJ_DESTROY    DRM_IOWR(0xC0, struct 
> drm_syncobj_destroy)

These two only need DRM_IOW.

> +#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD       DRM_IOWR(0xC1, struct 
> drm_syncobj_handle)
> +#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE       DRM_IOWR(0xC2, struct 
> drm_syncobj_handle)

With that,
Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to