Home » ScreenVirtuoso » Articles » Overlays

Search Site:  

Overlays Overview

Hardware overlay is a technique implemented by most modern graphics cards that allows an application to write to a dedicated part of video memory, rather than to the part shared by all applications. In this way, clipping, moving and scaling of the image can be performed by the graphics hardware rather than by the CPU in software.

The use of a hardware overlay is important for several reasons.

1. In Windows, one display is typically used to display multiple simultaneous applications

2. Consider how a display works without a hardware overlay. When each application draws to the screen, the operating system's graphical subsystem must constantly check to ensure that the objects being drawn appear on the appropriate location on the screen, and that they don't collide with overlapping and neighboring windows. The graphical subsystem must clip objects while they are being drawn when a collision occurs. This constant checking and clipping ensures that different applications can cooperate with one another in sharing a display, but also consumes a significant proportion of computing power.

The way a computer draws on its display is by writing a bitmapped representation of the graphics into a special portion of its memory known as video memory. Without any hardware overlays, there is only one chunk of video memory which all applications must share - and the location of a given application's video memory moves whenever the user changes the position of the application's window. With shared video memory, an application must constantly check that it is only writing to memory that belongs to that application.

When running a high-bandwidth video application such as games or movie playing, the computing power and complexity needed to perform this constant clipping and checking negatively impacts performance and compatibility. To escape these limitations, the hardware overlay was invented.

An application using a hardware overlay gets a completely separate section of video memory that belongs only to that application. Because nothing else uses it, the program never needs to waste time considering whether a given piece of the memory belongs to it, nor does it need to worry about the user moving the window and changing the location of the video memory.

Screen Capture

One consequence of hardware overlay use is that a screenshot/video recording software often does not capture the content appearing in the hardware overlay window. Rather, a blank region containing only the special mask color is captured. This is because the screen capture routine doesn't consider the special video memory regions dedicated to overlays - it simply captures the shared main screen as rendered by the software's graphical subsystem.

Almost all media players use overlays by default. For example, when media player plays internet movies it draws overlays. To record such videos you need either to disable overlays (see Disabling Overlays) or turn off the hardware acceleration:

Windows XP

1. Right-click on your desktop in any available free space.

2. Click on "Properties" in the drop-down menu.

3. Click the "Settings" tab and then click on the "Advanced" button.

4. The Advanced Settings dialog box appears.

5. Click on the "Troubleshoot" tab.

6. Move the "Hardware Acceleration" slider to "None"

7. Click the "OK" button.

Windows Vista/7

Starting with Windows Vista's enhanced graphics capabilities, the basic concept of hardware overlays is replaced by full hardware compositing for every application window running on the system, not just movie players or games, through the Desktop Window Manager. To improve performance, each program draws to its own independent memory buffer instead of to a slow graphical subsystem. Then, the system's GPU assembles each of the windows into a single display screen in real time.

Our experiments show that you do not need to disable overlays/hardware acceleration on Windows Vista/7.