MCLK locked to 1000MHz idle, resolution investigation
1
vote
0
answers
123
views
A few months ago, I became interested in Linux and decided to install it. I went with a dual boot setup (on a separate drive) using Arch Linux. Everything was going okay until I noticed my RX 6700 XT VRAM clock was always at maximum frequency, even when idle. Maybe the problem is related to the high refresh rate? Using the trial-and-error method, I discovered that every resolution above 152Hz locks the MCLK (memory clock) to its maximum value of 1000MHz (or 2000MHz effective). However, I'm running an identical configuration—1080p 165Hz—on Windows too, and it works flawlessly there, so what's the problem?
In trying to find an answer, I was able to narrow it down to X11 (i3, DWM, KDE X11 were affected, whereas KDE Wayland was unaffected). The next step was to download CRU on Windows, write down the active detailed resolution, and compare it to the result of xrandr --verbose. Both resolutions were identical:
.96 1920 1968 2032 2080 1080 1083 1088 1110 -hsync +vsync
That truly left me confused: why does a resolution that works flawlessly on Windows become problematic on Linux? After more searching, I was able to find an answer: It turns out the problem is with "blanking," and Linux doesn't like resolutions outside of VESA Coordinated Video Timings (CVT) (I'm still not sure why that's the case). Plugging 1080p 165Hz into a CVT calculator resulted in the following resolution:
.53 1920 2088 2296 2672 1080 1083 1089 1192 -hsync +vsync
But setting this resolution only resulted in a black screen. Then I tried the CVT "revision" CVT-RB, and I got this resolution:
.21 1920 1968 2000 2080 1080 1083 1088 1169 +hsync -vsync
This time it worked, and my MCLK dropped to 96MHz. At first, it seemed like a success, but I quickly started experiencing problems with it: each reboot is a gamble. It either works correctly, the screen displays, or I'm met with an "Out of Range" message, or—most commonly—the screen is blurred and divided into out-of-order fragments (image ://i.sstatic.net/xFJlBR6i.jpg
). Turing monitor on or off can sometimes fix the problem, but it's just a gamble - sometimes problem comes back when screensaver turns screen off and I move mouse it wake it.
Finally, I tried CVT-RB2 resolution:
.77 1920 1928 1960 2000 1080 1155 1063 1169 +hsync -vsync
but I also got the "Out of Range" message there. I also noticed that if I plug the CVT-RB2 resolution into CRU, the refresh value becomes red at every value above 144Hz. I have no idea where to go from here.
```
A few additional details:
GPU: RX 6700 XT
Driver:
[f0x@Arch ~]$ lspci -k | grep -A 2 -E "(VGA|3D)"
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] (rev c1)
Subsystem: ASUSTeK Computer Inc. Device 05d7
Kernel driver in use: amdgpu
Distro: Linux Arch KDE/dwm X11
Edid:
Section "Monitor"
Identifier "ASUS VG249Q1A"
ModelName "ASUS VG249Q1A"
VendorName "AUS"
# Monitor Manufactured week 43 of 2021
# EDID version 1.4
# Digital Display
DisplaySize 520 290
Gamma 2.20
Option "DPMS" "true"
Horizsync 200-200
VertRefresh 48-165
# Maximum pixel clock is 600MHz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
#Extension block found. Parsing...
Modeline "Mode 16" +hsync -vsync
Modeline "Mode 0" +hsync -vsync
Modeline "Mode 1" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
Modeline "Mode 2" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 3" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
Modeline "Mode 4" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
Modeline "Mode 5" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 6" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 7" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
Modeline "Mode 8" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
Modeline "Mode 9" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Modeline "Mode 10" 54.054 1440 1472 1596 1716 480 489 495 525 -hsync -vsync
Modeline "Mode 11" 54.054 1440 1472 1596 1716 480 489 495 525 -hsync -vsync
Modeline "Mode 12" 54.000 1440 1464 1592 1728 576 581 586 625 -hsync -vsync
Modeline "Mode 13" 54.000 1440 1464 1592 1728 576 581 586 625 -hsync -vsync
Modeline "Mode 14" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
Modeline "Mode 15" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
Modeline "Mode 17" +hsync +vsync
Modeline "Mode 18" +hsync +vsync
Option "PreferredMode" "Mode 16"
EndSection
Asked by Letus252
(11 rep)
Aug 13, 2024, 06:13 PM
Last activity: Aug 14, 2024, 01:50 AM
Last activity: Aug 14, 2024, 01:50 AM