Skip to content

Configuring graphics coordinates

After the display layout has been configured on the operating system, we need to specify how one or more windows are created on the desktop and how the graphics should be rendered to those windows.

The configuration that specifies the geometry of each window and their location on the operating system's desktop is called screen.xml.

For optimal performance, we want to create a single window per GPU that spans each display connected to that GPU. We must avoid overlapping windows as this will cause a severe performance penalty. Optionally, we can define one or more "areas" inside each window to support complex layouts, such as asymmetric display setups.

Tip

See client-screen-xml for the location of screen.xml.

Windows and areas

The screen.xml configuration file defines one or more windows. Each window defines where on the operating system\'s desktop the application can render content. Each window represents a normal (usually frameless) application window. In a multi-GPU setup, multiple frameless windows are stitched together to cover the entire desktop. The location and geometry of each window is defined in the underlying operating system\'s desktop coordinates.

In addition, each window can contain one or more areas that represent viewports into the application. Together with graphics coordinates they specify which part of the application is rendered into the window containing the area. The location and size of each area is defined in window coordinates with the origin at the bottom-left corner of the window.

../../_static/screenshots/video-wall-setup/screen-xml/windows-and-areas.png
The screen.xml file defines the location and size of one or more windows and areas inside the windows.

Tip

Linux only: Remember that on Linux, the each X Screen has its own coordinate system starting from 0,0 so you must use screennumber parameter for each window to position them on the correct X Screen instead of window location.

The most common configuration is:

  • One window per GPU

  • One area inside each window covering the window entirely

    • The graphicssize of each area matching the size of the area (and window)
    • The graphicslocation of each area used to offset coordinates as needed

For best performance, the number of windows and areas should be minimized, but windows should never span more than one GPU. Ideal configuration is thus one window per GPU with one area inside each window.

Multiple areas inside a window are rarely needed, but they can be used in complex display layouts or to achieve edge-blending when using projectors.

Hint

See screen-xml-file-format for more details of the file format and also refer to video-wall-examples for some common configurations that you can use as a starting point.

Next, continue to configure-input-mapping.