GPU scaling mode does not work for 640x480 resolution
Brief summary of the problem:
GPU scaling mode does not work for 640x480 resolution. Scaling at other resolutions, e.g. 800x600, works ok.
I have tested 'Full aspect' scaling the most, but other scaling modes (aside from None
) seem to have the same problem.
This problem happens all the time for me for 640x480.
Hardware description:
- CPU:AMD Ryzen 7 2700x
- GPU: ASRock RX 6700XT Challenger D 12 GB
$ lspci -nn | grep VGA
0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c5)
- System Memory: 64 GB
- Display(s): ASUS ROG Swift PG31UQ
- Type of Display Connection: DP
System information:
- Distro name and Version: Debian Sid
- Kernel version: 6.4.8
- Custom kernel: N/A
- AMD official driver version: N/A? Sorry, I don't know what to report here. I'm using what Debian provides.
How to reproduce the issue:
xrandr --output DisplayPort-2 --set 'scaling mode' 'Full aspect'
xrandr --output DisplayPort-2 --mode 640x480
When I run the second command:
- The monitor loses signal, but can regain signal after the monitor is power cycled.
- Once the monitor has a signal, the display of 640x480 resolution works, but the monitor's OSD shows the input signal as 640x480 75Hz (no GPU scaling).
- Returning to native resolution again causes signal loss and needs a power cycle.
Attached files:
xrandr at native resolution:
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 708mm x 399mm
3840x2160 143.99*+ 60.00 + 120.00 100.00 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
3840x1600 144.00
1920x2160 59.94
2560x1440 144.00 120.00
1920x1200 143.99
1920x1080 120.00 119.88 60.00 60.00 50.00 59.94
1600x1200 143.99
1680x1050 59.95
1280x1024 75.02 60.02
1440x900 59.89
1280x960 60.00
1280x800 143.99
1152x864 75.00
1280x720 120.00 119.88 60.00 50.00 59.94
1440x576 50.00
1024x768 75.03 70.07 60.00
1440x480 60.00 59.94
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
xrandr at 800x600 GPU scaling (works ok):
Screen 0: minimum 320 x 200, current 800 x 600, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected 800x600+0+0 (normal left inverted right x axis y axis) 708mm x 399mm
3840x2160 143.99 + 60.00 + 120.00 100.00 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
3840x1600 144.00
1920x2160 59.94
2560x1440 144.00 120.00
1920x1200 143.99
1920x1080 120.00 119.88 60.00 60.00 50.00 59.94
1600x1200 143.99
1680x1050 59.95
1280x1024 75.02 60.02
1440x900 59.89
1280x960 60.00
1280x800 143.99
1152x864 75.00
1280x720 120.00 119.88 60.00 50.00 59.94
1440x576 50.00
1024x768 75.03 70.07 60.00
1440x480 60.00 59.94
800x600 72.19* 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
xrandr at 640x480 resolution (intended to be GPU scaled, but not):
Screen 0: minimum 320 x 200, current 640 x 480, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
DisplayPort-2 connected 640x480+0+0 (normal left inverted right x axis y axis) 708mm x 399mm
3840x2160 143.99 + 60.00 + 120.00 100.00 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
3840x1600 144.00
1920x2160 59.94
2560x1440 144.00 120.00
1920x1200 143.99
1920x1080 120.00 119.88 60.00 60.00 50.00 59.94
1600x1200 143.99
1680x1050 59.95
1280x1024 75.02 60.02
1440x900 59.89
1280x960 60.00
1280x800 143.99
1152x864 75.00
1280x720 120.00 119.88 60.00 50.00 59.94
1440x576 50.00
1024x768 75.03 70.07 60.00
1440x480 60.00 59.94
800x600 72.19 75.00 60.32 56.25
640x480 75.00* 72.81 66.67 60.00 59.94
720x400 70.08
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
Log files (for system lockups / game freezes / crashes)
When testing this, the kernel sometimes reports:
[603762.251884] [drm] perform_link_training_with_retries: Link(2) training attempt 1 of 4 failed @ rate(6) x lane(1) @ spread = 0 : fail reason:(4)
The following attachment is from boot-time dmesg:
When testing this, xorg logs:
[605378.881] (EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter
[605378.882] (II) AMDGPU(0): Allocate new frame buffer 640x480
[605378.882] (II) AMDGPU(0): => pitch 2560 bytes
The message from drmmode_do_crtc_dpms doesn't seem indicative--I get that same message when using GPU scaling of 800x600 (which works).
If there's more information I should report, please let me know. I'm not very familiar with video display and don't know what else to check.
Thank you, Corey