Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
Our infrastructure migration is complete. Please remember to update your SSH remote to point to ssh.gitlab.freedesktop.org; SSH to the old hostname will time out. You should not see any problems apart from that. Please let us know if you do have any other issues.
When I updated to linux kernel 6.4 my amd gpu rx 6900 xt is now stuck at 96 mhz mlck.
Before it was always at max mhz which is 1000, at least the bug with the high power consumption with 4k 120hz screen is fixed but now it never goes higher than 96 mhz which means my games run now with lower peformance.
I already tried to manually set the mclk frequency to 1000mhz by using pp_dpm_mclk and setting it to 3 aswell setting power_dpm_force_performance_level to manual.
Downgrading the Linux kernel back to 6.3.9 forces MCLK at max frequency again.
ill see about it, i dont know which commit caused this ill just go through the changelogs on the latest kernel and let you know which one changed power management
there's a variety of commits that changed mclk handling behavior such as ef3d74aa7e5d ("drm/amd/display: Add missing mclk update") and a series of commits that reversed mclk handling for APUs (like f1373a97a41f ("drm/amd/pm: reverse mclk and fclk clocks levels for yellow carp")). Those shouldn't be it but there are also changes that went in for subvp.
IOW it might not be straightforward to tell from just git commits. A proper kernel bisect would be ideal .
after compiling over and over (and wasting power) I've finally found the culprit, it's 6.4.0-rc5. Some commit from 6.4.0-rc4 to 6.4.0-rc5 has changed something for mclk.
I hope you can start something with this info
EDIT: it must be one of those:
Tim Huang (5):
drm/amd/pm: reverse mclk and fclk clocks levels for SMU v13.0.4
drm/amd/pm: reverse mclk clocks levels for SMU v13.0.5
drm/amd/pm: reverse mclk and fclk clocks levels for yellow carp
drm/amd/pm: reverse mclk and fclk clocks levels for vangogh
drm/amd/pm: reverse mclk and fclk clocks levels for renoir
in amdgpu, these are the changes between 6.4-rc4 and 6.4-rc5:
663b930e24842 drm/amdgpu: enable tmz by default for GC 11.0.1e490d60a2f76b drm/amd/pm: resolve reboot exception for si olandbc3e1d60f933f drm/amdgpu: add RAS POISON interrupt funcs for jpeg_v4_030b2d778f629d drm/amdgpu: add RAS POISON interrupt funcs for jpeg_v2_6ce784421a3e15 drm/amdgpu: separate ras irq from jpeg instance irq for UVD_POISON020c76d983151 drm/amdgpu: add RAS POISON interrupt funcs for vcn_v4_06889f28c736c3 drm/amdgpu: add RAS POISON interrupt funcs for vcn_v2_6ac1d8e2f074d9 drm/amdgpu: separate ras irq from vcn instance irq for UVD_POISON8e1b45c578b79 Revert "drm/amd/display: Do not set drr on pipe commit"c14fb01c4629b Revert "drm/amd/display: Block optimize on consecutive FAMS enables"55e02c14f9b5f drm/amd/pm: reverse mclk and fclk clocks levels for renoirbfc03568d9d81 drm/amd/pm: reverse mclk and fclk clocks levels for vangoghf1373a97a41f4 drm/amd/pm: reverse mclk and fclk clocks levels for yellow carpc1d35412b3e82 drm/amd/pm: reverse mclk clocks levels for SMU v13.0.56a07826f2057b drm/amd/pm: reverse mclk and fclk clocks levels for SMU v13.0.4
The reversing mclk/fclk levels shouldn't be it because those are for other GPU products than yours. I would suspect it's one of those two reverts. Can you confirm which one?
I tried to bisect with the same GPU, but there seems to have been a prior commit that completely broke freesync (logging into a wayland session that enabled freesync would crash amdgpu and result in my monitor no longer detecting DP input). Not even rc4 works for me. So I wasn't able to find the first bad commit.
But assuming rc4 works for you and doesn't have the mclk problem, maybe this will help a little bit? (my git bisect log with minor comments)
bad: [9561de3a55bed6bdd44a12820ba81ec416e705a7] Linux 6.4-rc5 -- mclk problembad: [663b930e24842f3d3bb79418bb5cd8d01b40c559] drm/amdgpu: enable tmz by default for GC 11.0.1 -- mclk problembad: [8e1b45c578b799510f9a01a9745a737e74f43cb1] Revert "drm/amd/display: Do not set drr on pipe commit" -- mclk problemskip: [f1373a97a41f429e0095d4be388092ffa3c1a157] drm/amd/pm: reverse mclk and fclk clocks levels for yellow carp -- monitor disconnectskip: [bfc03568d9d81332382c73a1985a90c4506bd36c] drm/amd/pm: reverse mclk and fclk clocks levels for vangogh -- monitor disconnectskip: [c1d35412b3e826ae8119e3fb5f51dd0fa5b6b567] drm/amd/pm: reverse mclk clocks levels for SMU v13.0.5 -- monitor disconnectskip: [55e02c14f9b5fd973ba32a16a715baa42617f9c6] drm/amd/pm: reverse mclk and fclk clocks levels for renoir -- monitor disconnectskip: [6a07826f2057b5fa1c479ba56460195882464270] drm/amd/pm: reverse mclk and fclk clocks levels for SMU v13.0.4 -- monitor disconnectskip: [c14fb01c4629b96b64ab54caea7e543a0239f14e] Revert "drm/amd/display: Block optimize on consecutive FAMS enables" -- monitor disconnect
Does the mclk increase when there is GPU load (e.g., when running a game)? There were a number of display fixes in 6.4 to be able to keep the mclk low when the GPU load is low.
Can confirm this issue also happens on 7000 series too. I have a 7900XT and MCLK is locked at 96Mhz regardless of VRR. And this happens both on kwin and hyprland(wlroots). The issue persists at 6.4.1
And a workaround will be set monitor frequency to 90hz if supported, or if on a wlroots-based compositor, set the monitor frequency to something slightly off like 143hz will also work.
Have same problem with Gigabyte AMD 6700XT.
I have monitor with 165 refresh rate. When I use 90Hz refresh i dont have any problems with GPU power(185 Watt).
When I set refresh rate >90HZ (100,120,144,165) my GPU use only 65 Watt max and MEM 96 MHz.
Mainboard: MSI PRO B650-P WIFI
CPU: Ryzen 7600X
GPU: Radeon RX 6700XT 12Gb
Display: Xiaomi Mi Gaming 27 with DisplayPort connection.
but the mclk remains stuck at 96MHz unless after commands are applied, I change the refresh rate or display resolution (to any arbitrary refresh rate or resolution). Only then will the forced mclk be in effect. The forced mclk will remain in effect even if I subsequently revert back to the original refresh rate.
Kernel 6.4.1, Mesa 23.1.3, Arch Linux, KDE Plasma 5.27.6 (Wayland).
Probably I think. My workaround was also changing the monitor ref rate to something lower. Even just 1hz lower make the mclk works as intended. According to RTINGS my monitor could reach 160hz given VRR enabled if connected through HDMI 2.1. I can test the same trick by setting the ref rate to something like 159hz after I have a certified cable.
Supposedly some commit in amd drm next repo fixes it:
Good news: It's fixed with tag amd-drm-next-6.5-2023-06-16 , VRAM correctly clocks up and down with 165Hz. Will close once fix is in mainline / stable.
So I wonder which one and can it be applied to 6.4.1 to test.
I just tested it with 7900 XTX and 6.4.1 (180 Hz monitor, adaptive sync active, using DisplayPort). MCLK reclocks fine for me when playing Cyberpunk 2077. KDE Plasma 5.27.5, Wayland session.
Edit: To clarify, prior to this commit, my RX 7900XT running at 3840x1600@144Hz (no VRR) can downclock to 456MHz (1 step above the lowest 96MHz) at idle.
Can confirm the MCLK of my 6600XT doesn't go above 96 MHz when I switch to 120 Hz in Cinnamon's display settings. I get much lower FPS in CS:GO Zombie Escape mode (64 players, custom maps). +fps_max 120 in Steam's launch options, but these FPS are never reached now, instead the FPS are like 20-40 now.
Workaround: Switch to 100 Hz for a few minutes and then back to 120 Hz.
Rest of the hardware: S95B OLED TV running at 3840x2160,5600X,16GB RAM,Arch with latest updates: linux 6.4.7.arch1-1,cinnamon 5.8.4-1 and linux-firmware 20230625.ee91452d-5.
@pure5665 I don't see how that is possible with HDMI 2.0 speeds.
This calculator and Wikipedia tells me it's impossible, even at 4:2:0 chroma subsampling.
@nfp0 I don't use HDMI 2.0 though but HDMI 2.1.
I plugged in my HDMI cable to a 2.0 port, now i can't use 120HZ anymore but bpc is still at 10. So HDMI 2.1 definitely works for me with 4k and 120HZ.
For anyone following this, we were not able to achieve 4K@120hz@10bpc. The TV was only receiving ycbcr 4:2:0 at 8 bits, which conforms to HDMI 2.0 speeds.
I just tried the current tip of the drm-next branch and it appears the issue has been fixed, at least for my RX 7900 XT running resolution 3840x1600@144Hz (no VRR).
Frequency downclocks to 96MHz at idle and goes up to max during games. There doesn't appear to be any flickering or performance issues, but I haven't had time to run a long gaming session to truly "stress test" it.
I compiled the kernel from source, either from https://gitlab.freedesktop.org/agd5f/linux to test AMD's fixes or from Linus's mainline kernel tree when I want to test some release candidate kernel version.
But to answer your question, my distro is Arch Linux.
I can confirm the same issue and workarounds as mentioned in this thread with an RX6700 (non-xt) using any 6.4 or 6.5 branch currently. I have reverted to LTS in the meantime and it works just fine.
It took me hours to find this bug report as I debugged my issue, as I focused on another element that seems to be present, though it might be just because of the mclk (for me, I noticed the card was "stuck" on 50w power limit, but I think it's actually the mclk mentioned, it just doesn't need more than 50w to produce that clock).