public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/6] drm/fences: add in-fences to DRM
@ 2016-03-23 18:47 Gustavo Padovan
  2016-03-23 18:47 ` [RFC 1/6] drm/fence: add FENCE_FD property to planes Gustavo Padovan
                   ` (7 more replies)
  0 siblings, 8 replies; 37+ messages in thread
From: Gustavo Padovan @ 2016-03-23 18:47 UTC (permalink / raw)
  To: dri-devel
  Cc: linux-kernel, Daniel Stone, Arve Hjønnevåg,
	Riley Andrews, Daniel Vetter, Rob Clark, Greg Hackmann,
	John Harrison, Maarten Lankhorst, Gustavo Padovan

From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

Hi,

This is a first proposal to discuss the addition of in-fences support
to DRM. It adds a new struct to fence.c to abstract the use of sync_file
in DRM drivers. The new struct fence_collection contains a array with all
fences that a atomic commit needs to wait on

/**
 * struct fence_collection - aggregate fences together
 * @num_fences: number of fence in the collection.
 * @user_data: user data.
 * @func: user callback to put user data.
 * @fences: array of @num_fences fences.
 */
struct fence_collection {
       int num_fences;
       void *user_data;
       collection_put_func_t func;
       struct fence *fences[];
};


The fence_collection is allocated and filled by sync_file_fences_get() and
atomic_commit helpers can use fence_collection_wait() to wait the fences to
signal.

These patches depends on the sync ABI rework:

https://www.spinics.net/lists/dri-devel/msg102795.html

and the patch to de-stage the sync framework:

https://www.spinics.net/lists/dri-devel/msg102799.html


I also hacked together some sync support into modetest for testing:

https://git.collabora.com/cgit/user/padovan/libdrm.git/log/?h=atomic


	Gustavo


Gustavo Padovan (6):
  drm/fence: add FENCE_FD property to planes
  dma-buf/fence: add struct fence_collection
  dma-buf/sync_file: add sync_file_fences_get()
  dma-buf/fence: add fence_collection_put()
  dma-buf/fence: add fence_collection_wait()
  drm/fence: support fence_collection on atomic commit

 drivers/dma-buf/fence.c             | 33 +++++++++++++++++++++++++++++++++
 drivers/dma-buf/sync_file.c         | 36 ++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_atomic.c        | 13 +++++++++++++
 drivers/gpu/drm/drm_atomic_helper.c | 10 ++++++----
 drivers/gpu/drm/drm_crtc.c          |  7 +++++++
 include/drm/drm_crtc.h              |  5 ++++-
 include/linux/fence.h               | 19 +++++++++++++++++++
 include/linux/sync_file.h           |  8 ++++++++
 8 files changed, 126 insertions(+), 5 deletions(-)

-- 
2.5.0

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2016-04-05 15:23 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-23 18:47 [RFC 0/6] drm/fences: add in-fences to DRM Gustavo Padovan
2016-03-23 18:47 ` [RFC 1/6] drm/fence: add FENCE_FD property to planes Gustavo Padovan
2016-04-05 12:36   ` Rob Clark
2016-04-05 12:57     ` Daniel Stone
2016-04-05 14:04       ` Rob Clark
2016-04-05 14:19         ` Daniel Stone
2016-04-05 15:23           ` Rob Clark
2016-03-23 18:47 ` [RFC 2/6] dma-buf/fence: add struct fence_collection Gustavo Padovan
2016-03-23 18:47 ` [RFC 3/6] dma-buf/sync_file: add sync_file_fences_get() Gustavo Padovan
2016-03-23 18:47 ` [RFC 4/6] dma-buf/fence: add fence_collection_put() Gustavo Padovan
2016-03-23 18:47 ` [RFC 5/6] dma-buf/fence: add fence_collection_wait() Gustavo Padovan
2016-03-23 18:47 ` [RFC 6/6] drm/fence: support fence_collection on atomic commit Gustavo Padovan
2016-03-24  7:20 ` [RFC 0/6] drm/fences: add in-fences to DRM Maarten Lankhorst
2016-03-24 14:31   ` Gustavo Padovan
2016-03-24  8:18 ` Inki Dae
2016-03-24 14:39   ` Gustavo Padovan
2016-03-24 23:03     ` Inki Dae
2016-03-24 15:40   ` Rob Clark
2016-03-24 23:49     ` Inki Dae
2016-03-25 11:58       ` Rob Clark
2016-03-25 12:10         ` Daniel Stone
2016-03-28  1:26           ` Inki Dae
2016-03-28 13:26             ` Daniel Stone
2016-03-29  2:18               ` Inki Dae
2016-03-29 13:23                 ` Rob Clark
2016-03-31  7:45                   ` Inki Dae
2016-03-31  9:35                     ` Daniel Stone
2016-03-31 10:04                       ` Daniel Vetter
2016-03-31 11:40                         ` Inki Dae
2016-03-31 10:05                       ` Inki Dae
2016-03-31 10:56                         ` Daniel Stone
2016-03-31 11:26                           ` Inki Dae
2016-03-31 11:41                             ` Daniel Stone
2016-03-31 14:10                             ` Rob Clark
2016-04-04  0:14                               ` Inki Dae
2016-04-04 15:41                                 ` Rob Clark
2016-04-04 15:46                                   ` Rob Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox