* [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
@ 2024-04-05 13:58 José Relvas
2024-04-16 8:00 ` Jani Nikula
0 siblings, 1 reply; 4+ messages in thread
From: José Relvas @ 2024-04-05 13:58 UTC (permalink / raw)
To: intel-gfx
Hey folks,
I've noticed that power-profiles-daemon recently added support for AMD's panel power saving technology with this MR:
https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/merge_requests/137
It appears to be controlled via a panel_power_saving SYSFS property.
This reminded that Intel has a similar technology. RPL's datasheets confirm this:
https://edc.intel.com/content/www/us/en/design/products/platforms/details/raptor-lake-s/13th-generation-core-processors-datasheet-volume-1-of-2/display-power-savings-technologies/
> The Intel® DPST technique achieves back-light power savings while maintaining
> a good visual experience. This is accomplished by adaptively enhancing the
> displayed image while decreasing the back-light brightness simultaneously.
> The goal of this technique is to provide equivalent end-user-perceived
> image quality at a decreased back-light power level.
> Intel® OPST solution uses same HW infrastructure as Intel® DPST. Frames are
> processed using frame change threshold based interrupt mechanism similar
> to Intel® DPST. Intel® OPST SW algorithm determines which pixels in the
> frame should be dimmed to save power keeping visual quality (such as contrast, color)
> impact to acceptable level. Since there is no backlight for OLED panels,
> the power savings come solely from pixel dimming.
However, it doesn't seem like i915 has any support for this. Searching online was
ineffective too:
- I found mentions of /sys/class/drm/card0/power/i915_dpst, but it doesn't seem to exist,
at least not anymore.
- A i915.dpst parameter was also brought up, but it doesn't seem to exist either.
Interestingly, all mentions of dpst on Linux were referring to Android, so maybe
this was a downstream thing with Android?
In any case, I found this email in the archive which confirms
that DPST was not supported (at least in 2012):
https://lore.kernel.org/intel-gfx/50ADFFB3.8030907@linux.intel.com/
Since AMD's equivalent to DPST is now supported by their driver and being used by userspace,
it seems like a sensible idea to implement this for i915. I've confirmed that this feature
has existed since (at least) Haswell (released over a decade ago!) so implementing it
would likely net a few energy consumption improvements for a large chunk of Intel laptops.
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.
Thanks for reading,
José Relvas
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
2024-04-05 13:58 [REQUEST] Add support for Intel DPST (Display Power Saving Technology) José Relvas
@ 2024-04-16 8:00 ` Jani Nikula
2024-04-16 9:41 ` José Relvas
0 siblings, 1 reply; 4+ messages in thread
From: Jani Nikula @ 2024-04-16 8:00 UTC (permalink / raw)
To: José Relvas, intel-gfx; +Cc: Shankar, Uma
On Fri, 05 Apr 2024, José Relvas <josemonsantorelvas@gmail.com> 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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
2024-04-16 8:00 ` Jani Nikula
@ 2024-04-16 9:41 ` José Relvas
2024-04-16 12:41 ` Jani Nikula
0 siblings, 1 reply; 4+ messages in thread
From: José Relvas @ 2024-04-16 9:41 UTC (permalink / raw)
To: Jani Nikula, intel-gfx
On Tue, Apr 16, 2024 at 11:00:12AM +0300, Jani Nikula wrote:
> On Fri, 05 Apr 2024, José Relvas <josemonsantorelvas@gmail.com> 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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [REQUEST] Add support for Intel DPST (Display Power Saving Technology)
2024-04-16 9:41 ` José Relvas
@ 2024-04-16 12:41 ` Jani Nikula
0 siblings, 0 replies; 4+ messages in thread
From: Jani Nikula @ 2024-04-16 12:41 UTC (permalink / raw)
To: José Relvas, intel-gfx
On Tue, 16 Apr 2024, José Relvas <josemonsantorelvas@gmail.com> 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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-04-16 12:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-05 13:58 [REQUEST] Add support for Intel DPST (Display Power Saving Technology) José Relvas
2024-04-16 8:00 ` Jani Nikula
2024-04-16 9:41 ` José Relvas
2024-04-16 12:41 ` Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox