glXHyperpipeConfigSGIX(3G)
glXHyperpipeConfigSGIX - Configure a hyperpipe
As shipped in IRIX 6.5.22. Added in IRIX 6.5.5.
NAME glXHyperpipeConfigSGIX - Configure a hyperpipe C SPECIFICATION int glXHyperpipeConfigSGIX( Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId ) PARAMETERS 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. DESCRIPTION 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 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. RETURN VALUES Returns GLX_BAD_HYPERPIPE_CONFIG_SGIX if the specified configuration is invalid. Returns 0 if the call succeeds. NOTES 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. 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 non- hyperpipe progam should call glXBindSwapBarrierSGIX in the usual manner. SEE ALSO glXQueryHyperpipeNetworkSGIX glXQueryHyperpipeConfigSGIX glXDestroyHyperpipeConfigSGIX glXBindHyperpipeSGIX hyperpipe