On Tue, Apr 16, 2024 at 11:00:12AM +0300, Jani Nikula wrote: > On Fri, 05 Apr 2024, José Relvas <josemonsantorelvas@xxxxxxxxx> wrote: > > The best approach here would probably be to expose a similar attribute to amdgpu's > > "panel_power_savings", with a scale that controls the feature's aggressiveness, > > then update userspace tools, including power-profiles-daemon, to set the value > > based on the intended energy scheme. > > I don't really know what panel_power_savings does or how it works, but > clearly it's not how this particular thing works on Intel > hardware. There isn't a trivial knob you could adjust. I've investigated this further. AMD's marketing name for it is "Vari-Bright" and, on Windows, can be controlled through their gfx control panel, with a 4-level slider. Internally, it seems to be called "Adaptive Backlight Modulation" (ABM). It increases the brightness of the image to account for a lower backlight level. I had a cursory look at the amdgpu driver, but I'm not sure if the algorithm is there, or if its handled in firmware. > Where you have to add an API for reading the image histogram, add an API > to set the image enhancement parameters, and how that function works is > userspace policy that needs to be implemented in userspace. Hmm... this could be handled by a daemon. Said daemon could hook into PPD's state to check if it should be trying to save power. - One more question. Some documentation refers to "OPST (OLED power saving technology)". It's my understanding that this uses the same hardware blocks and APIs as DPST - only the algorithm in software is different. Userspace would need a way to distinguish OLED panels from LCD panels so it can use the right algorithm. Is there a reliable way of doing this? On my Thinkpad P1 gen 6, the OLED exposes a standard intel_backlight, which actually controls the PWM. Afaik, there's no other way of telling OLED and LCD apart in userspace. José Relvas