On 2025-10-30 16:50, Mario Limonciello (AMD) (kernel.org) wrote:
>
>
> On 10/30/2025 3:49 PM, Alex Deucher wrote:
>> On Thu, Oct 30, 2025 at 4:16 PM Mario Limonciello (AMD)
>> <[email protected]> wrote:
>>>
>>> commit 978fa2f6d0b12 ("drm/amd/display: Use scaling for non-native
>>> resolutions on eDP") started using the GPU scaler hardware to scale
>>> when a non-native resolution was picked on eDP. This scaling was done
>>> to fill the screen instead of maintain aspect ratio.
>>>
>>> The idea was supposed to be that if a different scaling behavior is
>>> preferred then the compositor would request it. The not following
>>> aspect ratio behavior however isn't desirable, so adjust it to follow
>>> aspect ratio and still try to fill screen.
>>>
>>> Note: This will lead to black bars in some cases for non-native
>>> resolutions. Compositors can request the previous behavior if desired.
>>>
>>
>> We may end up getting bug reports about the black bars. We had a
>> similar debate about what the right default was for radeon 15 years
>> ago. That said, at least with this the pixels will be square with
>> this patch.
>>
>> Acked-by: Alex Deucher <[email protected]>
>
> Thanks. Yeah that was my thought too.
I think not preserving aspect ratio is rarely ever the right
call, especially since all modern displays have square pixels.
Reviewed-by: Harry Wentland <[email protected]>
Harry
>
>>
>>> Fixes: 978fa2f6d0b12 ("drm/amd/display: Use scaling for non-native
>>> resolutions on eDP")
>>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4538
>>> Signed-off-by: Mario Limonciello (AMD) <[email protected]>
>>> ---
>>> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>>> index 29b9197bbbc32..5b279182e66a8 100644
>>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>>> @@ -8078,7 +8078,7 @@ static int dm_encoder_helper_atomic_check(struct
>>> drm_encoder *encoder,
>>> "mode %dx%d@%dHz is not native,
>>> enabling scaling\n",
>>> adjusted_mode->hdisplay,
>>> adjusted_mode->vdisplay,
>>> drm_mode_vrefresh(adjusted_mode));
>>> - dm_new_connector_state->scaling = RMX_FULL;
>>> + dm_new_connector_state->scaling = RMX_ASPECT;
>>> }
>>> return 0;
>>> }
>>> --
>>> 2.43.0
>>>
>