- 1. Introduction
- 2. New in this release
- 2.1. New Features
- 2.2. Enhancements
- 2.3. Optimizations
- 2.4. Examples
- 2.5. API Changes
- 2.6. Documentation
- 2.7. Bug Fixes
- 2.8. Known Bugs
- 3. About
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
- Automatic 2D and DB load-balancing
- Support for DPlex (time-multiplex, SFR) compounds
- Statistics Overlay to understand and eliminate bottlenecks in the rendering pipeline
- Easy configuration of thread synchronization model
- View API to modify the view parameters during rendering
- New OSWindow interface to simplify window system integration
- New 2D bitmap font to draw text
- Support for orthographic projections
- Support for OpenGL accumulation buffer and multisample setup
- Support for using Paracomp as a compositing backend
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. UseEvent::WINDOW_RESIZE
instead.- The new
OSWindow
interface moved all window system functionality from theeq::Window
to different subclasses ofOSWindow
. Applications integrating with their own windowing code have to implement anOSWindow
containing all the window system code, and instantiate thisOSWindow
inWindow::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 classesChannelEvent
andWindowEvent
are now unneeded and have been removed. The former base classEvent
is now used in the appropriate places. - The
eqBase
,eqNet
andeqServer
namespaces have been renamed toeq::base
,eq::net
andeq::server
, respectively. Application developers are encouraged to make the necessary changes, but can defineEQ_USE_DEPRECATED
if these changes are not feasible.
2.6. Documentation
- The Programming Guide has been extended to 62 pages and 37 figures.
- View API
- Statistics Overlay
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
- 2268547: fullscreen windows not always active on Win32
- 2151376: Irregular Pixel kernels do not work
- 2003195: Ortho frusta ignore eye offset
- 2003132: 3-wnd.DB.ds is broken on some ppc machines for eqPly
- 1997583: eqPly: ortho frustum culling broken
- 1959418: DB Compositing fails on MacBook with GMA X3100
- 1854948: eVolve: lighting ignores head transformation
- 1854929: eqPly GLSL shader has artefacts
- 1816670: eVolve: binary swap configs don't work
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.