Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v3 0/7] Async Flip in Atomic ioctl corrections
@ 2026-01-08  9:43 Arun R Murthy
  2026-01-08  9:43 ` [PATCH [RFC] v3 1/7] drm/atomic/plane: Add plane property for async flip Arun R Murthy
                   ` (10 more replies)
  0 siblings, 11 replies; 31+ messages in thread
From: Arun R Murthy @ 2026-01-08  9:43 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	Simona Vetter, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
	Tvrtko Ursulin, xaver.hugl, andrealmeid, naveen1.kumar,
	ville.syrjala, Dmitry Baryshkov
  Cc: dri-devel, intel-gfx, intel-xe, Arun R Murthy

struct drm_crtc_state {
         /**
          * @async_flip:
          *
          * This is set when DRM_MODE_PAGE_FLIP_ASYNC is set in the legacy
          * PAGE_FLIP IOCTL. It's not wired up for the atomic IOCTL
itself yet.
          */
         bool async_flip;

In the existing code the flag async_flip was intended for the legacy
PAGE_FLIP IOCTL. But the same is being used for atomic IOCTL.
As per the hardware feature is concerned, async flip is a plane feature
and is to be treated per plane basis and not per pipe basis.
For a given hardware pipe, among the multiple hardware planes, one can
go with sync flip and other 2/3 can go with async flip.
Tearing affect will be noticed with this and if any policy should be
taken care by the user space. KMD not to include any policy
as to allow async on only one plane for a given pipe as all policy done
in user and KMD exposes what is supported by the hardware.

There would be a bunch of changes to correct this in the atomic path.
Add a new async_flip plane property to allow user enable async flip on
the required plane.
Any restriction checks for async_flip will be taken in atomic_check()
and not in the atomic_ioctl().
Let the preset code reside as is even in the atomic patch until all the
existing drivers and user space implementations move to plane property
for async flips.
Changes include removal of the checks we have in atomic path so as to
reject any changes(different plane, pipe, connector) along with async
flip. This would be replaced with checks so as to reject any change in
that particular plane where async is enabled(reject any change in
pipe/connector as that would have impact on this plane)

With the above changes, the challenge that we have presently so as to
enable async flip on overlays which is handled seperately with if
condition in drm_atomic_uapi.c can be moved to driver specific
atomic_check code.

This series depicts the changes in the drm core and upon getting
feedback on this, driver specific changes for theis will be done in the
next revision on the same series.

Please let us know your opinion on this.

Note: The series is partially tested with the IGT so as to ensure the
existing implementation is not broken. Full feature testing is pending,
just opening the series as RFC so as to get comments so that I can
incorporate them.

Thanks and Regards,
Arun R Murthy
-------------

Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com>
---
Arun R Murthy (7):
      drm/atomic/plane: Add plane property for async flip
      drm/atomic/plane: create async flip property for plane
      drm/atomic: Re-route the async flip based on the flag
      drm/atomic: Move the plane property check for async flip to atomic_check
      drm/atomic: Allow planes with NULL fb along with async flip
      drm/atomic: flip_done signal for planes
      drm/i915/irq: Enable flip_done for each plane on async flip

 drivers/gpu/drm/drm_atomic.c                       | 122 ++++++++++++++++++++-
 drivers/gpu/drm/drm_atomic_helper.c                |   2 +
 drivers/gpu/drm/drm_atomic_uapi.c                  |  74 +++----------
 drivers/gpu/drm/drm_plane.c                        |  33 ++++++
 drivers/gpu/drm/i915/display/intel_display_irq.c   |  98 ++++++++++++++---
 drivers/gpu/drm/i915/display/skl_universal_plane.c |   2 +-
 include/drm/drm_plane.h                            |  19 ++++
 7 files changed, 277 insertions(+), 73 deletions(-)
---
base-commit: b3845fe8af5ec5c1d4b26e40ac6b4c7370e5fa35
change-id: 20251010-async-feb09912440b

Best regards,
-- 
Arun R Murthy <arun.r.murthy@intel.com>


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

end of thread, other threads:[~2026-02-11 13:59 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-08  9:43 [PATCH RFC v3 0/7] Async Flip in Atomic ioctl corrections Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 1/7] drm/atomic/plane: Add plane property for async flip Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 2/7] drm/atomic/plane: create async flip property for plane Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 3/7] drm/atomic: Re-route the async flip based on the flag Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 4/7] drm/atomic: Move the plane property check for async flip to atomic_check Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 5/7] drm/atomic: Allow planes with NULL fb along with async flip Arun R Murthy
2026-01-09  9:43   ` Michel Dänzer
2026-01-09 11:08     ` Murthy, Arun R
2026-01-09 11:23       ` Michel Dänzer
2026-01-12  8:26         ` Murthy, Arun R
2026-01-12 11:24           ` Michel Dänzer
2026-01-12 15:20             ` Murthy, Arun R
2026-01-12 15:25               ` Michel Dänzer
2026-01-12 16:03               ` Xaver Hugl
2026-01-13  2:47                 ` Murthy, Arun R
2026-01-08  9:43 ` [PATCH [RFC] v3 6/7] drm/atomic: flip_done signal for planes Arun R Murthy
2026-01-08  9:43 ` [PATCH [RFC] v3 7/7] drm/i915/irq: Enable flip_done for each plane on async flip Arun R Murthy
2026-01-08  9:53 ` ✓ CI.KUnit: success for " Patchwork
2026-01-08 10:35 ` ✓ Xe.CI.BAT: " Patchwork
2026-01-08 13:09 ` ✓ Xe.CI.Full: " Patchwork
2026-01-09  9:43 ` [PATCH RFC v3 0/7] Async Flip in Atomic ioctl corrections Michel Dänzer
2026-01-09 11:07   ` Murthy, Arun R
2026-01-09 11:22     ` Michel Dänzer
2026-01-12  8:23       ` Murthy, Arun R
2026-01-12 11:34         ` Michel Dänzer
2026-01-12 15:35           ` Murthy, Arun R
2026-02-11  5:48           ` Murthy, Arun R
2026-02-11  8:57             ` Michel Dänzer
2026-02-11 13:38               ` Murthy, Arun R
2026-02-11 13:51                 ` Michel Dänzer
2026-02-11 13:58                   ` Murthy, Arun R

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