Bug 494730 - One brightness slider affects both eDP screens on the ASUS Zenbook Duo 2024 UX8406
Summary: One brightness slider affects both eDP screens on the ASUS Zenbook Duo 2024 U...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Power management & brightness (other bugs)
Version First Reported In: 6.2.4
Platform: NixOS Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-10-14 10:37 UTC by hacker1024
Modified: 2025-02-26 01:28 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Dual sliders (58.64 KB, image/png)
2024-10-14 10:37 UTC, hacker1024
Details

Note You need to log in before you can comment on or make changes to this bug.
Description hacker1024 2024-10-14 10:37:14 UTC
Created attachment 174799 [details]
Dual sliders

SUMMARY

The ASUS Zenbook Duo 2024 UX8406 has two identical (truly, down to the EDID) displays connected over eDP.

On Plasma 6.2, a brightness slider appears for each display. The first slider changes the brightness of both displays, though, and the second only changes the brightness of the lower display.

STEPS TO REPRODUCE
1. Enable both displays on the Zenbook Duo 2024 (or possibly another laptop with dual eDP and/or identical EDIDs)
2. Attempt to use the sliders

OBSERVED RESULT

The second slider acts like a range modifier: If it is at 50%, the first slider will move the upper display between 0% and 100% while moving the lower display between 0% and 50%.

EXPECTED RESULT

The sliders should only affect their respective displays.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: NixOS unstable
KDE Plasma Version: 6.2.0
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.2
Comment 1 hacker1024 2024-10-14 10:41:44 UTC
The following items are available in /sys/class/backlight:

- intel_backlight
- card1-eDP-2-backlight
- asus_screenpad

The first independently controls the first display, and the second does the second. I take this to mean that the issue is occurring at a level higher than the kernel, at least.

(The third entry does nothing. I suspect there is some sort of false positive causing the ASUS WMI driver to think this device has a screenpad).
Comment 2 Jakob Petsovits 2024-11-27 18:28:05 UTC
Thanks. That's interesting, and unexpected, because generally the backlight brightness code takes all available "backlight" class devices, ignores some depending on "type", and treats the filtered set as a single display. (It's generally hard or impossible to tell which backlight device corresponds to which actual screen, or if they even correspond to different screens at all.) So what's most surprising to me about your case is that you actually have two sliders for "Built-in Screen".

Could you confirm that the two sliders actually come from the service, rather than being a bug in the applet? Please invoke this in a terminal and paste the result to confirm that the service actually exposes two different displays:

> busctl --user get-property org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness DisplaysDBusNames
Comment 3 Jakob Petsovits 2024-11-27 18:30:07 UTC
Resetting the version field to 6.2.0 as mentioned by the original bug report.
Comment 4 hacker1024 2024-11-27 22:19:44 UTC
(In reply to Jakob Petsovits from comment #2)
> Thanks. That's interesting, and unexpected, because generally the backlight
> brightness code takes all available "backlight" class devices, ignores some
> depending on "type", and treats the filtered set as a single display. (It's
> generally hard or impossible to tell which backlight device corresponds to
> which actual screen, or if they even correspond to different screens at
> all.) So what's most surprising to me about your case is that you actually
> have two sliders for "Built-in Screen".
> 
> Could you confirm that the two sliders actually come from the service,
> rather than being a bug in the applet? Please invoke this in a terminal and
> paste the result to confirm that the service actually exposes two different
> displays:
> 
> > busctl --user get-property org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness DisplaysDBusNames

$ busctl --user get-property org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness DisplaysDBusNames
as 4 "display3" "display1" "display2" "display0"

I currently have two external monitors connected as well, so this does mean that each internal display is represented individually.

Something I've noticed since filing this bug report is that there are brightness sliders for external displays as well, but these do not actually send DDC/CI commands; it seems that they just add an artificial dimming filter.

My hunch is that the code responsible for creating these artificial brightness sliders is failing to recognize that the real kernel backlight interfaces can control the lower display as well, and so a dimming filter is also available for it. That explains the additive behavior - one slider adjusts both displays, and the second applies the filter to the lower one, which is hard to distinguish from a real brightness change on OLED. An easy fix would be to make sure no filters are available for any eDP displays.
Comment 5 Bug Janitor Service 2024-12-12 03:46:41 UTC
๐Ÿ›๐Ÿงน โš ๏ธ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 6 hacker1024 2025-02-26 01:28:22 UTC
Plasma 6.3 has seemed to fix this, so I'll close this report.