On my laptop, display brightness cannot be adjusted while the system is switched to integrated-GPU-only mode. By default the kernel only exposes one backlight interface in /sys/class/backlight, and it is not the device that actually drives the panel in iGPU mode. The AMD backlight device (amdgpu_bl1) is missing unless specific kernel parameters are passed, and even once it is present, its default brightness scale is non-linear, leaving the screen visibly dimmer at 100% than in hybrid/dGPU mode. I have also found kernel parameters which should fix all these issues. If this is not the right project for this issue, please redirect me elsewhere.
System information
- Laptop: ASUS TUF Gaming A16 (FA608WI)
- iGPU: AMD Radeon 890M
- dGPU: NVIDIA RTX 4070
- Distribution: CachyOS
- Kernel:
7.0.11-1-cachyos
- AMD driver:
mesa 2:26.1.2-1
- NVIDIA driver:
nvidia-open-dkms 610.43.02-3
The laptop supports three graphics modes, and backlight behavior is inconsistent across some of them. Hybrid and dGPU mode work okay, however when switching to iGPU only mode (integrated), the backlight becomes stuck on 100%. Additionally 100% on iGPU is not equal to 100% on Hybrid or dGPU modes.
1. No working backlight device in iGPU-only mode
With a default kernel command line, /sys/class/backlight does not expose the device needed to control brightness in iGPU-only mode. The desktop brightness controls (KDE Plasma slider, brightness keys) do nothing. The correct device, amdgpu_bl1, is not shown in /sys/class/backlight.
2. Non-linear amdgpu brightness scale
The panel is noticeably dimmer at 100% brightness in iGPU-only mode than it is in hybrid or dGPU mode. The cause is the default amdgpu brightness scale being non-linear:
$ cat /sys/class/backlight/amdgpu_bl1/scale
non-linear
In hybrid/dGPU mode the panel reaches full brightness as expected, so this is specific to the amdgpu backlight path.
Steps to reproduce
- Boot with a default kernel command line.
- Switch the laptop to iGPU-only mode.
- Try to change brightness via the Plasma slider, brightness keys, or by writing to
/sys/class/backlight/*/brightness.
- Observe that brightness does not change (no
amdgpu_bl1 device present), or — once the device is forced — that 100% is dimmer than in hybrid/dGPU mode.
Expected behavior
Brightness should be adjustable in all three graphics modes, and 100% brightness should produce the same panel output in iGPU-only mode as it does in hybrid/dGPU mode.
Workarounds
Enable both backlight devices
Add the following kernel parameters to expose both backlight interfaces in /sys/class/backlight:
acpi_backlight=native nvidia_wmi_ec_backlight.force=1
After this, both devices are present:
$ ls /sys/class/backlight/
amdgpu_bl1 nvidia_wmi_ec_backlight
Brightness then has to be written to the device that matches the active mode:
- iGPU-only mode -> write to
amdgpu_bl1
- Hybrid / dGPU mode -> write to
nvidia_wmi_ec_backlight
Fix the non-linear scale (dim-at-100% issue)
Add this additional parameter so the amdgpu backlight uses a brightness curve that reaches full panel brightness:
amdgpu.dcdebugmask=0x40000
On my laptop, display brightness cannot be adjusted while the system is switched to integrated-GPU-only mode. By default the kernel only exposes one backlight interface in
/sys/class/backlight, and it is not the device that actually drives the panel in iGPU mode. The AMD backlight device (amdgpu_bl1) is missing unless specific kernel parameters are passed, and even once it is present, its default brightness scale is non-linear, leaving the screen visibly dimmer at 100% than in hybrid/dGPU mode. I have also found kernel parameters which should fix all these issues. If this is not the right project for this issue, please redirect me elsewhere.System information
7.0.11-1-cachyosmesa 2:26.1.2-1nvidia-open-dkms 610.43.02-3The laptop supports three graphics modes, and backlight behavior is inconsistent across some of them. Hybrid and dGPU mode work okay, however when switching to iGPU only mode (integrated), the backlight becomes stuck on 100%. Additionally 100% on iGPU is not equal to 100% on Hybrid or dGPU modes.
1. No working backlight device in iGPU-only mode
With a default kernel command line,
/sys/class/backlightdoes not expose the device needed to control brightness in iGPU-only mode. The desktop brightness controls (KDE Plasma slider, brightness keys) do nothing. The correct device,amdgpu_bl1, is not shown in/sys/class/backlight.2. Non-linear amdgpu brightness scale
The panel is noticeably dimmer at 100% brightness in iGPU-only mode than it is in hybrid or dGPU mode. The cause is the default amdgpu brightness scale being non-linear:
In hybrid/dGPU mode the panel reaches full brightness as expected, so this is specific to the amdgpu backlight path.
Steps to reproduce
/sys/class/backlight/*/brightness.amdgpu_bl1device present), or — once the device is forced — that 100% is dimmer than in hybrid/dGPU mode.Expected behavior
Brightness should be adjustable in all three graphics modes, and 100% brightness should produce the same panel output in iGPU-only mode as it does in hybrid/dGPU mode.
Workarounds
Enable both backlight devices
Add the following kernel parameters to expose both backlight interfaces in
/sys/class/backlight:After this, both devices are present:
Brightness then has to be written to the device that matches the active mode:
amdgpu_bl1nvidia_wmi_ec_backlightFix the non-linear scale (dim-at-100% issue)
Add this additional parameter so the amdgpu backlight uses a brightness curve that reaches full panel brightness: