From: "Murthy, Arun R" <arun.r.murthy@intel.com>
To: "Michel Dänzer" <michel.daenzer@mailbox.org>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"xaver.hugl@kde.org" <xaver.hugl@kde.org>,
"andrealmeid@igalia.com" <andrealmeid@igalia.com>,
"Kumar, Naveen1" <naveen1.kumar@intel.com>,
"Syrjala, Ville" <ville.syrjala@intel.com>,
"Dmitry Baryshkov" <lumag@kernel.org>
Cc: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH RFC v3 0/7] Async Flip in Atomic ioctl corrections
Date: Wed, 11 Feb 2026 19:08:47 +0530 [thread overview]
Message-ID: <bebe5a45-85b0-4124-bc8b-c94527d00663@intel.com> (raw)
In-Reply-To: <7c83329b-a730-4e3f-b6d1-c41db4df3bd9@mailbox.org>
On 11-02-2026 14:27, Michel Dänzer wrote:
> On 2/11/26 06:48, Murthy, Arun R wrote:
>>> On 1/12/26 09:23, Murthy, Arun R wrote:
>>>> On 09-01-2026 16:52, Michel Dänzer wrote:
>>>>> On 1/9/26 12:07, Murthy, Arun R wrote:
>>>>>>> From: Michel Dänzer <michel.daenzer@mailbox.org> On 1/8/26 10:43,
>>>>>>> Arun R Murthy wrote:
>>>>>>>> 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.
>>>>>>> FWIW, this kind of mix'n'match doesn't seem useful with current
>>>>>>> UAPI, since no new commit can be made for the async plane(s) before
>>>>>>> the previous commit for the sync plane(s) has completed, so the
>>>>>>> async plane(s) can't actually have higher update rate than the sync one(s).
>>>>>> That’s right, such mix and match flips will still consume vblank time for
>>> flipping.
>>>>> Does a plane property really make sense for this then?
>>>> As per the hardware this async flip is per plane basis and not per crtc.
>>> That's not really relevant.
>>>
>>>
>>>> Not that I am trying to clean up this. Recently AMD added async support on
>>> overlays as well for which few other hacks were added. The checks that we do
>>> for async flip were all done in place of copy the objs/properties, but it actually is
>>> supposed to be done in the check_only() part of the drm core code. This was
>>> the limitation with the existing implementation.
>>>
>>> Those implementation details can be changed without changing UAPI.
>>>
>>>
>>>> As per hardware the async flip is associated with the plane, hence changing it
>>> to a plane property.
>>>
>>> A plane property would only really be needed for mixing async & sync plane
>>> updates in a single commit. Since that's currently not usefully possible due to
>>> other restrictions of the UAPI, the DRM_MODE_PAGE_FLIP_ASYNC flag which
>>> affects the commit as a whole is fine at this point.
>>>
>> Sorry for getting back late on this, took some time to collaborate all the feedbacks.
>>
>> We can depict the below 3 scenarios based on the discussions so far.
>> 1. KMD can allow a mix of sync and async only if there is a disable plane req on sync and no plane update on sync flips along with async flips(maybe on multiple planes). KMD will send the flipdone after sync plane disable is done. (Basically flipdone will send at vblank)
> What would be the point of allowing that? The compositor can't do the next commit before the sync plane has turned off anyway, so it can just as well do that in a sync commit and the async plane updates in separate commits later.
For an async flip to start, the 1st async flip will consume almost a
vblank time, so if compositor does a sync flip on a plane along with
sync flip to disable the plane, the next async flip will still consume a
vblank time. If KMD allows disabling of a sync plane with async flip
then we can overcome this.
>
>> 3. With multiple plane async flips, KMD send flip done per plane basis to the user. (async flag per plane from user)
>> 4. With supporting a mix of sync and async flips, should KMD allow them and send one flipdone for async flips and one flipdone for sync flips.
> Again not sure what would be the point of 3 or 4, since the compositor can't do the next commit before all planes have updated anyway.
Upon compositor getting a flipdone on the async flip, the buffers will
be unpinned and this can be used by the compositor for rendering or for
preparing the next flip.
This patch series anyway doesnt support either of 3 or 4, just trying to
understand if there is a use case from the compositor for this.
Thanks and Regards,
Arun R Murthy
-------------------
next prev parent reply other threads:[~2026-02-11 13:39 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2026-02-11 13:51 ` Michel Dänzer
2026-02-11 13:58 ` Murthy, Arun R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bebe5a45-85b0-4124-bc8b-c94527d00663@intel.com \
--to=arun.r.murthy@intel.com \
--cc=airlied@gmail.com \
--cc=andrealmeid@igalia.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=lumag@kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=michel.daenzer@mailbox.org \
--cc=mripard@kernel.org \
--cc=naveen1.kumar@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=tursulin@ursulin.net \
--cc=tzimmermann@suse.de \
--cc=ville.syrjala@intel.com \
--cc=xaver.hugl@kde.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox