[PATCH 06/18] drm/amd/display: limit clear_update_flags to dcn32 and above

Melissa Wen mwen at igalia.com
Wed Jul 16 21:52:12 UTC 2025



On 14/07/2025 19:43, Melissa Wen wrote:
>
>
> On 11/07/2025 16:50, Mario Limonciello wrote:
>> On 7/10/2025 4:25 PM, IVAN.LIPSKI at amd.com wrote:
>>> From: Charlene Liu <Charlene.Liu at amd.com>
>>>
>>> [why]
>>> dc has some code out of sync:
>>> dc_commit_updates_for_stream handles v1/v2/v3,
>>> but dc_update_planes_and_stream makes v1 asic to use v2.
>>>
>>> as a reression fix: limit clear_update_flags to dcn32 or newer asic.
>>
>> regression
>>
>>> need to follow up that v1 asic using v2 issue.
>>>
>>> Reviewed-by: Syed Hassan <syed.hassan at amd.com>
>>> Signed-off-by: Charlene Liu <Charlene.Liu at amd.com>
>>> Signed-off-by: Ivan Lipski <ivan.lipski at amd.com>
>>
>> There is a public issue on this regression, we should add the 
>> following tags so it closes and backports to fix it.
>>
>> Cc: stable at vger.kernel.org
>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4129
>> Fixes: 7671f62c10f2 ("drm/amd/display: Clear update flags after 
>> update has been applied")
>
> Just found this patch, and I suspect it causes a regression on 
> steamdeck (DCN 3.01), since in the past calling clear_update_flags 
> fixed glitches related to minimal transition. Except if there are 
> changes on other parts of the minimal transition machinery that avoid 
> the problem for some reasons.
>
> Did you guys validate this patch in the scenario described in 
> https://gitlab.freedesktop.org/drm/amd/-/issues/3441#note_2508309 + 
> https://gitlab.freedesktop.org/drm/amd/-/issues/3441#note_2510928 ?
> If not, I'll do tomorrow.

Hi,

I tested current `amd-staging-drm-next` that includes this patch on 
SteamDeck/SteamOS and I see those glitches reported in [1] back.
For better context, on SteamDeck/SteamOS we use many plane color 
capabilities (so it sets multiple update flags) and the glitches appear 
when transitioning between 1-2 active overlay planes.

I think we should revert this patch. Another option is to include DCN 
3.01 to the list of users of clear_update_flags().

Best Regards,

Melissa

[1] https://gitlab.freedesktop.org/drm/amd/-/issues/3441

>
> Melissa
>
>>
>> Thanks!
>>
>>> ---
>>>   drivers/gpu/drm/amd/display/dc/core/dc.c | 5 ++---
>>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
>>> b/drivers/gpu/drm/amd/display/dc/core/dc.c
>>> index f37ed24b2430..cee45fe7cec9 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
>>> +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
>>> @@ -5443,8 +5443,7 @@ bool dc_update_planes_and_stream(struct dc *dc,
>>>       else
>>>           ret = update_planes_and_stream_v2(dc, srf_updates,
>>>               surface_count, stream, stream_update);
>>> -
>>> -    if (ret)
>>> +    if (ret && dc->ctx->dce_version >= DCN_VERSION_3_2)
>>>           clear_update_flags(srf_updates, surface_count, stream);
>>>         return ret;
>>> @@ -5475,7 +5474,7 @@ void dc_commit_updates_for_stream(struct dc *dc,
>>>           ret = update_planes_and_stream_v1(dc, srf_updates, 
>>> surface_count, stream,
>>>                   stream_update, state);
>>>   -    if (ret)
>>> +    if (ret && dc->ctx->dce_version >= DCN_VERSION_3_2)
>>>           clear_update_flags(srf_updates, surface_count, stream);
>>>   }
>>
>



More information about the amd-gfx mailing list