[PATCH] drm/amd/display: Skip fast cursor updates for fb changes

Michel Dänzer michel at daenzer.net
Mon Dec 17 09:53:00 UTC 2018


On 2018-12-15 6:25 a.m., Grodzovsky, Andrey wrote:
> On 12/14/2018 02:17 PM, Kazlauskas, Nicholas wrote:
>> On 12/14/18 2:06 PM, Grodzovsky, Andrey wrote:
>>> In general I agree with Michel that  DRM solution is required to
>>> properly address this but since now it's not really obvious what is the
>>> proper solution it seems to me OK to go with this fix until it's found.
>>>
>>> Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>>>
>>> Andrey
>> Thanks for the review.
>>
>> FWIW, we're not the only ones with the fb change check like this - msm
>> does it too. The only other user of atomic_async_check and
>> atomic_async_update is vc4 and they don't have it but I'd imagine they
>> see a similar bug with interleaving framebuffers.
>>
>> It may be difficult to develop a "fix" for the behavior in DRM given the
>> semantics of the function (in place update vs full swap). The
>> old_plane_state is technically plane->state in this case, so even just
>> adding cleanup_fb(plane, old_plane_state) after atomic_async_update
>> isn't enough. What *should* be done here is the full state swap like in
>> a regular atomic commit but that may cause breakages in other drivers.
> 
> Your change effectively does that for AMDGPU by forcing non async update 
> for when
> new_plane->state->fb != curret_plane->state->fb.
> But after looking more into it looks to me that this fix is the generic 
> solution, I don't see any way around it, if you swap the fb to a new
> one you must not unreference it until after a new fb arrives and set as 
> current swapping out this one (in some following commit).
> Why you think that making this the generic solution by moving this from 
> dm_plane_atomic_async_check to drm_atomic_helper_async_check
> will break other drivers ?

Please raise and discuss this with other developers on the dri-devel
mailing list. :)


Anyway, this looks like a much better solution for the time being than
the previous patch,

Acked-by: Michel Dänzer <michel.daenzer at amd.com>


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list