Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 24

Windows 8 Brightness Control for Integrated Displays

September 28, 2012

Abstract

This document provides information about brightness control for integrated displays on systems running the Windows 8 operating system. It describes brightness-related user experiences and provides guidelines for system manufacturers to expose brightness control infrastructure to Windows. Additionally, it provides power policy configuration information and details on how to observe and validate brightness changes using the PwrTest utility. A checklist of guidelines for system manufacturers is provided at the end of this document. This information applies to the following operating systems: Windows 8 References and resources discussed here are listed at the end of this paper. The current version of this paper is maintained on the Web at: Windows 8 Brightness Control for Integrated Displays

Disclaimer: This document is provided as-is. Information and views expressed in this document, including URL and other Internet website references, may change without notice. Some information relates to pre-released product which may be substantially modified before its commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. You bear the risk of using it. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. 2012 Microsoft. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 2

Document History

Date September 28, 2012 June 27, 2012

Change Updated to reflect rebranding First publication

Contents
Introduction ................................................................................................................... 3 Brightness Control User Experiences ............................................................................. 3 Settings Charm ...................................................................................................... 3 Hardware Buttons (Hot Keys) .................................................................................... 4 Ambient Light Sensor ................................................................................................. 5 Desktop Experiences: Power Options, Windows Mobility Center, and Battery Meter Warnings .................................................................................................................... 5 Brightness Control Platform Infrastructure ................................................................... 7 WDDM Driver DDI Brightness Control Interface........................................................ 7 Smooth Transitions .................................................................................................... 8 Scenario-based Backlight Power Optimization .......................................................... 8 Integration with Hardware Buttons (Hot Keys) ......................................................... 9 HID-based Brightness Hotkeys .............................................................................. 9 ACPI-based Brightness Hotkeys ........................................................................... 10 Integration with Ambient Light Sensor Devices ...................................................... 10 Brightness Control Settings and Actions ...................................................................... 11 Display Brightness .................................................................................................... 11 ALS-based Automatic Brightness (Adaptive Brightness) ......................................... 11 Automatic Display Dimming .................................................................................... 12 Other Settings .......................................................................................................... 14 Guidelines for Brightness Control Policy Configuration .......................................... 16 Best Practices for Software Developers................................................................... 17 Putting it all Together: How Actual Display Brightness is Determined ........................ 17 Validation of Platform Brightness Control ................................................................... 18 The PwrTest MONITOR Scenario ............................................................................. 18 Observation of Brightness Level Changes with the MONITOR Scenario ................. 19 Checklist of Guidelines for System Manufacturers ...................................................... 20 References.................................................................................................................... 23

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 3

Introduction
A well-designed and calibrated display is an important element in providing a fluid user experience on a Windows 8 PC. However, differences in display technology, outside lighting conditions, and user preferences may demand variances in display brightness levels. In addition, the display is often the greatest consumer of power in a portable computer. As a result, a key determinant of a portable PCs battery life is the power consumed by its display. To achieve an optimal end-user experience while not compromising battery life, Windows 8 provides a rich infrastructure to control and automatically adjust display brightness. Windows 8 provides a range of new and intuitive user interfaces (UIs) to control display brightness and other related settings through its new Windows Settings Charm interface. In addition, it displays a new overlay slider UI upon brightness changes invoked by keyboard hot keys. Other new features include support for hot key brightness changes based on the Human Interface Device (HID) protocol, enhanced support and algorithms for adaptive brightness adjustments based on changes in outside lighting conditions, as well as new support and requirements for smooth brightness transitions and scenario-based backlight power optimization. In addition, Windows 8 separates brightness policies from the actual display brightness. This allows users to modify or view the brightness policies irrespective of the actual brightness levels supported by the display (for further details refer to How Actual Display Brightness is Determined). In Windows 8, the primary mechanism by which a platform should expose its display brightness control functionality is the Windows Display Driver Model (WDDM) miniport Device Driver Interfaces (DDI). The underlying brightness control infrastructure is configured by using a number of power policy settings. System manufacturers can customize a select subset of these settings based on the target platforms or display technologies System manufacturers and firmware developers should review this document for details on the Windows brightness control infrastructure, new user experiences, and power policy configuration details for display brightness. A summarized checklist of guidelines for system manufacturers is provided at the end of this document.

Brightness Control User Experiences


Windows 8 improves the brightness user experience by providing users new and intuitive brightness controls, combined with the familiarity of fine-grained controls on the desktop in Power Options and Windows Mobility Center. Users have quick and easy access to change screen brightness from the Settings Charm. When pressing a brightness hardware button, an overlay gives the user immediate feedback on the brightness change. Additionally, on systems equipped with an Ambient Light Sensor (ALS), Windows automatically calculates the optimal brightness level, which users can override from PC Settings.

Settings Charm
The Settings Charm is the users primary interaction point for setting the display brightness. After selecting Settings Charm, the brightness change slider can be invoked by tapping down or clicking on Screen. Dragging the slider up or down adjusts the display
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 4

brightness: moving up brightens the screen, moving down dims the screen. Figure 1 illustrates the steps. Brightness changes through this interface persist across system power transitions (e.g. sleep and restart) and effectively overwrite the brightness level for the current power mode (i.e. plugged-in or on-battery).

Figure 1. Using Settings Charm to change brightness.

Hardware Buttons (Hot Keys)


Many portable computers include hardware buttons or hot keys for changing the display brightness. Typically, users access these hot keys by pressing a function (Fn) button in combination with another key on the keyboard. In Windows 8, each time the brightness up (or down) hot keys is pressed, the display brightness will increase (or decrease) by 10%, regardless of the number of supported brightness levels. For further details on hot keys and how the Windows display brightness is translated to an actual display brightness level refer to Sections 0 and 0. Hot key-based brightness changes will invoke a brightness overlay on the upper left corner of the display. The overlay provides feedback to the user by showing the new brightness level. Similar to the Settings Charm, users can tap or click on the overlay and drag up or down to easily specify a relative brightness. Figure 2 illustrates the brightness overlay.

Figure 2. Overlay displayed upon hot key brightness changes.


September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 5

Ambient Light Sensor


On PCs that are equipped with an integrated Ambient Light Sensor (ALS), Windowss Adaptive Brightness Feature will automatically calculate the optimal brightness level based on the brightness slider setting and current ambient lighting. Users have the option to turn off automatic brightness adjustment from PC Settings, on the General page. Figure 3 illustrates the corresponding steps and user interfaces.

Figure 3. User interface control for ALS-based automatic brightness adjustments.

Desktop Experiences: Power Options, Windows Mobility Center, and Battery Meter Warnings
Similar to Windows 7, the Power Options Control Panel and Windows Mobility Center provide brightness sliders. These sliders have the same effect as the slider in the Settings Charm fly out moving the level up or down changes the display brightness level.

Figure 4 (left) and Figure 5 illustrate these controls. In addition, users can set the default brightness both for when the computer is running on battery and when it is plugged-in. This functionality is available in Power Options by clicking Change plan settings for one of
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 6

the power plans. This displays the Edit plan settings page, shown in

Figure 4 (right), in which users can easily adjust brightness. These brightness changes persist across system power transitions (e.g. sleep and restart) and effectively overwrite the brightness level for the current power mode (i.e. plugged-in or on-battery).

Figure 4. Brightness control in the Power Options and Edit Plan Settings pages

Figure 5. Brightness control in the Windows Mobility Center

As in Windows 7, the battery meter in the desktop Notification Area displays a warning if the system is operating on battery and the display brightness is set to a level that is greater than the default display brightness of the battery policy for the active power plan. System manufacturers can adjust the default values for the display brightness policy for their
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 7

systems to target the many display types and brightness levels in the Windows ecosystem. The display brightness warning is based on the default value of the on-battery display brightness policy in the current power plan. If a system manufacturer does not customize the default values for the display brightness policy, the default value for the On-Battery display brightness is 40 percent. Figure 6 illustrates this warning.

Figure 6. Battery meter brightness level warning

Windows also offers controls for various display brightness policies in the Advanced settings dialog box (see Figure 7). Users can open this box by clicking the Change advanced power settings link on the Edit plan settings page. For the detailed meaning of these policies refer to Brightness Control Settings and Actions.

Figure 7. Power Options Advanced settings dialog box

Brightness Control Platform Infrastructure


This section summarizes the platform requirements for supporting brightness control functionality on a Windows PC.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 8

WDDM Driver DDI Brightness Control Interface


Windows interfaces with the WDDM graphics driver to determine the presence of an integrated display. If an integrated display is detected, Windows will query the WDDM driver for the DXGK_BRIGHTNESS_INTERFACE_2 interface. This interface is mandatory for all WDDM 1.2 drivers. The presence of this interface indicates that the driver supports brightness control of the integrated display. The WDDM driver must implement this interface as defined by the Windows Hardware Certification Requirement System.Client.BrightnessControls. A key new requirement for the driver is to support 101 brightness levels. For backward compatibility with Windows 7 systems, Windows 8 still supports brightness control using ACPI. However, new features like smooth brightness will not be available on such systems. To avoid problems that might occur if the system BIOS and the monitor driver both control display panel brightness, the display miniport driver should set bit 2 of the argument to the _DOS ACPI control method. With the setting of bit 2, the system BIOS is informed that it should not perform any automatic brightness changes. The WDDM driver must set this particular bit because it controls the _DOS method. The other bits in the _DOS methods are used to control the BIOS behavior for display switch shortcut keys. For more information about the _DOS method and its arguments, see Appendix B of the ACPI specification.

Smooth Transitions
Windows 8 is designed to provide a fast and fluid user experience. Prior to Windows 8, brightness changes were typically initiated by the end user through either a UI or hot keys. Windows 8 is optimized to automatically adjust the brightness based on the outside lighting condition as measured by the Ambient Light Sensor (ALS). In such a scenario, the brightness level is adjusted without direct user input. Traditionally, all brightness changes from one level to another have been done as a step change. While this is functional, it can be visually jarring and not a fluid user experience. Windows 8 enables the WDDM graphics driver to implement a smooth transition of the brightness from one level to another. This is supported by the DXGK_BRIGHTNESS_INTERFACE_2 and is a mandatory requirement for WDDM 1.2 drivers. The WDDM driver must implement this interface as defined by the Windows Hardware Certification requirement System.Client.BrightnessControls.SmoothBrightness. For this feature, the driver must make many incremental steps from the start level to the target level, without depending on the embedded controller for smoothness. To achieve the smoothness, the driver will need to customize the number of steps and the time interval at each step based on the panel characteristics of the integrated panel. However, the transition must complete in less than 500 ms. At this time, Microsoft has not defined any particular curve to use for the smooth transition and the OEM and the IHV must work together to determine the optimal curve. For the complete list of requirements refer to the Windows Hardware Certification Requirements.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 9

Scenario-based Backlight Power Optimization


All portable Windows 8 devices are expected to deliver extended battery life. This is particularly true for thin and lightweight touch-based tablet devices. The display backlight is one of the greatest consumers of power in these devices. The amount of power consumed by the display is often directly proportional to the brightness level produced by the backlight. The most intuitive option to improve battery life would be to reduce screen brightness. However, in many cases this would negatively impact the user experience; it could also make text difficult to read or video dark to watch. However, it is possible to reduce screen backlight to improve battery life without having a significant impact on the user experience. This can be achieved by enhancing the contrasts of individual pixels to compensate for the lower backlight level of the display. The Windows hardware ecosystem has innovated in this area and designed algorithms to consume less battery power by optimizing the backlight level in certain scenarios. This is called scenario-based backlight power optimization. There exist some scenarios where such an optimization can be enabled without having a significant negative impact on the user experience. The key characteristic of such a scenario is a series of rapidly changing frames. This is typically seen in scenarios like video playback. Other possibilities are game playing. In order not to compromise user experience in other scenarios, Windows 8 offers a scenario-based policy based on which such optimization can be enabled. The amount of optimization can be customized by the implementer. However the optimization must balance delivering on the rich visual experience against the desired battery life. The OEM must work with the IHV to define the optimization level and ensure that the end user experience is not impacted. This is supported by the WDDM DXGK_BRIGHTNESS_INTERFACE_2 and must be implemented by WDDM 1.2 drivers. In brief, Windows sets the current scenario by using the DxgkDdiSetBacklightOptimization function, and the WDDM driver is required to honor the intent of the scenario. Using the constant values of the DXGK_BACKLIGHT_OPTIMIZATION_LEVEL enumeration, scenarios range from DxgkBacklightOptimizationDisable, in which the driver is required to completely disable all backlight optimizations, to DxgkBacklightOptimizationDesktop, DxgkBacklightOptimizationDynamic, and DxgkBacklightOptimizationDimmed, where the driver is required to enable backlight optimizations at various aggressiveness levels. For more details, see DXGK_BACKLIGHT_OPTIMIZATION_LEVEL in the WDK documentation and the System.Client.BrightnessControls.BacklightOptimization requirement in the Windows Hardware Certification Requirements. Similar to smooth brightness control, the optimization is dependent on the panel characteristics, and the IHV must work with the OEM to determine the ideal optimization. Scenario-based backlight optimization must also be tested with adaptive brightness enabled. It must be tested under different lighting conditions and brightness levels. The smooth brightness must continue to work even while scenario-based backlight optimization is enabled.

Integration with Hardware Buttons (Hot Keys)


Windows supports two main mechanisms for changing brightness through keyboard shortcuts (hot keys): Human Interface Device (HID), and ACPI notifications.
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 10

HID-based Brightness Hotkeys


A large fraction of keyboards on SoC-based portable laptop use HID over I2C (or over USB) to communicate with the host. Windows 8 has added new support and standardized a solution for keyboards (external or embedded) to control the display brightness on a laptop or slate via HID. Using HID is the preferred solution for implementing hotkeys: it further reduces the need for an embedded controller on the main board of a Windows PC, resulting in reduced system manufacturing costs and power consumption. In addition, as it will be detailed below, using HID obviates the need for system developers to implement auto-repeat when a hot key is pressed and held. Windows 8 ships with a HID class driver, as well as the corresponding HID I2C and HID USB miniport drivers. As a result, device vendors adhering to the HID protocol will not be required to implement any of these drivers. Instead, HID-compliant keyboards are only required to report a set of usages in their device firmware. Windows will use the usages reported by the device firmware and its own drivers to parse and act on the keyboard reports generated as a result of user keystrokes. In order to support brightness change through hotkeys, PC manufacturers should use the HID Usages in Table 1 as part of their consumer controls collection. Each hotkey button press results in an increase or decrease in the display brightness level policy value (see Table 2) by at least 10 percent until the next available 10-percent increment is reached (for example, 10, 20, 30, ..., 90, 100). In addition, Windows 8 implements continuous brightness increase or decrease when either of the brightness up or down buttons are pressed and held down. More specifically, Windows internally implements an auto-repeat functionality when those buttons are pressed and held down. Therefore, the firmware in the keyboard controller should not attempt to implement auto-repeat.
Table 1. HID - Usages on consumer controls page supported in Windows 8 Usage ID Usage name Usage type 0x006F 0x0070 Brightness Increment Brightness Decrement Re-trigger Control (RTC) Re-trigger Control (RTC)

For further details on keyboard implementation in Windows 8 and HID refer to Reference 0.

ACPI-based Brightness Hotkeys


Brightness control hot keys on the keyboard may also be implemented by using ACPI notifications. These notifications are targeted to the integrated display device, not to the graphics adapter. Windows supports the following ACPI notifications for keyboard hot key implementations:
#define #define #define #define ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY 0x85 0x86 0x87 0x88

These notifications are described in the ACPI specification, version 3.0 and later. Typically, an implementation does not support all four of these notifications. The commonly supported notifications include ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY and
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 11

APCI_NOTIFY_DEC_BRIGHTNESS_HOTKEY. Similar to HID-based implementation, each hotkey button press results in an increase or decrease the display brightness level policy value (see Table 2) by at least 10 percent until the next available 10-percent increment is reached (for example, 10, 20, 30, ..., 90, 100). To implement continuous brightness increase or decrease when either of the brightness up or down buttons are pressed and held down, the system should repeatedly send the corresponding ACPI notifications. The first repeated notification should be sent 500ms after a button is pressed and held. The repeat rate should be such that there is a total endto-end delay of 2.5 seconds to reach from 0 to 100 (or vice versa).

Integration with Ambient Light Sensor Devices


Windows 8 provides native support for Ambient Light Sensors (ALS). If a platform includes ALS hardware, we recommend that system manufacturers use the guidelines provided in Reference 0 to fully integrate the ALS hardware with Windows.

Brightness Control Settings and Actions


The configuration of the brightness control policies (settings) is performed through updates to the Windows power policy. For example, the Windows power policy includes the default display brightness level when the system is plugged in and when it is running on battery. System manufacturers should understand the brightness control policies for Windows 8 and customize a subset of them as appropriate for their systems. For more details, see the Guidelines for Brightness Control Policy Configuration and Table 12 at the end of this section. The rest of this section provides a detailed list of power policy settings related to display and brightness.

Display Brightness
The default display brightness is configured as a power policy setting with separate onbattery and plugged-in brightness levels. This setting, referred to as display brightness, is described in Table 2. Each time the user changes the display brightness through the UI sliders or brightness hot keys, the display brightness policy setting is updated for the current power source (such as on-battery) and power plan (such as balanced).

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 12

Table 2. Display brightness setting Name Display brightness Description GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device. aded5e82-b909-4619-9949-f5d71dac0bcb 0 100 Percentage (%) No Available in Windows Vista and later versions of Windows.

ALS-based Automatic Brightness (Adaptive Brightness)


On PCs that are equipped with an integrated ambient light sensor (ALS), if the adaptive brightness feature is enabled, Windows will automatically calculate the optimal brightness level based on the brightness slider setting and the current ambient lighting. The enable adaptive brightness setting can be used to enable or disable this feature. For further details refer to Table 3.
Table 3. ALS-based automatic brightness (adaptive brightness) setting Name Enable adaptive brightness Description If enabled, Windows will automatically calculate the optimal brightness level based on the default brightness setting and current ambient lighting. fbd9aa66-9553-4097-ba44-ed6e9d65eab8 ADAPTBRIGHT 0 1 Percentage (%) No Available in Windows Vista and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Automatic Display Dimming


Windows automatically reduces the brightness level of an integrated display after a period of user inactivity. The functionality of this feature is configured with a set of power policy settings. The primary setting for this feature is the dim display after setting, which is described in Table 4. This setting configures the amount of user inactivity after which the system automatically reduces the display brightness level.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 13

Table 4. Dim display time-out setting Name Dim display after Description The period of inactivity before the display brightness is automatically reduced. This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device. 17aaa29b-8b43-4b94-aafe-35f64daaf1ee VIDEODIM 0 (never automatically reduce display brightness) Maximum Integer Seconds No Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Windows automatically extends dim idle time-out based on user input activity. For example, if the display brightness level is dimmed because of user inactivity but user input is detected within 5 seconds of the brightness level transition, dim idle time-out period automatically doubles. The adjusted time-out value can be extended up to the display power-off time-out. The adjusted time-out value is temporary. It is automatically reset back to the dim idle time-out setting that is specified in the power policy after a successful dim transition in which no user input is detected immediately following the transition. When the dim idle time-out expires, Windows changes the display brightness to the value specified in the dimmed display brightness setting. This setting is described in Table 5, which is by default set to 50%. Starting in Windows 8, this setting represents a relative percentage. That is, once Windows decides to dim the display, the value of this setting is multiplied by the current display brightness (see Table 2) to arrive at the new actual display brightness. For example, if the system is in DC and the default DC brightness level is 40%, a 50% dim would change the actual brightness level to 20%. The system manufacturer should customize these default values based on the system's display technology and relative brightness levels.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 14

Table 5. Dimmed display brightness setting Name Dimmed display brightness Description Reduced display brightness level after the dim idle time-out (dim display after) has been reached. The value of this setting is multiplied by the current display brightness to arrive at the new actual display brightness. This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device. f1fbfde2-a960-4165-9f88-50667911ce96 0 100 % (Percentage) No Available in Windows 7 and later versions of Windows (note the modified behavior in Windows 8).

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Table 6. Increase dim timeout setting Name Increase adaptive timeout by Description The percentage of the dim idle time-out value by which to automatically increase the dim idle time-out value if user annoyance is detected. This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device. Usually, this setting should not be changed from the default value. eed904df-b142-4183-b10b-5a1197a37864 VIDEOADAPTINC 0 (do not automatically extend the dim idle time-out when user annoyance is detected) 100 % (Percentage) Yes Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 15

Table 7. Dim annoyance time-out setting Name User annoyance timeout Description The user annoyance detection threshold. This setting specifies the duration between automatic display dimming and user input to consider the automatic display brightness level reduction an annoyance to the user. This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device. Usually, this setting should not be changed from the default value. 82dbcf2d-cd67-40c5-bfdc-9f1a5ccd4663 VIDEOANNOY 0 (do not detect user annoyance) Maximum Integer Seconds Yes Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Other Settings
The rest of the power policy settings related to display and brightness are enumerated below. These settings are enumerated for reference and, as outlined in Table 12, should not be changed from their default values by system manufacturers.
Table 8. Display off time-out setting Name Turn off display after Description The period of inactivity before the display is automatically turned off. For portable computers that support Windows control of the brightness level, it is highly recommended that the value for this setting be greater than the dim display after setting. Otherwise, the display is turned off before it is dimmed. 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e VIDEOIDLE 0 (do not turn off display) Maximum Integer Seconds No Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 16

Table 9. Console lock display off timeout setting Name Console lock display off timeout Description When the computer is locked, the value of this setting determines the period of inactivity before the display is automatically turned off. For portable computers that support Windows control of the brightness level, it is highly recommended that the value for this setting be greater than the dim display after setting. Otherwise, the display is turned off before it is dimmed. 8ec4b3a5-6868-48c2-be75-4f3044be88a7 VIDEOCONLOCK 0 (do not turn off display) Maximum Integer Seconds Yes Available in Windows 8 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Table 10. Allow display-required setting Name Allow display required policy Description Determines whether Windows allows certain applications, for example video players, to request Windows to keep the display on for their duration of activity. a9ceb8da-cd46-44fb-a98b-02af69de4623 ALLOWDISPLAY 0 (No) 1 (Yes) Yes Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 17

Table 11. Adaptive display setting Name Adaptive display Description Determines whether explorer.exe attempts to dynamically extend the display turn-off timeout if it detects user annoyance after a display turn off. 90959d22-d6a1-49b9-af93-bce885ad335b VIDEOADAPT 0 (No) 1 (Yes) Yes Available in Windows 7 and later versions of Windows.

GUID PowerCfg Alias Minimum Value Maximum Value Label Hidden Operating System Versions

Guidelines for Brightness Control Policy Configuration


Windows 8 ships with carefully selected default power policy settings. System manufacturers should consult Table 12 to decide whether they need to customize each of the above settings.
Table 12. The list of settings and customization requirements Setting Customization on traditional x86/x64 Systems Display brightness Enable adaptive brightness Dim display after Dimmed display brightness Turn off display after Increase adaptive timeout by User annoyance timeout Console lock display off timeout Allow display required policy Adaptive display Should No May May May No No No No No Customization on Always-onAlways-Connected Systems May No No May No No No No No No

The terms No, May, and Should are defined below: No: System manufacturers must not change the value of this setting and leave the Windows default intact. May: System manufacturers may customize the setting if they consider the change to improve the overall user experience and power consumption of their platform. Should: System manufacturers should customize the value for this setting to optimize the overall user experience and power consumption of their platform.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 18

Best Practices for Software Developers


In Windows Vista and earlier versions of Windows, APIs are provided to enable applications to control the display brightness level. System manufacturers typically use these APIs to enable value-added extensions for controlling the display brightness level on systems where the keyboard hot keys are not implemented using ACPI notifications or HID. We recommend that software developers do not use the existing Windows Management Instrumentation (WMI) APIs or legacy video driver I/O controls (IOCTLs) to change the display brightness level. Windows 8 supports adjusting the display brightness level based on the dim idle time-out setting to save power. Applications could unintentionally interfere with the adaptive display brightness feature, which results in a poor user experience. If an application must adjust the display brightness level to provide an additional display brightness control interface such as a slider control, the application should adjust the current power policy settings. The application should first determine the current system power source and current power plan. Then, using this information, the application can change the display brightness level by calling either the PowerWriteACValueIndex or PowerWriteDCValueIndex function, as appropriate. For more information, see the documentation for these functions on the Microsoft Developer Network (MSDN) Web site.

Putting it all Together: How Actual Display Brightness is Determined


Windows 8 cleanly separates brightness policies from the actual display brightness level. The following formula determines how Windows determines the Actual Display Brightness Level. This value is subsequently provided to the monitor driver (Monitor.sys), which in turn notifies the WDDM display driver to change the display brightness accordingly:

where Normal Brightness Policy, Dim Brightness Policy, and ALS Offset are defined as follows: 1. Normal Brightness Policy: Depending on whether the Windows PC is plugged-in (AC) or runs on battery (DC), this value would be equal to the AC or DC value in the display brightness setting. As a result, this value may change due to AC/DC transitions, or any action that would change the value of the display brightness setting. These actions include brightness changes through the UI or hot keys (Sections 0 and 0), as well as direct changes to the settings value in the power policy store (see Brightness Control Settings and Actions). For example, based on the Windows 8 defaults, display brightness is 100% in AC and 40% in DC. If a system is in DC and the user changes the brightness from 40% to 55% through the Settings Charm brightness slider, they have effectively changed the display brightness setting (and thus Normal Brightness Policy) from 40% to 55%. 2. Dim Brightness Policy: This is a value between 0 and 100. When Windows dims the display, this would be equal to the dimmed display brightness setting (see

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 19

Brightness Control Settings and Actions), defaulted to 50. When the display is not dimmed, it will be equal to 100. 3. ALS Offset: This is a positive integer representing an offset to be applied to the display brightness due to outside lighting conditions. On systems without an Ambient Light Sensor (ALS), or during normal lighting conditions, the ALS Offset is 100. On systems with an integrated ALS sensor, the ALS Offset will be set to a value other than 100 after a sustained change in the lighting conditions. In general, dark environments result in ALS Offset values below 100, and bright environments result in ALS Offset values above 100. For further details refer to Reference 0.

Validation of Platform Brightness Control


System manufacturers and firmware developers can validate the brightness control support on a platform by using the PwrTest utility that is included in the Windows Driver Kit (WDK). Use PwrTest to observe display brightness level transitions and power management idle detection.

The PwrTest MONITOR Scenario


The PwrTest utility supports various scenarios for power management testing and validation. Specific to display brightness, PwrTest supports the MONITOR scenario, through which one can view display power management idle detection, brightness control policy changes, and display brightness level changes. To start the MONITOR scenario, run the pwrtest /monitor command at an elevated command prompt:
C:\pwrtest>pwrtest /monitor Waiting for Monitor Power Events Will run for 30 minutes. Press 'q' anytime to quit... Timestamp Session Info ------------------------------------------------------------------------------07:41:09 1 Screen Saver Timeout: 900 seconds 07:41:09 1 Blank Timeout: 300 seconds 07:41:09 1 Dim Timeout: 60 seconds 07:41:09 1 Dim Brightness: 35% 07:41:09 1 Normal Monitor Brightness: 70% 07:41:09 1 Idle Reset 07:41:14 1 Idle: 5 seconds 07:41:18 1 Idle: 10 seconds 07:41:23 1 Idle: 15 seconds

The MONITOR scenario runs for a default of 30 minutes. It can be stopped at any time by pressing the Q key. The MONITOR scenario generates an XML log file that is named PwrTestLog.XML in the same directory as the PwrTest utility. The XML log file contains the same information that appears in the console window. You can specify the duration that the MONITOR scenario runs with the /t parameter. For example, the following MONITOR scenario executes for 10 minutes:
C:\pwrtest>pwrtest /monitor /t:10 Waiting for Monitor Power Events Will run for 10 minutes. Press 'q' anytime to quit...
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 20

Timestamp Session Info ------------------------------------------------------------------------------07:41:09 1 Screen Saver Timeout: 900 seconds

Observation of Brightness Level Changes with the MONITOR Scenario


The MONITOR scenario displays how much user idle time was detected, any updates to the brightness control power policies, and changes to the display brightness level. For example, if a user presses a brightness control hot key on the keyboard, the MONITOR scenario displays a change in the display brightness level. The following appears when the user presses the brightness up hot key, which results in a change to the display brightness level from 70 to 80 percent:
07:46:55 console Physical Monitor Brightness Changed: 70% -> 80%

Similarly, a Physical Monitor Brightness Changed message appears if the user adjusts any of the display brightness sliders in the UI (see Brightness Control User Experiences). Note that the value of the Physical Monitor Brightness may not exactly match the Normal Monitor Brightness. In brief, Normal Monitor Brightness is the Actual Brightness Level described in How Actual Display Brightness is Determined, whereas the Physical Monitor Brightness it the translation of that to a physical brightness supported by the display. At the beginning of the MONITOR scenario, the console window displays the current brightness control power policies. These are the current policies that are based on the current power source (on-battery or plugged-in). Each policy is updated in the console window if the power source is changed during the MONITOR scenario and the on-battery and plugged in brightness level setting values are different for the current power plan. In the following example, the screen saver time-out is set to 15 minutes (900 seconds), the display off time-out is set to 5 minutes (300 seconds), and the display dim time-out is set to 1 minute (60 seconds). In addition, the default brightness level for the current power source is 80 percent and the brightness level when the idle time exceeds the dim time-out is 40 percent. Note that, unlike Windows 7, the dim brightness is a result of multiplying the dimmed display brightness setting by the normal display brightness. So, if dimmed display brightness is kept at the current 50% default, the value seen for Dim Brightness in pwrtest should always be half of the Normal Monitor Brightness.
C:\pwrtest>pwrtest /monitor /t:10 Waiting for Monitor Power Events Will run for 10 minutes. Press 'q' anytime to quit... Timestamp Session Info ------------------------------------------------------------------------------07:50:28 1 Screen Saver Timeout: 900 seconds 07:50:28 1 Blank Timeout: 300 seconds 07:50:28 1 Dim Timeout: 60 seconds 07:50:28 1 Dim Brightness: 40% 07:50:28 1 Normal Monitor Brightness: 80%

In addition to displaying policy changes and brightness level changes, the MONITOR scenario also displays how much user idle time has accrued on the system. This value validates that the system is correctly accruing idle time and that it will correctly dim or power off the display when the idle time exceeds the current policy time-out.

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 21

In the following example, the system has currently accrued 30 seconds of idle time. The display brightness level was reduced after being idle for 10 seconds, when it reached the dim policy time-out:
C:\pwrtest>pwrtest /monitor Waiting for Monitor Power Events Will run for 30 minutes. Press 'q' anytime to quit... Timestamp Session Info ------------------------------------------------------------------------------08:01:12 1 Screen Saver Timeout: 900 seconds 08:01:12 1 Blank Timeout: 300 seconds 08:01:12 1 Dim Timeout: 10 seconds 08:01:12 1 Dim Brightness: 40% 08:01:12 1 Normal Monitor Brightness: 80% 08:01:12 1 Idle: 1 seconds 08:01:16 1 Idle: 5 seconds 08:01:21 console Physical Monitor Brightness Changed: 80% -> 40% 08:01:21 1 Idle: 10 seconds 08:01:21 1 Physical Monitor State: On -> Dim 08:01:26 1 Idle: 15 seconds 08:01:31 1 Idle: 20 seconds 08:01:36 1 Idle: 25 seconds 08:01:41 1 Idle: 30 seconds

When you view the idle time accounting that appears in the MONITOR scenario, it is useful to determine whether any applications have made a display availability request. Display availability requests prevent the display from dimming or powering off when the idle time exceeds the current policy time-out. Certain applications use display availability requests to keep the display on, such as when watching a full-screen DVD movie or when displaying a slide presentation. Display availability requests can be displayed by using the PowerCfg utility that is included with Windows, specifying the /REQUESTS parameter. In the following example, the Microsoft PowerPoint presentation graphics program prevents display power management and the system from idling to sleep because of a slide presentation that is currently being shown:
C:\pwrtest>powercfg /requests DISPLAY: [PROCESS] POWERPNT.EXE SYSTEM: [PROCESS] POWERPNT.EXE AWAYMODE: C:\pwrtest>

Checklist of Guidelines for System Manufacturers


System manufacturers should follow the guidelines below when they develop Windows 8 platforms with integrated displays. Basic display control functionality o Implementation

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 22

The graphics miniport driver must expose the display brightness control functionality by implementing the WDDM DXGK_BRIGHTNESS_INTERFACE_2. The presence of this interface indicates that the driver supports brightness control of the integrated display (see Brightness Control Platform Infrastructure). The miniport driver must set bit 2 of the argument to the _DOS ACPI control method. With the setting of bit 2, the system BIOS is informed that it should not perform any automatic brightness changes. System must adhere to all System.Client.BrightnessControls requirements in the Windows Hardware Certification Requirements.

Validation: Ensure that brightness can be modified through the main user interfaces, namely the sliders in the Settings Charm, Power Options page, and the Windows Mobility center. Ensure that AC/DC transitions result in brightness changes as defined by the AC/DC display brightness levels. Ensure the display dims after the period of user inactivity specified in the dim display after setting. Validate that the system meets all the System.Client.BrightnessControls requirements and passes all the corresponding tests.

Brightness Hot Keys (if the system has a keyboard) o Implementation The system must implement brightness up and down hot keys using HID usages (preferred) or ACPI (see Brightness Control Platform Infrastructure). If HID implementation is chosen, the auto-repeat functionality should not be implemented by the system manufacturer. This functionality is implemented by Windows. If ACPI implementation is chosen, the embedded controller must implement auto-repeat. The first repeated notification should be sent approximately 500ms after a button is pressed and held. The repeat rate should be such that there is a total end-to-end delay of approximately 2.5 seconds to reach from 0 to 100 (or vice versa).

Validation Ensure every brightness up (or down) hot key button press results in a 10% brightness policy increase (or decrease), and a corresponding change in display brightness. Ensure auto-repeat works. The total end-to-end delay must to be approximately 2.5 seconds.

Scenario-based backlight optimization (see Brightness Control Platform Infrastructure).

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 23

Implementation The graphics miniport driver must implement it as part of fully implementing the DXGK_BRIGHTNESS_INTERFACE_2 interface. The platform hardware and graphics miniport driver must support Scenario-based backlight optimization on the internal display panel even when external display(s) are attached. The graphics miniport driver must support user-initiated brightness changes even when the scenario-based backlight optimization is enabled. The graphics miniport driver must support scenario-based backlight optimization both when ALS-based adaptive brightness is enabled and disabled. System must adhere to all System.Client.BrightnessControls.BacklightOptimization requirements in the Windows Hardware Certification Requirements.

Validation Validate that scenario-based backlight optimization works during single display and attached display scenarios. Ensure that user changes to brightness through the UI or hot keys work correctly when scenario-based backlight optimization is enabled. Ensure that scenario-based backlight operation works correctly both when ALS-based adaptive brightness is enabled and disabled. Validate that the system meets all the System.Client.BrightnessControls.BacklightOptimization requirements and passes all the corresponding tests.

Smooth Brightness Transitions (see Brightness Control Platform Infrastructure). o Implementation The graphics miniport driver must implement the DXGK_BRIGHTNESS_INTERFACE_2 interface and indicate support for smooth brightness control using the capability bit defined in that interface. The miniport driver must report 101 levels to Windows. Brightness is reported as a percentage, so this covers the range between 0 and 100, inclusive. Smooth brightness control in the driver must be implemented without depending on the embedded controller. Smooth brightness transitions must complete in less than 500 ms. WDDM driver must continue to support smooth brightness control even when scenario-based backlight optimization is in effect. Connecting additional display devices to the system must not impact the ability to perform smooth transition on the integrated panel.
September 28, 2012 2012 Microsoft Corporation. All rights reserved.

Windows 8 Brightness Control for Integrated Displays - 24

Adhere to all System.Client.BrightnessControls.SmoothBrightness requirements in the Windows Hardware Certification Requirements.

Validation Validate that brightness changes due to UI, hot keys, display dimming, and ALS occur smoothly. Validate that brightness can be set to each of the reported 101 levels. Ensure that smooth brightness changes do not rely on the embedded controller. Validate that each smooth brightness transition completes in less than 500 ms. Validate that brightness transitions remain smooth even when scenariobased backlight optimization is in effect. Ensure that the display brightness on the main panel changes smoothly even when an additional display is connected to the system. Validate that the system meets all the System.Client.BrightnessControls.SmoothBrightness requirements and passes all the corresponding tests.

Customize the brightness control power policies (see Brightness Control Settings and Actions). o o o Configure the settings labeled Should in Table 12. If perceived as improving the balance between user experience and power optimization, configure the settings labeled as May in Table 12. Do not change the default values for any of the settings labeled as No in Table 12. Follow the instructions and requirements in Reference 0.

Integrate an Ambient Light Sensor and validate its operation: o Use the monitor scenario in the PwrTest Utility to validate brightness control (see Validation of Platform Brightness Control).

References
Keyboard Enhancements in Windows 8 http://msdn.microsoft.com/en-us/library/windows/hardware/hh975382 Windows 8 Hardware Certification Requirements http://msdn.microsoft.com/library/windows/hardware/hh748188 Integrating Ambient Light Sensors with Computers Running Windows 8 http://msdn.microsoft.com/library/windows/hardware/hh975397 Advanced Configuration and Power Interface Specification http://www.acpi.info

September 28, 2012 2012 Microsoft Corporation. All rights reserved.

You might also like