[regression][bisected] Laggy window and cursor movement between monitors with one freesync display on X11 with 7800 XT
Brief summary of the problem:
I have a 7800 XT and I have two monitors connected to it.
One monitor is a 1440p 144hz freesync display connected over DP, but it is not actually using freesync because I'm using X which doesn't support this multi monitor setup with freesync on one monitor.
The other is a 4k 60hz non-freesync monitor connected over DP.
If I try to drag a window or my cursor between windows, it's super laggy and choppy at the monitor break.
I posted two videos in the videos section showing the issue.
I can tell immediately if the probem is present even if it doesn't show well in the video.
I tried using git versions of mesa/libdrm/linux-firmware/xorg stack and the issue was always present.
Kernel 6.4 works fine, it starts breaking in 6.5
I bisected this to:
commit f38129bb081758176dd78304faaee95007fb8838
Author: Aurabindo Pillai <aurabindo.pillai@amd.com>
Date: Tue Mar 21 10:25:04 2023 -0400
Revert "drm/amd/display: disable SubVP + DRR to prevent underflow"
This reverts commit 80c6d6804f31451848a3956a70c2bcb1f07cfcb0.
The orignal commit was intended as a workaround to prevent underflow and
flickering when using one normal monitor and the other high refresh rate
monitor (> 120Hz).
This patch is being reverted in favour of a software solution to enable
SubVP+DRR
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 -----
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 4 ----
drivers/gpu/drm/amd/include/amd_shared.h | 1 -
3 files changed, 10 deletions(-)
If I revert this commit in 6.5 (with a minor manual change in amd_shared.h because of the patch failing to apply), everything works fine.
Also note that Wayland works fine always, even with the above commit present.
I can test any patches or provide any more info if necessary, thanks.
Hardware description:
- CPU: AMD Ryzen 9 7900X 12-Core Processor
- GPU: 7800 XT, 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:747e] (rev c8)
- System Memory: 32GB
- Display(s): 1x Freesync 1440p 144hz over DP, 1x Non-freesync 4K 60hz over DP
- Type of Display Connection: See above
System information:
- Distro name and Version: Gentoo
- Kernel version: 6.5.2, but I tried using linux git and amd-staging-drm-next and it still has the problem.
- AMD official driver version: I am using the foss stack
How to reproduce the issue:
Just drag a window or the cursor from one monitor to the next.
Attached files:
Screenshots/video files
Good: https://www.youtube.com/watch?v=k4O62_lGcKU
Bad: https://www.youtube.com/watch?v=4Lq3BXWcrmw
Log files (for system lockups / game freezes / crashes)
Bad dmesg: https://pastebin.com/2Adh44uy
Good dmesg: https://pastebin.com/qHY29LL0
Let me know if you need any other logs.
@aaurabin FYI