#define S_DOCUMENTATION #define S_DOCUMENTATION_DEVELOPER #define PAGE Documentation #define SUBPAGE Developer #define TITLE Configuration File Format #include "header.shtml"

Author: eilemann@gmail.com
State: Implemented

The configuration file format for the Equalizer server is described below. The examples directory does contain some example configuration files. The configuration tool automatically creates some standard configuration files.

The file format is not described in detail here. Please refer to the Programming Guide in general, and to the changes section below for individual feature specifications. The actual implementation may differ slightly from this specification, but we try to keep it up to date. The loader implementation is the reference for the file format, look at src/server/loader.y, if you understand lex/yacc code.

Note that this format is the representation for the server's low-level scalable rendering engine. Eventually this file format will be replaced by a higher-level format or API, and may even be partially hidden from the user. Automatic configuration and load balancing are not yet implemented, hence the need to have these low-level configuration files.

All Equalizer units are in meters. This applies currently to the wall coordinates and the eye base, as well as the head matrix supplied programmatically.

Global values have useful default parameters, which can be overriden with environment variables of the same name. For enumeration values, e.g., EQ_COMPOUND_IATTR_STEREO_MODE, the corresponding integer value has to be used. The global values in the config file override these defaults, and are in turn overriden by the corresponding attributes sections of the associated entities.

global
{
     EQ_CONNECTION_SATTR_HOSTNAME             string
     EQ_CONNECTION_SATTR_LAUNCH_COMMAND       string
     EQ_CONNECTION_CATTR_LAUNCH_COMMAND_QUOTE 'character'
     EQ_CONNECTION_IATTR_TYPE                 TCPIP | SDP
     EQ_CONNECTION_IATTR_TCPIP_PORT           unsigned
     EQ_CONNECTION_IATTR_LAUNCH_TIMEOUT       unsigned
     EQ_CONFIG_FATTR_EYE_BASE                 float
     EQ_PIPE_IATTR_HINT_THREAD                OFF | ON
     EQ_WINDOW_IATTR_HINT_STEREO              OFF | ON | AUTO
     EQ_WINDOW_IATTR_HINT_DOUBLEBUFFER        OFF | ON | AUTO
     EQ_WINDOW_IATTR_HINT_DECORATION          OFF | ON
     EQ_WINDOW_IATTR_HINT_FULLSCREEN          OFF | ON
     EQ_WINDOW_IATTR_HINT_SWAPSYNC            OFF | ON   // AGL, WGL only
     EQ_WINDOW_IATTR_HINT_DRAWABLE            window | pbuffer
     EQ_WINDOW_IATTR_HINT_STATISTICS          OFF | FASTEST [ON] | NICEST
     EQ_WINDOW_IATTR_PLANES_COLOR             unsigned
     EQ_WINDOW_IATTR_PLANES_ALPHA             unsigned
     EQ_WINDOW_IATTR_PLANES_DEPTH             unsigned
     EQ_WINDOW_IATTR_PLANES_STENCIL           unsigned
     EQ_WINDOW_IATTR_PLANES_ACCUM             unsigned
     EQ_WINDOW_IATTR_PLANES_ACCUM_ALPHA       unsigned
     EQ_WINDOW_IATTR_PLANES_SAMPLES           unsigned
     EQ_CHANNEL_IATTR_HINT_STATISTICS         OFF | FASTEST [ ON ] | NICEST
     EQ_COMPOUND_IATTR_STEREO_MODE                 QUAD | ANAGLYPH
     EQ_COMPOUND_IATTR_STEREO_ANAGLYPH_LEFT_MASK   [ RED GREEN BLUE ]
     EQ_COMPOUND_IATTR_STEREO_ANAGLYPH_RIGHT_MASK  [ RED GREEN BLUE ]
     EQ_COMPOUND_IATTR_UPDATE_FOV             HORIZONTAL [ON] | VERTICAL | OFF
}
server
{
    connection // 0-n times, listening connections of the server
    {
        type       TCPIP | SDP
        TCPIP_port unsigned
        hostname   string
    }

    config // 1-n times, currently only the first one is used by the server
    {
        latency int    // # of frames pipes may fall behind application
        attributes
        {
             eye_base float // distance between left and right eye
        }

        (node|appNode) // 1-n times, a system in the cluster
                       // 0|1 appNode: launches render thread within app process
        {
            name     string
            connection // 0-n times, possible connections to this node
            {
                type          TCPIP | SDP
                TCPIP_port    unsigned
                hostname      string
                command       string      // render client launch command
                command_quote 'character' // launch command argument quote char
                timeout       unsigned    // timeout in milliseconds for launch
            }
            pipe // 1-n times
            {
                name     string
                port     unsigned     // X server number or ignored
                device   unsigned     // graphics adapter number
                viewport [ viewport ] // default: autodetect
                attributes
                {
                    hint_thread   OFF | ON   // default ON
                }

                window // 1-n times
                {
                    name     string
                    viewport [ viewport ] // wrt pipe, default full screen

                    attributes
                    {
                        hint_stereo         OFF | ON | AUTO
                        hint_doublebuffer   OFF | ON | AUTO
                        hint_decoration     OFF | ON
                        hint_fullscreen     OFF | ON
                        hint_swapsync       OFF | ON         // AGL, WGL only
                        hint_drawable       window | pbuffer
                        hint_statistics     off | fastest [on] | nicest
                        planes_color        unsigned
                        planes_alpha        unsigned
                        planes_depth        unsigned
                        planes_stencil      unsigned
                        planes_accum        unsigned
                        planes_accum_alpha  unsigned
                        planes_samples      unsigned
                    }
                    channel // 1-n times
                    {
                        name     string
                        viewport [ viewport ] //wrt window, default full window

                        attributes
                        {
                            hint_statistics     OFF | FASTEST [ON] | NICEST
                        }
                    }
                }
            }
        }
        compound // 1-n times
        {
            name     string
            channel  string   // where the compound's tasks are executed

            task     [ CLEAR DRAW READBACK ASSEMBLE ] // CULL later
            buffer   [ COLOR DEPTH ]         // default COLOR

            viewport [ viewport ]            // wrt parent compound, sort-first
            range    [ float float ]         // DB-range for sort-last
            pixel    [ int int ]             // pixel decomposition (step size)
            eye      [ CYCLOP LEFT RIGHT ]   // monoscopic or stereo view

            loadBalancer 
            {
                mode [ 2D | DB | VERTICAL | HORIZONTAL ]
            }

            attributes
            {
                stereo_mode                  QUAD | ANAGLYPH    // default QUAD
                stereo_anaglyph_left_mask    [ RED GREEN BLUE ] // default red
                stereo_anaglyph_right_mask   [ RED GREEN BLUE ] // df green blue
                update_FOV                   HORIZONTAL [ON] | VERTICAL | OFF
            }

            wall       // frustum description
            {
                bottom_left  [ float float float ]
                bottom_right [ float float float ]
                top_left     [ float float float ]
            }
            projection // alternate frustum description, last one wins
            {
                origin       [ float float float ]
                distance     float
                fov          [ float float ]
                hpr          [ float float float ]
            }
            
            child-compounds

            swapbarrier  // compounds with the same barriername sync swap
            {
                name string
            }
            outputframe
            {
                name   string
                buffer [ COLOR DEPTH ]
            }
            inputframe
            {
                name string // corresponding output frame
            }
        }
    }
}

Changes

#include "footer.shtml"