Equalizer Documentation
0.6
1. Introduction
Welcome to Equalizer, a framework for the development and deployment of parallel, scalable OpenGL applications. Equalizer 0.6 delivers major new features, most notably support for DPlex compounds and automatic load-balancing.
Equalizer 0.6 can be retrieved by downloading the source code.
1.1. Features
Equalizer provides the following major features to facilitate the development and deployment of scalable OpenGL applications. A detailed feature list can be found on the Equalizer website.
-
Runtime Configurability: An Equalizer application can run on any configuration, from laptops to large-scale visualization clusters, without recompilation. The runtime configuration is externalized from the application to a system-wide resource server.
-
Runtime Scalability: An Equalizer application can aggregate multiple CPU's, GPU's and computers to increase the rendering performance of a single or multiple views.
-
Distributed Execution: Equalizer applications can be written to support cluster-based execution. The task of distributing the application data is facilitated by support for versioned, distributed objects.
-
Support for Stereo and Immersive Environments: Equalizer supports both active and passive stereo rendering, as well as head tracking, used in immersive Virtual Reality installations.
2. New in this release
Equalizer 0.6 contains the following features, enhancements, bug fixes and documentation changes:
2.1. New Features
2.2. Enhancements
-
Upgraded GLEW to version 1.5.1
-
Automatic image compression for 'slow' (< 2GBit) connections
-
Alpha-blending support in the CPU-based compositor
-
Support for two-dimensional pixel compound kernels
-
Support for using multiple clients with the netperf benchmark tool
-
Support window swap buffer vertical retrace synchronization on WGL
-
Add show and hide window events
2.3. Optimizations
-
Improved overall performance by using atomic operations for reference counted objects
-
Improved performance when using non-threaded pipes
-
Asynchronous network frame transmission during compositing
-
Assertions are disabled in release builds
-
Switch to CriticalSection for Win32 locks
2.4. Examples
-
eqPly: network-based instead of file-based model distribution
-
eqPly: added head-tracking emulation
-
eqPly: implemented event-driven execution
2.5. API Changes
-
The compound attribute
UPDATE_FOV has been removed, since view updates are handled by the application, using the new View API.
-
Event::RESIZE has been deprecated. Use Event::WINDOW_RESIZE instead.
-
The new
OSWindow interface moved all window system functionality from the eq::Window to different subclasses of OSWindow. Applications integrating with their own windowing code have to implement an OSWindow containing all the window system code, and instantiate this OSWindow in Window::configInitOSWindow. Please refer to the Programming Guide for a detailed description of the Window System Interface.
-
The
OSWindow interface also caused some cleanups in the event handling. Most notably, the classes ChannelEvent and WindowEvent are now unneeded and have been removed. The former base class Event is now used in the appropriate places.
-
The
eqBase, eqNet and eqServer namespaces have been renamed to eq::base, eq::net and eq::server, respectively. Application developers are encouraged to make the necessary changes, but can define EQ_USE_DEPRECATED if these changes are not feasible.
2.6. Documentation
2.7. Bug Fixes
Equalizer 0.6 includes various bugfixes over the 0.5 release, including the following:
-
2369549: Crash in wglSwapIntervalEXT
-
2284482: Head tracking broken with VS release builds
-
2263716: 5-channel.cave.eqc has wrong top/bottom wall
-
2166278: eq::net::Object with instance never uses pack/unpack
-
2149563: WGL: Update region is reset by event handler
-
2047816: name field in config missing
-
2033860: frameDrawFinish called too early and too often
-
2032643: eqHello: process-local server object gets not deleted.
-
2032631: Nullpointer exception and crash
-
2032643: process-local server object gets not deleted
-
2033860: frameDrawFinish called too early and too often
-
2149563: WGL: Update region is reset by event handler
-
2026837: swapbarrier calls increase with single-buffered windows
-
1997751: defines for EQ_BIT17 - EQ_BIT20 are wrong
-
1996988: AGL reports key press twice
-
1997579: Important WGL key events not reported
-
Fixed a big memory leak in the packet handling code, as well as numerous small bug fixes and code cleanups
-
1994798: Compound::getNode null pointer read
-
1981854: AGL: PBuffer with Fullscreen broken
-
1960225: Problems with windows getting focus on mac
-
1960098: eqPly crashes during rendering
2.8. Known Bugs
3. About
Equalizer is a cross-platform toolkit, designed to run on any modern operating system, including all Unix variants and the Windows operating system. A compatibility matrix can be found on the Equalizer website.
Equalizer requires at least OpenGL 1.1, but uses newer OpenGL features when available. Version 0.5.0 has been tested on:
3.1. Operating System Support
-
Linux: Ubuntu 6.10 (x64, i386), RHEL4 (x64, i386)
-
Windows: XP with Visual Studio 2005 (i386, x64) and Cygwin (i386)
-
Mac OS X: 10.5 (PowerPC, i386)
3.2. Window System Support
-
X11: Full support for all documented features.
-
WGL: Full support for all documented features.
-
AGL: Full support for all documented features.
3.3. Documentation
The Programming Guide is available as a hard-copy and online. API documentation can be found on the Equalizer website. Equalizer does not yet have an Users Guide.
As with any open source project, the available source code, in particular the shipped examples provide a reference for developing or porting applications. The Developer Documentation on the website provides further design documents for specific features.
3.4. Support
Technical questions can be posted to the Developer Mailing List, or directly to [email protected].
Commercial support, custom software development and porting services are available from Eyescale. Please contact [email protected] for further information.