You are not logged in.
From what I can tell, this was added in this patch https://lore.kernel.org/lkml/a1d2749b-8 … amd.com/T/ which made it into Linux 6.9.0. According to the power-profiles-daemon documentation, if you are using Power Profiles Daemon, you can disable it by either:
Adding amdgpu.abmlevel=0 to the kernel command line to disable ABM value changes entirely.
Or by using --block-action=amdgpu_panel_power in the power-profiles-daemon ExecStart command to prevent the Power Profiles Daemon from changing ABM values
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
KDE Plasma 6, ASUS ROG Zephyrus G14 (2020) [Laptop], mesa drivers
From what I can tell, something was just added in order for AMD GPUs on Laptops to enable something that a lot of people call "Vari-Bright". However, this 'feature' that was added is extremely dumb, I didn't like it on windows and I still don't like it here, and I have no idea how to turn it off/remove it.
So far what I have done is go to
/sys/class/backlight/amdgpu_bl2/device/amdgpu
and then using cat on the file
panel_power_savings
-=-=-=-=-=-=-=-=-=-
which on battery power, provides this result:
3
-=-=-=-=-=-=-=-=-=-
However, when plugged in, the result changes to:
0
That one isn't important, but the one on battery power is extremely important.
I didn't turn anything on (or if I did, I unknowingly did it), but everything was fine before I turned on my laptop when this was posted.
From doing some research, I found these sites that helped me narrow down the issue:
https://ubuntuhandbook.org/index.php/20 … s-amd-gpu/
https://lkml.org/lkml/2024/3/13/98 (search 'panel_power_savings' in the search box in your web browser of choice)
https://gitlab.freedesktop.org/upower/p … quests/137
https://lists.freedesktop.org/archives/ … 08513.html (for oleds, but may still have some useful information)
https://upower.pages.freedesktop.org/po … ction.html (Explains what 'panel_power_savings' is)
https://gitlab.freedesktop.org/drm/amd/-/issues/3359 (for oleds, but may have some useful information)
https://gpuopen.com/manuals/ADLX/adlx-c … ri_bright/ (this may or may not be useful)
I hope that we're able to get this solved, because I am unable to work with this, and I really need to get some things done. Thank you in advance, and I hope this provides sufficient information.
Last edited by ORIOLESFan02 (2024-05-28 14:57:42)
Offline
From what I can tell, this was added in this patch https://lore.kernel.org/lkml/a1d2749b-8 … amd.com/T/ which made it into Linux 6.9.0. According to the power-profiles-daemon documentation, if you are using Power Profiles Daemon, you can disable it by either:
Adding amdgpu.abmlevel=0 to the kernel command line to disable ABM value changes entirely.
Or by using --block-action=amdgpu_panel_power in the power-profiles-daemon ExecStart command to prevent the Power Profiles Daemon from changing ABM values
Offline
Thanks a lot for the solution! This was driving me crazy.
Offline
From what I can tell, this was added in this patch https://lore.kernel.org/lkml/a1d2749b-8 … amd.com/T/ which made it into Linux 6.9.0. According to the power-profiles-daemon documentation, if you are using Power Profiles Daemon, you can disable it by either:
Adding amdgpu.abmlevel=0 to the kernel command line to disable ABM value changes entirely.
Or by using --block-action=amdgpu_panel_power in the power-profiles-daemon ExecStart command to prevent the Power Profiles Daemon from changing ABM values
This worked! Thank you so much!
Offline
johntitor wrote:From what I can tell, this was added in this patch https://lore.kernel.org/lkml/a1d2749b-8 … amd.com/T/ which made it into Linux 6.9.0. According to the power-profiles-daemon documentation, if you are using Power Profiles Daemon, you can disable it by either:
Adding amdgpu.abmlevel=0 to the kernel command line to disable ABM value changes entirely.
Or by using --block-action=amdgpu_panel_power in the power-profiles-daemon ExecStart command to prevent the Power Profiles Daemon from changing ABM values
This worked! Thank you so much!
Which option did you use? I have tried editing the power-profiles-daemon ExecStart to add the --block-action flag but the service crashes now, with no clear error.
EDIT: nevermind, I'm an idiot. I copied the ExecStart from the gitlab README but in Arch it's different.
Thank you, this was driving me crazy.
Last edited by hornobster (2024-06-08 08:10:54)
Offline
I could have sworn this was a bug introduced in 6.9. Imagine my shock to now find out someone thought this should be a feature. Turned on by default even. Words cannot describe, thank you for the solution
Offline
Which option did you use? I have tried editing the power-profiles-daemon ExecStart to add the --block-action flag but the service crashes now, with no clear error.
EDIT: nevermind, I'm an idiot. I copied the ExecStart from the gitlab README but in Arch it's different.
Thank you, this was driving me crazy.
How exactly is it different for Arch? I couldn't get the fix to work by making my edits via
sudo systemctl edit power-profiles-daemon.service
I had to execute
sudo nano /usr/lib/systemd/system/power-profiles-daemon.service
directly and change
ExecStart=/usr/lib/power-profiles-daemon
to
ExecStart=/usr/lib/power-profiles-daemon --block-action=amdgpu_panel_power
Then execute
systemctl daemon-reload
Would this be bad practice?
Offline
Would this be bad practice?
Yes, it's bad practice because any changes you've made will be overwritten the next time the power-profiles-daemon package is updated. Instead, use systemctl to create a drop-in/override for the service:
systemctl edit power-profiles-daemon.service
Enter the following:
[Service]
ExecStart=
ExecStart=/usr/lib/power-profiles-daemon --block-action=amdgpu_panel_power
That first "ExecStart=" line is necessary in order to override its value. See this Ask Ubuntu answer if you'd like to know more.
You should now have a file called "/etc/systemd/system/power-profiles-daemon.service.d/override.conf" containing the above text.
Finally, restart the service:
systemctl restart power-profiles-daemon.service
Checking the status of the service should now show that it's running with the "--block-action=amdgpu_panel_power" flag.
Offline
Thank you - I stopped checking this thread, but some time recently my method did indeed get overwritten. The first "ExecStart=" line (or absence thereof) was obviously why I couldn't get it working before.
Last edited by Amicar (2024-11-06 09:41:32)
Offline