glXHyperpipeConfigSGIX(3G) OpenGL Reference - GLX glXHyperpipeConfigSGIX(3G)
glXHyperpipeConfigSGIX - Configure a hyperpipe
int glXHyperpipeConfigSGIX( Display *dpy,
int networkId,
int npipes,
GLXHyperpipeConfigSGIX *cfg,
int *hpId )
dpy Specifies the connection to the X server.
networkId Specifies the physical hyperpipe network id.
npipes Specifies the number of pipes in the configuration.
cfg An array of participating pipes.
hpId Returns the hyperpipe id assigned to this configuration.
glXHyperpipeConfigSGIX is part of the SGIX_hyperpipe extension.
glXHyperpipeConfigSGIX specifies the logical configuration of the
hyperpipe. The physical connectivity of a hyperpipe is determined by the
cabling of the hardware. It is possible to use only a subset of the pipes
physically connected together. These participant pipes may contribute to
the hyperpipe in a temporally interleaved manner and/or spatially
subdivided manner. The configuration information specifies which pipes
participate in the hyperpipe. It also specifies the relative order of
these pipes and their type of contribution (spatial or temporal). This
configuration cannot be arbitrary and is subject to some hardware
constraints.
The configuration information consists of a physical network id
networkId, determined by glXQueryHyperpipeNetworkSGIX.
npipes specifies the total number of pipes in the configuration.
cfg is an array. Each entry within the array specifies the pipe, the
channel associated with the pipes, the participation type (rendering,
display) and the time slice to which a pipe contributes. A pipe can
Page 1
glXHyperpipeConfigSGIX(3G) OpenGL Reference - GLX glXHyperpipeConfigSGIX(3G)
contribute to a hyperpipe by rendering data which is finally assembled on
the display pipe. This type of contribution is termed as rendering. A
pipe can be designated to assemble the rendered data and display it on
its local channel. This type of contribution is termed as display. In a
hyperpipe there can be multiple rendering pipes but only one display
pipe. The time slice can range from 0 to npipes-1.
hpId is a unique id assigned to this configuration. Subsequent hyperpipe
calls like glXBindHyperpipeSGIX require the use of this id.
typedef struct {
char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH]; /* String */
int channel; /* The channel number associated with the pipe */
unsigned int participationType; /* participationType is a bitmask
describing the attributes of a participating pipe. The bitmask may
contain one or more of the following attributes:
GLX_HYPERPIPE_DISPLAY_PIPE GLX_HYPERPIPE_RENDERING_PIPE */
int timeSlice; /* The timeSlice is ignored if the participationType is
GLX_HYPERPIPE_DISPLAY_PIPE only. */
} GLXHyperpipeConfigSGIX;
If the pipes contribute in a spatially subdivided manner, then the screen
is divided evenly between them. This division can be subsequently changed
in a swap synchronous manner.
Returns GLX_BAD_HYPERPIPE_CONFIG_SGIX if the specified configuration is
invalid.
Returns 0 if the call succeeds.
glXHyperpipeConfigSGIX returns a hpId which identifies a hyperpipe group
uniquely. In the case of a multi process application, the master process
should configure the hyperpipe. Any child process using other pipes to
render into the hyperpipe should call glXBindHyperpipeSGIX with the same
hpId as the master process.
If another process attempts a configuration using already allocated
pipes, the second configuration will fail.
Page 2
glXHyperpipeConfigSGIX(3G) OpenGL Reference - GLX glXHyperpipeConfigSGIX(3G)
MACHINE DEPENDENCIES
GLX_SGIX_hyperpipe extension is currently supported only on IR2/DPLEX.
All the pipes in a hyperpipe need to be genlocked together and should
have a swap ready line connecting them.
Similar video formats should be loaded on all the participating
hyperpipes.
Hyperpipe functionality does not take effect on single buffered visuals.
The visuals should be double buffered.
DPLEX makes uses of the swap ready line for hyperpipe operation.
glXBindSwapBarrierSGIX and glXJoinSwapGroupSGIX calls have no effect on
pipes bound to a hyperpipe. However, two hyperpipes can be made swap
synchornous by connecting their swap ready lines. Also, a hyperpipe
program can be made to swap with a non-hyperpipe program. The nonhyperpipe
progam should call glXBindSwapBarrierSGIX in the usual manner.
glXQueryHyperpipeNetworkSGIX glXQueryHyperpipeConfigSGIX
glXDestroyHyperpipeConfigSGIX glXBindHyperpipeSGIX hyperpipe
PPPPaaaaggggeeee 3333 [ Back ]
|