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 <[email protected]>
>>>> 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.


>>> This series doesn’t solve that, but rather accommodate multiple plane async 
>>> flips in an atomic ioctl and allowing disabling of a sync plane which is 
>>> already enabled. There has been a long discussion in the 
>>> gitlab(https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13834) on 
>>> this.
>> AFAICT that's a false-positive rejection of commits which don't actually 
>> change cursor plane state.
> 
> https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13834#note_2855843

Not sure what you're trying to say here / how that comment contradicts what I 
wrote.


-- 
Earthling Michel Dänzer       \        GNOME / Xwayland / Mesa developer
https://redhat.com             \               Libre software enthusiast

Reply via email to