More advanced power savings (rev. the DPMS extension).
Jay Cotton
Jay.Cotton at Sun.COM
Sat Jul 29 15:51:13 PDT 2006
Egbert Eich wrote:
> Jay, I've got a couple of questions here:
>
> Jay Cotton writes:
> >
> > Frame Buffer Power Management (FBPM) Extension
> >
> > Library Specification
> >
>
> What is a framebuffer for you?
> We use the term framebuffer for the memory that holds the
> screen content including the non visible caches.
> It seems like 'framebuffer' refers to everything that controls
> video out on a graphics chipset - but does it also include
> screen content update thru a. software b. 2d or 3d accel
> engines? It may even be conceivable to disable the entire chip
> and either save the framebuffer content somewhere else and/or
> require apps to repaint on power up. The different state may
> do different levels of hardware shutdown.
>
I'm thinking of a board or welded onto the mobo type of device. It
generates the sync
and handles the screen memory.
> > 1. Overview
> >
> > This extension provides X Protocol control over the Frame
> > Buffer Power Management (FBPM) characteristics of Excali-
> > berFp
> > class video boards under control of the X Window System.
> >
> > Traditionally, the X Window System has provided for both
> > blanking and non-blanking screen savers. Timeouts associ-
> > ated with these built-in screen saver mechanisms are limited
> > to idle (dwell) time, and a change timeout that specifies
> > the change interval for non-blanking screen savers.
> >
> > The United States' Environmental Protection Agency (EPA)
> > Energy Star program requires that monitors power down after
> > some idle time by default. However in the case of Excaliber
> > and follow on products, power management has been extended
> > to include other parts of the computer. For the Frame
> > Buffer, Excaliber can remove power from the frame buffer
> > under program control.
> >
> > There are four power levels specified by the Video Electron-
> > ics Standards Association (VESA) Display Power Management
> > Signaling (DPMS) standard. These are mapped onto the X FBPM
> > Extension like this:
> >
> > 0 FBPMModeOn In use
> > 1 FBPMModeStandby In standby mode.
> > 2 FBPMModeSuspend In suspend mode.
> > 3 FBPMModeOff Shut off, awaiting
> > activity
> >
>
> What is the benefit of decoupling framebuffer and screen power
> management? The extension doesn't make any statement if the
> screen content remains visible or not. Therefore apps that use
> this extension cannot make any assumption here.
> The initial coupling to DPMS even suggests that the screen content
> is no longer visible on the output device when the 'framebuffer'
> is powered down.
>
Thats is a confusing thing. In fact if the frame buffer is powered
down, the screen will be
undefined. i.e. not working.
> On the other hand the extension may be usable for Jim's purposes:
> One could write an app that listens for screen updates using
> DAMAGE. If the screen hasn't been updated for a while it would
> force a transition to a power save state.
> The only problem is that it will wake up when system has also
> reached a DPMS power save state (due to lack of input activety
> for a while) and the user hits a key - as in this situation a
> DPMS state transition takes place which will synchronize the
> FB and DPMS states again.
>
The original idea for FBPM was to add control for the screen in a
somewhat independent
form. So, we could control the frame buffer power without modifying DPMS.
> However if no power save state hasn't been entered yet (as none
> of the timeouts have expired yet) the FB will remain in it's
> powered down state.
> While one may argue that an input event will most likely cause
> something to be drawn to the screen and this the chip to wake up
> it still seems to be awkward to combine the two,
>
On sparc systems the FB memory was mapped in such a way that the server
was able to
write to 'what it thinks' is memory and not wake up the screen. We wait
for mouse/keyboard
to wake up the screen. Also API is used to force the screen back on
when an urgent need
is detected.
The overall vision for power management has been that "If the user is
not looking at the screen
there is no point is drawing on it". This works almost all the time.
Exceptions are, long render
times for OGL or maybe power plants or something. But you can turn off
FBPM if your at
a power plant.
>
> >
> > The FBPMForceLevel function puts the frame buffer into the
> > requested level, regardless of the DPMS power state. Note,
> > the level will revert to track DPMS at the next DPMS power
> > state transition.
> >
> > See table below for values of level.
> >
> > FBPMModeOn Force frame buffer to on.
> > FBPMModeStandby Force frame buffer to standby.
> > FBPMModeSuspend Force frame buffer to suspend.
> > FBPMModeOff Force frame buffer to off.
> >
>
> Cheers,
> Egbert.
>
Also, in discussion with Jim, I think we will modify the code. See
latter email.
JC
More information about the xorg
mailing list