More advanced power savings (rev. the DPMS extension).
Jay Cotton [TEMP]
Jay.Cotton at Sun.COM
Wed Jul 26 11:04:52 PDT 2006
Jim:
The code is not free range yet. Attached is the lib spec. If you think
this would help your project, then I will push out the bits.
JC
Jim Gettys wrote:
>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
>>>
>>>
>>>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: FBPMLib.txt
URL: <http://lists.x.org/archives/xorg/attachments/20060726/9b129a2c/attachment.txt>
More information about the xorg
mailing list