[RFC v3 0/8] drm/atomic: add async plane update

Gustavo Padovan gustavo at padovan.org
Fri May 12 19:10:46 UTC 2017


From: Gustavo Padovan <gustavo.padovan at 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



More information about the dri-devel mailing list