ublue-os / bazzite

Bazzite is a custom image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.
https://bazzite.gg
Apache License 2.0
3.32k stars 183 forks source link

OLED Steam Deck limit CPU to 3500 MHz #996

Open Skyrent opened 3 months ago

Skyrent commented 3 months ago

Describe the bug

My OLED deck CPU can't exceed 3500MHz according to Gamescope, even though the BIOS and terminal show the maximum value as 4000MHz.

The amdgpu drivers for vangogh currently hard code the maximum clock frequency. If a steam deck is overclocked, then the AMD PowerPlay interface can only be set up to this hard coded limit, rather than the true maximum clock.

However this limitation wasn't present on the OLED version of SteamOS, but it appeared after switching to Bazzite.

What did you expect to happen?

that the CPU can exceed the value of 3500, especially in combination with tools such powertools.

Output of rpm-ostree status

deck@Deck:~$ rpm-ostree status
State: idle
Deployments:
● ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:39-20240328
                   Digest: sha256:bc18ac57e443ab2f930af7025d02fa9c4ac7d8fabd98d99047a7ce0e5bd99b9c
                  Version: 39.20240328.0 (2024-03-28T22:31:50Z)
          LayeredPackages: sunshine
                Initramfs: '"-I /etc/crypttab /etc/modprobe.d/amdgpu.conf /etc/modprobe.d/deck-blacklist.conf" ' 

  ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:39-20240328
                   Digest: sha256:bc18ac57e443ab2f930af7025d02fa9c4ac7d8fabd98d99047a7ce0e5bd99b9c
                  Version: 39.20240328.0 (2024-03-28T22:31:50Z)
          LayeredPackages: sunshine

Hardware

Galileo

Extra information or context

No response

Sterophonick commented 2 months ago

Bump. Never tested on SteamOS, but can confirm that the Cclk and GFXclk settings are ignored. TDP overrides on Deck are properly respected, just the clock speeds.

Did you happen to use any modifications to SteamOS to allow for the clocks to reach the new limits?

Edit: i was able to get the GfxClk override to work, just needed to override PowerTools to make it happen, but cpuclk is still stuck <3500MHz

Skyrent commented 2 months ago

Once a upper limit is set from the BIOS, SteamOS allows, without further steps, to exceed the value of 3500mhz for the CPU (cpuclk). However, this only happens for the OLED version. The LCD version requires a tool capable of modifying the hardcoded value in the AMD Van Gogh kernel.

Perhaps Bazzite inherits this limit from the LCD kernel and shares it with the OLED version?

Further and more detailed information are available here - https://gitlab.freedesktop.org/drm/amd/-/issues/2638 .

Sterophonick commented 2 months ago

SteamOS LCD and OLED are one in the same, so there might be a tweak missing from fsync

presstart2begn commented 1 month ago

At least you're getting 3500 my oled refuses to go over 2225 and I checked every setting possible , factory reset and did a repaste. It's not thermal throttling and it doesn't matter tdp it just refuses to clock up to even base clocks and games run worse for it