]> git.baikalelectronics.ru Git - kernel.git/commit
drm: introduce sync objects (v4)
authorDave Airlie <airlied@redhat.com>
Tue, 4 Apr 2017 03:26:24 +0000 (13:26 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 14 Jun 2017 02:10:22 +0000 (12:10 +1000)
commit3e17945322d35c95231e7a8171b9f3193ba1bde7
treea539c575bae132fa2cc992ee53da4c04909e7fe1
parent63577b8190e52c819b41214e12e4c525fe1045de
drm: introduce sync objects (v4)

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.
v4: export find/free, change replace fence to take a
syncobj. In order to support lookup first, replace
later semantics which seem in the end to be cleaner.

Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Documentation/gpu/drm-internals.rst
Documentation/gpu/drm-mm.rst
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_file.c
drivers/gpu/drm/drm_internal.h
drivers/gpu/drm/drm_ioctl.c
drivers/gpu/drm/drm_syncobj.c [new file with mode: 0644]
include/drm/drm_drv.h
include/drm/drm_file.h
include/drm/drm_syncobj.h [new file with mode: 0644]
include/uapi/drm/drm.h