Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
On Tue, 16 Apr 2024, José Relvas wrote: > 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. The intel_backlight interface can actually control the brightness of the OLED panel using the DPCD interface, not only backlight PWM. It depends on the panel. See intel_dp_aux_backlight.c. (And yes, backlight can be a misnomer here, since OLED does not have a backlight.) I don't actually know the details of OPST, but some OLED panels I've worked with in the past have CABC, or content adaptive brightness control, where all of it is handled internally in the panel. You just tune the aggressiveness or some other mode. BR, Jani. -- Jani Nikula, Intel
Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
On Tue, Apr 16, 2024 at 11:00:12AM +0300, Jani Nikula wrote: > On Fri, 05 Apr 2024, José Relvas 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
Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
On Fri, 05 Apr 2024, José Relvas 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. Basically the goal is to reduce display brightness (and thus power consumption) based on display content with the high level idea of: reduced brightness, image enhancement params = fn(brightness, histogram) 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. BR, Jani. -- Jani Nikula, Intel