More advanced power savings (rev. the DPMS extension).

Egbert Eich eich at suse.de
Sun Jul 30 12:47:27 PDT 2006


Jay Cotton writes:
 > 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.

OK, this is the case for most of the chips we support.

 > >
 > > 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.

Right - at least in most cases (not im Jim's case). 
That's why I don't understand why both need to be decoupled.

 > > 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.

If you had a driver hook for DPMS (like our DDX does) you can do
something smart about the framebuffer when the screen is powered
down. 
You know that:
a. The screen isn't expected (and probably can't) display anything.
b. Until a CRT is back to full brightness it will take a few tenth
   of a second. You have enough time to turn the chip back on and
   restore your framebuffer content.

 > > 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 

So you can update the framebuffer without turning graphics components
back on?

 > 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.  

OK, how do you know that the user isn't looking at the screen - besides
using input activety to know that the user is active?

 > 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.

It would be very confisung to leave the screen on but not update
the content. I often times read thru documents, think about them
and don't do any input for a while which will let the screensaver
kick in.
This gives me a visual impression (although it's disturbing) that
the system has shut down the system because it thinks nobody is
looking at it.
Looking at a screen reading from one window while the other
window silently stops updating appears confusing to me.
I don't want that. I would like to know when the system makes
an assumption that is incorrect in a particular situation.

 > Also, in discussion with Jim, I think we will modify the code.  See 
 > latter email.

Right. Jim needs something different: his stuff needs to be output
triggered. He wants to wake up the chip whenever there is something
new to display.

Cheers,
	Egbert.



More information about the xorg mailing list