Skip to content

lxqt-backlight: Discrepancy in reading and writing of brightness #263

Open
@hch12907

Description

@hch12907

lxqt-backlight gets the brightness value from /sys/class/backlight/*/actual_brightness instead of /sys/class/backlight/*/brightness and then proceeds to write the processed actual_brightness into brightness. (Not like you have the permission to write into actual_brightness anyway...)

This is fine actually, but amdgpu_bl0 returns the raw brightness value (0-65536) for actual_brightness while brightness accepts only values between zero to max_brightness which is 255. When lxqt-backlight writes the processed actual_brightness to brightness, the brightness gets ramped up to 100% as the processed raw values are often in the range of 10000 to 20000, which get clamped to 255 when written to brightness.

Interestingly, this behaviour is not observed when one sets a brightness value directly - it only occurs when one increases or decreases the brightness through lxqt-config-brightness -i/-d. lxqt-config-brightness -s 20 and pkexec lxqt-backlight_backend 20 % does what one would expect: setting the brightness value to 20% of the maximum. This is because both of them do level / 100 * max_brightness instead of actual_brightness and hence is not affected by the bug.

Expected Behavior

The brightness value should be obtained from /sys/class/backlight/*/brightness.

Current Behavior

The brightness value is obtained from /sys/class/backlight/*/actual_brightness.

Possible Solution

For raw drivers, read from brightness instead of actual_brightness. I'm not sure about the other driver types.

Steps to Reproduce (for bugs)

1. Have a laptop with an integrated AMD GPU. Raven Ridge (Vega 7) in my case.
2a. Attempt to increase/decrease the brightness value, and blind your eyes. (lxqt-config-brightness)
2b. Attempt to increase/decrease the brightness value, and nothing happens. (lxqt-backlight_backend)
(lxqt-backlight_backend includes a check for value < max_value before writing to brightness)

System Information
  • Distribution & Version: Arch Linux (rolling)
  • Kernel: 5.7.8
  • Qt Version: 5.15.0-4
  • libqtxdg Version: 3.5.0
  • lxqt-build-tools Version: N/A
  • liblxqt version: 0.15.1-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions