Top Banner
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
35

Windows 8 Brightness Control Integrated Displays

Nov 01, 2014

Download

Documents

tigaparasit
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Windows 8 Brightness Control Integrated Displays

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 it’s 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.

Page 2: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 2

Document HistoryDate ChangeSeptember 28, 2012 Updated to reflect rebrandingJune 27, 2012 First publication

ContentsIntroduction...................................................................................................................3Brightness Control User Experiences.............................................................................3

Settings Charm......................................................................................................3Hardware Buttons (Hot Keys)....................................................................................4Ambient Light Sensor................................................................................................5Desktop Experiences: Power Options, Windows Mobility Center, and Battery Meter Warnings...................................................................................................................5

Brightness Control Platform Infrastructure...................................................................7WDDM Driver DDI Brightness Control Interface........................................................7Smooth Transitions...................................................................................................8Scenario-based Backlight Power Optimization..........................................................8Integration with Hardware Buttons (Hot Keys).........................................................9

HID-based Brightness Hotkeys..............................................................................9ACPI-based Brightness Hotkeys...........................................................................10

Integration with Ambient Light Sensor Devices.......................................................10Brightness Control Settings and Actions......................................................................11

Display Brightness...................................................................................................11ALS-based Automatic Brightness (Adaptive Brightness)..........................................11Automatic Display Dimming....................................................................................12Other Settings..........................................................................................................14Guidelines for Brightness Control Policy Configuration...........................................16Best Practices for Software Developers...................................................................17

Putting it all Together: How Actual Display Brightness is Determined.........................17Validation of Platform Brightness Control...................................................................18

The PwrTest MONITOR Scenario.............................................................................18Observation of Brightness Level Changes with the MONITOR Scenario..................19

Checklist of Guidelines for System Manufacturers......................................................20References...................................................................................................................23

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

Page 3: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 3

IntroductionA 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 PC’s 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 ExperiencesWindows 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 CharmThe Settings Charm is the user’s 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 brightness:

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

Page 4: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 4

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

Page 5: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 5

Ambient Light SensorOn PCs that are equipped with an integrated Ambient Light Sensor (ALS), Windows’s 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. (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 the power plans. This displays the Edit plan settings page, shown in (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).

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

Page 6: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 6

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

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

Page 7: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 7

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.

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

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

Page 8: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 8

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.

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

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

Page 9: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 9

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.

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

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

Page 10: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 10

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 8Usage ID Usage name Usage type

0x006F Brightness Increment Re-trigger Control (RTC)

0x0070 Brightness Decrement Re-trigger Control (RTC)

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

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 ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY 0x85#define ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY   0x86#define ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY   0x87#define ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY 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 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 end-to-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 to fully integrate the ALS hardware with Windows.

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

Page 11: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 11

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 on-battery 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).

Table 2. Display brightness settingName Display brightness

Description This setting applies only to portable computers that support Windows control of the brightness level of an integrated display device.

GUID aded5e82-b909-4619-9949-f5d71dac0bcb

PowerCfg Alias -

Minimum Value 0

Maximum Value 100

Label Percentage (%)

Hidden No

Operating System Versions

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.

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

Page 12: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 12

Table 3. ALS-based automatic brightness (adaptive brightness) settingName Enable adaptive brightness

Description If enabled, Windows will automatically calculate the optimal brightness level based on the default brightness setting and current ambient lighting.

GUID fbd9aa66-9553-4097-ba44-ed6e9d65eab8

PowerCfg Alias ADAPTBRIGHT

Minimum Value 0

Maximum Value 1

Label Percentage (%)

Hidden No

Operating System Versions

Available in Windows Vista and later versions of Windows.

Automatic Display DimmingWindows 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.

Table 4. Dim display time-out settingName 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.

GUID 17aaa29b-8b43-4b94-aafe-35f64daaf1ee

PowerCfg Alias VIDEODIM

Minimum Value 0 (never automatically reduce display brightness)

Maximum Value Maximum Integer

Label Seconds

Hidden No

Operating System Versions

Available in Windows 7 and later versions of Windows.

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

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

Page 13: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 13

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.

Table 5. Dimmed display brightness settingName 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.

GUID f1fbfde2-a960-4165-9f88-50667911ce96

PowerCfg Alias -

Minimum Value 0

Maximum Value 100

Label % (Percentage)

Hidden No

Operating System Versions

Available in Windows 7 and later versions of Windows (note the modified behavior in Windows 8).

Table 6. Increase dim timeout settingName 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.

GUID eed904df-b142-4183-b10b-5a1197a37864

PowerCfg Alias VIDEOADAPTINC

Minimum Value 0 (do not automatically extend the dim idle time-out when user annoyance is detected)

Maximum Value 100

Label % (Percentage)

Hidden Yes

Operating System Versions

Available in Windows 7 and later versions of Windows.

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

Page 14: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 14

Table 7. Dim annoyance time-out settingName 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.

GUID 82dbcf2d-cd67-40c5-bfdc-9f1a5ccd4663

PowerCfg Alias VIDEOANNOY

Minimum Value 0 (do not detect user annoyance)

Maximum Value Maximum Integer

Label Seconds

Hidden Yes

Operating System Versions

Available in Windows 7 and later versions of Windows.

Other SettingsThe 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 settingName 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.

GUID 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e

PowerCfg Alias VIDEOIDLE

Minimum Value 0 (do not turn off display)

Maximum Value Maximum Integer

Label Seconds

Hidden No

Operating System Versions

Available in Windows 7 and later versions of Windows.

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

Page 15: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 15

Table 9. Console lock display off timeout settingName 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.

GUID 8ec4b3a5-6868-48c2-be75-4f3044be88a7

PowerCfg Alias VIDEOCONLOCK

Minimum Value 0 (do not turn off display)

Maximum Value Maximum Integer

Label Seconds

Hidden Yes

Operating System Versions

Available in Windows 8 and later versions of Windows.

Table 10. Allow display-required settingName 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.

GUID a9ceb8da-cd46-44fb-a98b-02af69de4623

PowerCfg Alias ALLOWDISPLAY

Minimum Value 0 (No)

Maximum Value 1 (Yes)

Label -

Hidden Yes

Operating System Versions

Available in Windows 7 and later versions of Windows.

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

Page 16: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 16

Table 11. Adaptive display settingName 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.

GUID 90959d22-d6a1-49b9-af93-bce885ad335b

PowerCfg Alias VIDEOADAPT

Minimum Value 0 (No)

Maximum Value 1 (Yes)

Label -

Hidden Yes

Operating System Versions

Available in Windows 7 and later versions of Windows.

Guidelines for Brightness Control Policy ConfigurationWindows 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 requirementsSetting Customization on traditional

x86/x64 SystemsCustomization on Always-on-Always-Connected Systems

Display brightness Should May

Enable adaptive brightness No No

Dim display after May No

Dimmed display brightness May May

Turn off display after May No

Increase adaptive timeout by No No

User annoyance timeout No No

Console lock display off timeout No No

Allow display required policy No No

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

Page 17: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 17

Best Practices for Software DevelopersIn 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 DeterminedWindows 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:

ActualDisplay Brightness Level(%)¿

Min(100 , Normal Brightness Policy× DimBrightness Policy× ALSOffset100×100

)

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 and ), as well as direct changes to the setting’s 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.

Page 18: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 18

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 .

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 ScenarioThe 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 /monitorWaiting for Monitor Power EventsWill run for 30 minutes. Press 'q' anytime to quit...

Timestamp Session Info-------------------------------------------------------------------------------07:41:09 1 Screen Saver Timeout: 900 seconds07:41:09 1 Blank Timeout: 300 seconds07:41:09 1 Dim Timeout: 60 seconds07:41:09 1 Dim Brightness: 35%07:41:09 1 Normal Monitor Brightness: 70%07:41:09 1 Idle Reset07:41:14 1 Idle: 5 seconds07:41:18 1 Idle: 10 seconds07: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:10Waiting for Monitor Power EventsWill run for 10 minutes. Press 'q' anytime to quit...

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

Page 19: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 19

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

Observation of Brightness Level Changes with the MONITOR ScenarioThe 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:10Waiting for Monitor Power EventsWill run for 10 minutes. Press 'q' anytime to quit...Timestamp Session Info-------------------------------------------------------------------------------07:50:28 1 Screen Saver Timeout: 900 seconds07:50:28 1 Blank Timeout: 300 seconds07:50:28 1 Dim Timeout: 60 seconds07: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.

Page 20: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 20

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 /monitorWaiting for Monitor Power EventsWill run for 30 minutes. Press 'q' anytime to quit...

Timestamp Session Info-------------------------------------------------------------------------------08:01:12 1 Screen Saver Timeout: 900 seconds08:01:12 1 Blank Timeout: 300 seconds08:01:12 1 Dim Timeout: 10 seconds08:01:12 1 Dim Brightness: 40%08:01:12 1 Normal Monitor Brightness: 80%08:01:12 1 Idle: 1 seconds08:01:16 1 Idle: 5 seconds08:01:21 console Physical Monitor Brightness Changed: 80% -> 40%08:01:21 1 Idle: 10 seconds08:01:21 1 Physical Monitor State: On -> Dim08:01:26 1 Idle: 15 seconds08:01:31 1 Idle: 20 seconds08:01:36 1 Idle: 25 seconds08: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 /requestsDISPLAY:[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.

Page 21: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 21

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.

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

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

Page 22: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 22

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

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

Page 23: Windows 8 Brightness Control Integrated Displays

Windows 8 Brightness Control for Integrated Displays - 23

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

o 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 scenario-based 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 Configure the settings labeled “Should” in Table 12.

o If perceived as improving the balance between user experience and power optimization, configure the settings labeled as “May” in Table 12.

o Do not change the default values for any of the settings labeled as “No” in Table 12.

Integrate an Ambient Light Sensor and validate its operation:

o Follow the instructions and requirements in Reference .

Use the monitor scenario in the PwrTest Utility to validate brightness control (see Validation of Platform Brightness Control).

ReferencesKeyboard 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 8http://msdn.microsoft.com/library/windows/hardware/hh975397

Advanced Configuration and Power Interface Specificationhttp://www.acpi.info

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