Note: Config file format has changed in version 1.2
The wiregl.conf file defines the layout and locations for the pipeservers the WireGL client is to use for rendering. This file is parsed when the context is created, typically at application startup. Below is an example of a simple config file for two rendering servers:
# Setup Machine1 pipe tcpip://machine1.stanford.edu pipe_extent 0 0 1024 768 # Setup Machine2 pipe gm://machine2 pipe_extent 1024 0 1024 768
Each pipeserver is defined starting with the pipe command which indicates the connection information. In the above example, the connection to machine1 is made using TCP/IP, while machine2 uses Myrinet's GM. The pipe_extent line specifies which part of the output display the server is responsible for rendering. In this case, machine1 will render the left 1024x768 and machine2 renders the right 1024x768.
Here is the list of configuration commands:
Begins a pipeserver definition. conntype can be tcpip for a TCP/IP connection or gm for a Myrinet GM connection. machinename is the name which should be used for making the connection on the specified connection type. The port (optional) indicates which TCP/IP port the machine should use to make the connection (default 7000).
pipe_extent x_start y_start width height
Determines what portion of the pipeserver is responsible for entire output. The coordinates (x_start, y_start) establish the offset from the lower left corner of the tiled display. (width, height) determine the size of the rendering window. Default (0 0 1024 768)
pipe_window x y
Determines the upper left corner position of the rendering window on the server desktop.
feather_top size cp1 cp2 cp3 cp4
feather_bottom size cp1 cp2 cp3 cp4
feather_left size cp1 cp2 cp3 cp4
feather_right size cp1 cp2 cp3 cp4
Controls the feathering for overlaping tiles. size is the number of pixels to apply the feathering. (cp1, cp2, cp3, cp4) are the control points for a cubic spline used for evaluating the alpha values.
If z is "1", the client waits until each pipeserver is done rendering before allowing the the swap command to return to the application. If "0", then client can issue commands as fast as the network will allow. Default: 0
If z is "1", the client waits until each pipeserver is done rendering before returning from glFinish call to the application. If "0", glFinish will flush any network pipes but return before actual rendering is complete. Default: 0
If z is "1", the client draws bounding boxes used for geometry bucketing. Default: 0.
Sets the number of bytes of client side buffering before geometry bucketing is performed. This can be increased/decreased to improve bucketing preformance. Default: 8192
Sets the maximum number of glBegin/glEnd blocks between geometry bucketing operations. This can be set to improve bucketing preformance. Default: 2^32
If z is "1", geometry bucketing is disabled. All primatives will be sent to each pipeserver. Default 0
Specifies the default depth bits used in rendering. Default: 24
Specifies the default stecil bits used in rendering. Default: 8
If z is "1", configures WireGL into "ring mode" where servers are connected in using a ring topology instead of direct connections to the client. Can improve performance in some serial applications. Default: 0
Specifies the port number to respond to client requests.
Specifies full screen mode. Opens an undecorated full screen window for rendering.
Displays command line option help.
Disregard all graphics commands.
Specifies an X server to render the output. (Non-Windows platforms only.)
Forces a creation of a direct GLX connection. (Non-Windows only.)
Forces a creation of an indirect GLX connection. (Non-Windows only.)
Make the X connection synchronous. (Non-Windows only.)
Install the pipeserver as a Windows service. (Windows only.)
Remove the pipeserver from the Windows service registry. (Windows only.)
Below is a sample wiregl.conf file for a 3x2 tiled display.
# 3x2 configuration with 30 pixel # overlap between projectors. # Using a linear alpha ramp for feathering. # Turn on swap syncing sync_on_swap 1 # Setup Machine1 # Lower left pipe tcpip://machine1.stanford.edu pipe_extent 0 0 1024 768 feather_top 30 1.0 0.666 0.333 0.0 feather_right 30 1.0 0.666 0.333 0.0 # Setup Machine2 # Lower middle # Note: 1024-30=994 pipe tcpip://machine2.stanford.edu pipe_extent 994 0 1024 768 feather_top 30 1.0 0.666 0.333 0.0 feather_right 30 1.0 0.666 0.333 0.0 feather_left 30 1.0 0.666 0.333 0.0 # Setup Machine3 # Lower right # Note: 1024-30+1024-30=1988 pipe tcpip://machine3.stanford.edu pipe_extent 1988 0 1024 768 feather_top 30 1.0 0.666 0.333 0.0 feather_left 30 1.0 0.666 0.333 0.0 # Setup Machine4 # Upper left # Note: 768-30=738 pipe tcpip://machine4.stanford.edu pipe_extent 0 738 1024 768 feather_bottom 30 1.0 0.666 0.333 0.0 feather_right 30 1.0 0.666 0.333 0.0 # Setup Machine5 # Upper middle pipe tcpip://machine5.stanford.edu pipe_extent 994 738 1024 768 feather_bottom 30 1.0 0.666 0.333 0.0 feather_right 30 1.0 0.666 0.333 0.0 feather_left 30 1.0 0.666 0.333 0.0 # Setup Machine6 # Upper right pipe tcpip://machine6.stanford.edu pipe_extent 1988 738 1024 768 feather_bottom 30 1.0 0.666 0.333 0.0 feather_left 30 1.0 0.666 0.333 0.0