All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v3 0/8] drm/atomic: add async plane update
@ 2017-05-12 19:10 Gustavo Padovan
  2017-05-12 19:10 ` [RFC v3 1/8] drm/atomic: initial support for asynchronous " Gustavo Padovan
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Gustavo Padovan @ 2017-05-12 19:10 UTC (permalink / raw)
  To: dri-devel; +Cc: Gustavo Padovan

From: Gustavo Padovan <gustavo.padovan@collabora.com>

Hi,

One more take of Asynchronous Plane Updates over Atomic. Here I looked
to msm, vc4 and i915 to identify a common pattern to create atomic helpers
for async updates. So in patch 1 drm_atomic_async_check() and
drm_atomic_helper_async_commit() are introduced along with driver's plane hooks:
->atomic_async_check() and ->atomic_async_commit().

For now we only support async update for one plane at a time. Also the async
update can't modify the CRTC so no modesets are allowed.

Then the other patches add support for it in the drivers. I did virtio mostly
for testing. msm and vc4 are only compile-tested.

I started IGT changes to test the Atomic IOCTL with the new flag:

https://git.collabora.com/cgit/user/padovan/intel-gpu-tools.git/

Support for async page flips and drm core workers to delay plane/fb clean up
are not plane for this patchset.

TODO

* improve i-g-t tests where needed


Gustavo Padovan (8):
  drm/atomic: initial support for asynchronous plane update
  drm/virtio: support async cursor updates
  drm/i915: update cursors asynchronously through atomic
  drm/i915: remove intel_cursor_plane_funcs
  drm/msm: update cursors asynchronously through atomic
  drm/msm: remove mdp5_cursor_plane_funcs
  drm/vc4: update cursors asynchronously through atomic
  drm/atomic: add ASYNC_UPDATE flag to the Atomic IOCTL

 drivers/gpu/drm/drm_atomic.c              |  71 +++++++++++++
 drivers/gpu/drm/drm_atomic_helper.c       |  48 +++++++++
 drivers/gpu/drm/i915/intel_atomic_plane.c |  67 ++++++++++++
 drivers/gpu/drm/i915/intel_display.c      | 160 +++++-----------------------
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 170 +++++++++++-------------------
 drivers/gpu/drm/vc4/vc4_plane.c           |  96 ++++++-----------
 drivers/gpu/drm/virtio/virtgpu_plane.c    |  48 +++++++++
 include/drm/drm_atomic.h                  |   2 +
 include/drm/drm_atomic_helper.h           |   2 +
 include/drm/drm_modeset_helper_vtables.h  |  48 +++++++++
 include/uapi/drm/drm_mode.h               |   4 +-
 11 files changed, 404 insertions(+), 312 deletions(-)

-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2017-05-19  5:54 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-12 19:10 [RFC v3 0/8] drm/atomic: add async plane update Gustavo Padovan
2017-05-12 19:10 ` [RFC v3 1/8] drm/atomic: initial support for asynchronous " Gustavo Padovan
2017-05-12 19:10 ` [RFC v3 2/8] drm/virtio: support async cursor updates Gustavo Padovan
2017-05-12 19:10 ` [RFC v3 3/8] drm/i915: update cursors asynchronously through atomic Gustavo Padovan
2017-05-12 19:10 ` [RFC v3 4/8] drm/i915: remove intel_cursor_plane_funcs Gustavo Padovan
2017-05-12 19:10 ` [RFC v3 5/8] drm/msm: update cursors asynchronously through atomic Gustavo Padovan
2017-05-16 14:44   ` Archit Taneja
2017-05-17  5:26     ` Archit Taneja
2017-05-17 11:35       ` Daniel Vetter
2017-05-19  5:54         ` Archit Taneja
2017-05-12 19:10 ` [RFC v3 6/8] drm/msm: remove mdp5_cursor_plane_funcs Gustavo Padovan
2017-05-16 14:46   ` Archit Taneja
2017-05-12 19:10 ` [RFC v3 7/8] drm/vc4: update cursors asynchronously through atomic Gustavo Padovan
2017-05-18 22:54   ` Robert Foss
2017-05-12 19:10 ` [RFC v3 8/8] drm/atomic: add ASYNC_UPDATE flag to the Atomic IOCTL Gustavo Padovan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.