More advanced power savings (rev. the DPMS extension).
Jim Gettys
jg at laptop.org
Wed Jul 26 05:51:32 PDT 2006
If I could find it, it might.... Where is the code/docs?
Regards,
- Jim
On Tue, 2006-07-25 at 21:32 -0700, Jay Cotton wrote:
> Hi Jim:
>
> I wonder if this is a good use for FBPM (frame buffer power management)?
>
> This extension allows you to get your power management done without changing
> DPMS.
>
> JC
>
> Jim Gettys wrote:
> > Problem statement
> > =================
> >
> > We have a display that is new: it is possible the chip driving
> > the panel to take over panel update from the processor. We can save
> > significant power if, while displaying an idle screen, we power down the
> > processor's video driver logic, and even more power if we power down the
> > graphics processor itself. To resynchronize the display will take a
> > couple frame times, so for highly interactive scenes, this behavior is
> > not desirable; but when the screen is idle for any significant length of
> > time, it is.
> >
> > Hard-wiring these values into the X server seems like a poor plan; the
> > latencies of powering up a GPU will vary (it can take time to stabilize
> > clocks and another power domain on graphics chips), and it will likely
> > usually take of order 2 frame times (and hardware interrupt driver
> > support) to transfer control of screen refresh back to the processor,
> > and such transitions may vary, depending on the hardware.
> >
> > I expect it is likely such displays and power controllable GPU's will
> > become much more common in the future.
> >
> > Suggested course of action
> > ==========================
> >
> > It appears that making a minor revision to the DPMS extension may be
> > most appropriate, adding a request or two to set timeouts for video and
> > GPU powerdown when the screen is idle.
> >
> > Plan 1
> > ------
> > The first approach (plan 1) I'll describe would be to actually *use* the
> > defined VESA Power Level States for the first time in a useful fashiond,
> > mapping these in the following semantic ways that may make sense.
> >
> > val Name Definition according to VESA
> > ---
> > 0 DMSModeOn In use
> > 1 DPMSModeStandby Blanked, low power
> > 2 DPMSModeSuspend Blanked, lower power
> > 3 DPMSModeOff Shut off, awaiting activity
> >
> > val Name New Definition
> > ---
> > 0 DMSModeOn In use
> > 1 DPMSModeStandby Screen on, processor video off
> > 2 DPMSModeSuspend Screen on, processor video off, GPU off
> > 3 DPMSModeOff Shut off, awaiting activity
> >
> >
> > Plan 2
> > ------
> > A second approach (plan 2) is to add a few states, and insert them
> > between state 0 and state 1, if they are defined to be non-zero, and
> > have the extension do the usual state transitions from low to high.
> >
> > Previous insane design
> > ======================
> >
> > Unfortunately, for reasons that are completely lost in the mists of
> > time, the timeouts in the DPMS extension are specified in seconds as
> > CARD16's, rather than the more natural X Timestamp CARD32 units of 1
> > millisecond, and to top it off, these CARD16 choices even show through
> > the DPMS library. Ugh.... As if saving 16 bits on setting DPMS values
> > was going to be a performance win or something....
> >
> > Due to this insane design, no matter what, I'll have to add a few
> > requests. Sigh.
> >
> > But the first question I'll make to the list is, do you like plan 1, or
> > plan 2, or Plan 9 from Outer Space ;-)
> >
> > If you like plan 2, then the question is how many additional states do
> > we really need, anyway? How should we define them?
> >
> > - Jim
> >
>
--
Jim Gettys
One Laptop Per Child
More information about the xorg
mailing list