[PATCH] Revert "drm/amd/display: limit clear_update_flags to dcn32 and above"

Melissa Wen mwen at igalia.com
Thu Jul 17 19:14:30 UTC 2025


On 17-07-2025 15:58, Limonciello, Mario wrote:
> On 7/17/25 11:55 AM, Melissa Wen wrote:
>> On 17-07-2025 13:39, Limonciello, Mario wrote:
>>> On 7/17/25 9:36 AM, Melissa Wen wrote:
>>>> This reverts commit e1bd5e0bb4ca0d633ad698abd3658f8265009b81.
>>>>
>>>> The commit causes a regression in Steam Deck (DCN 3.01), reintroducing a
>>>> functional issue reported in [1] that was fixed by calling the
>>>> clear_update_flags() from commit 7671f62c10f2a.
>>>>
>>>> On Steam Deck, we use multiple hw plane color caps and up to two overlay
>>>> planes with dynamic pipe split policy. I.e. with 1 primary + 1 overlay,
>>>> the driver split planes into two (with 4 pipes), but with 1 primary + 2
>>>> overlays, we don't have enough pipe for splitting. Glitches appear in
>>>> this pipe-split transition of 1-2 overlay planes, if the driver doesn't
>>>> clear update flags.
>>>>
>>>> Besides that, the issue the commit e1bd5e0bb4ca tries to address [2]
>>>> isn't functional.
>>>>
>>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3441 [1]
>>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4129 [2]
>>>> Signed-off-by: Melissa Wen <mwen at igalia.com>
>>>
>>> Can you please double check the use case that prompted
>>> e1bd5e0bb4ca0d633ad698abd3658f8265009b81 in the first place?  IE With
>>> this revert you proposed do you see a traceback on unplug of external
>>> display?
>> 
>> Hi Mario,
>> 
>> I don't see either traceback or REG_WAIT timeout when unplugging an
>> external HDMI-connected display.
>> I tried with the Deck Dock and USB-C to HDMI adapter. Not sure if there
>> is a very specific scenario that triggers this that I didn't cover.
> 
> No; it's quite a general problem and easy to reproduce.  This makes me 
> wonder if there should be an exception carved out for Steam Deck instead.

No idea...
I'm using `amd-staging-drm-next` branch with the AMD driver-specific
color properties enabled.
But those color properties are not used on desktop mode, for example.

> 
>> 
>> The only message on dmesg from this action is:
>> amdgpu 0000:04:00.0: amdgpu: pp_od_clk_voltage is not accessible if
>> power_dpm_force_performance_level is not in manual mode!
>> 
>> Moreover, if I move to the Desktop mode (KDE), there is no message.
>> 
>> Melissa
>> 
>>>
>>>> ---
>>>>    drivers/gpu/drm/amd/display/dc/core/dc.c | 5 +++--
>>>>    1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
>>>> index c31f7f8e409f..7c48f72e5917 100644
>>>> --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
>>>> +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
>>>> @@ -5443,7 +5443,8 @@ 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 && dc->ctx->dce_version >= DCN_VERSION_3_2)
>>>> +
>>>> +	if (ret)
>>>>    		clear_update_flags(srf_updates, surface_count, stream);
>>>>    
>>>>    	return ret;
>>>> @@ -5474,7 +5475,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 && dc->ctx->dce_version >= DCN_VERSION_3_2)
>>>> +	if (ret)
>>>>    		clear_update_flags(srf_updates, surface_count, stream);
>>>>    }
>>>>


More information about the amd-gfx mailing list