In contrast to most of the compounds described in Chapter 4, “Compounds”, scalable graphics hardware offers a hardware solution to joining or cascading the video output of two or more graphics pipes and outputting them in a single video output. Scalable graphics hardware provides nearly perfect scaling of both geometry rate and fill rate on some applications.
This chapter describes how you use MPK in conjunction with an SGI Video Digital Multiplexer (DPLEX) and an SGI Scalable Graphics Compositor in the following sections:
A DPLEX is an optional daughtercard that permits multiple graphics hardware pipelines to work simultaneously on a single visual application. DPLEX hardware is available on Silicon Graphics Onyx2, SGI Onyx 3000, and SGI Onyx 300 systems. This section describes how you create the DPLEX compound in MPK and shows a configuration file example. For an overview of the DPLEX hardware, see the document Onyx2 DPLEX Option Hardware User's Guide.
To enable DPLEX decomposition, you must specify the DPLEX mode along with the HW flag in the configuration file. The destination channel's pipe is used to control the hyperpipe. Naturally, this is the display pipe of the DPLEX cascade. The use of the NOCOPY flag is mandatory to suppress pixel transfer.
Example 5-1 shows a three-pipe DPLEX cascade with the pipe associated to channel channel::1 being the display pipe. The order of the channels reflects the order of the pipes in the DPLEX cascade.
Example 5-1. A Typical DPLEX Compound
compound {
mode [ DPLEX HW NOCOPY ]
channel “channel::1”
region {
channel “channel::1”
}
region {
channel “channel::2”
}
region {
channel “channel::3”
}
}
|
This section gives a brief overview of the SGI Scalable Graphics Compositor and how to use it with MPK. For more information on the compositor, including the details of the hardware setup, refer to the document SGI InfinitePerformance: Scalable Graphics Compositor User's Guide.
The compositor can perform spatial compositions, pixel averaging, and stereo rendering. The compositor receives two to four input signals and outputs a single signal either in analog or digital format.
The following items are noteworthy regarding the compositor's capabilities:
For every output pixel, the compositor averages all values from all the pipes. Among other things, this provides applications with the means to do full-scene antialiasing (FSAA) in hardware.
Stereo is supported only for analog output.
Due to restrictions imposed by the compositor, MPK does not allow the mixing of the various hardware decomposition modes—for example, two vertical stripes with two horizontal stripes.
| Note: For more information on the current limitations and anomalies associated with the use of the SGI Scalable Graphics Compositor, refer to the hardware documentation. |
Because the compositor receives two to four input signals and outputs a single signal either in analog or digital format, it can handle spatial composition of four inputs. This enables multiple pipes to contribute to a single output. Four different spatial composition schemes are available:
Figure 5-1 illustrates the various hardware composition schemes.
In order to use the compositor with MPK, you must specify the 2D, EYE, or FSAA compound mode along with the HW flag. If you do not specify the NOCOPY flag, copying is performed even though the compositor is being used. Example 4-8 shows a configuration file entry for an FSAA compound using the SGI Scalable Graphics Compositor.
Example 5-2 shows how a 2 x 2 tiling scheme might look in a configuration file.
Example 5-2. A 2 x 2 Tiling Scheme in a Configuration File
compound {
mode [ 2D HW NOCOPY ]
channel “channel0”
region {
viewport [ 0., 0.5, .5, .5 ]
channel “channel0”
}
region {
viewport [ 0.5, 0.5, .5, .5 ]
channel “channel1”
}
region {
viewport [ 0., 0., .5, .5 ]
channel “channel2”
}
region {
viewport [ .5, 0., .5, .5 ]
channel “channel3”
}
}
|
Note the following:
You must specify a destination channel if the compositor is to be used. Otherwise, MPK uses a software fallback solution.
MPK does not require that the destination channel be used as a source channel—that is, it does not have to contribute to the rendering.
To use the Xinerama full-window overlapping feature, specify the display subfield in the compound data structure. This field specifies the X11 display name to be used for setting up the glXHyperpipe when using Xinerama and an SGI Scalable Graphics Compositor. To use this feature, you must first switch to a proper Xinerama Xsgi configuration. Example 5-3 shows a sample compound specification.
Example 5-3. Using the Xinerama Full-Window Overlapping Feature
compound {
mode [2D HW NOCOPY]
region {
display “:0.0”
viewport [0.0, 0.5, 0.5, 0.5]
}
region {
display “:0.1”
viewport [0.5, 0.5, 0.5, 0.5]
}
region {
display “:0.2”
viewport [0.0, 0.0, 0.5, 0.5]
}
region {
display “:0.3”
viewport [0.5, 0.0, 0.5, 0.5]
}
}
|
When Xinerama is used to overlap screen regions on an edge-blended display or compositor-based system, the cursor will seem to disappear when it enters the overlapped or uncomposited regions of the display.
By upgrading to IRIX 6.5.20 or later, you can use an X server feature that prevents the cursor from disappearing in these cases. It causes additional cursor images (not real cursors) to appear on all pipes contributing to the overlapped regions. To enable this feature, add the –phantomcursors flag to the X server command line in the /var/X11/xdm/Xservers file.
For more information about the –phantomcursors option, see the Xsgi(1) man page.