Equalizer API Documentation
Welcome to Equalizer, the standard middleware to create and deploy parallel,
scalable OpenGL applications. Equalizer 0.9 delivers major new features, most
notably major new scalability features and a plugin API for image compression.
Equalizer 0.9 can be retrieved by downloading the
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
- Runtime Configurability: An Equalizer application is configured at
runtime and can be deployed on laptops, multi-GPU workstations and
large-scale visualization clusters without recompilation.
- Runtime Scalability: An Equalizer application can benefit from
multiple graphics cards, processors and computers to scale rendering
performance, visual quality and display size.
- 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 and
head-mounted displays used in immersive Virtual Reality installations.
2. New in this release
Equalizer 0.9 contains the following features, enhancements, bug fixes and
2.1. New Features
overlay (added legend, FPS counter, image compression ratio, pipe idle
ratio, framerate throttle statistic)
- New helper class
for easier data distribution of dynamic, versioned objects
- Texture-based frames for optimal compositing on a single GPU
- Upgraded to VMMlib 1.0
- Abstraction for window-system specific code through
- AGL event handling follows same threading model as GLX and WGL
- Config file versioning
- Synchronize clock used for logging across all nodes
- Improved handling for event-driven applications
- Lock-free network packet cache for low-latency, high-performance packet
- Network layer uses asynchronous IO semantics and has better performance on
- Per-component and differential RLE image compressor
- Use GL_UNSIGNED_INT depth buffer instead of GL_FLOAT for better
performance and compression
- DPlex framerate equalizer optimizations
- Faster serialization of std::vectors in distributed objects
- Named pipe connection for fast local communication on Windows
- eqOSG: new OpenSceneGraph-based example
- eqNBody: new, preliminary example showing integration with CUDA
- eqPly: added wireframe mode
- eqPly: added multi-model support
- eqPly: full support of the new layout API
- eqPly: added help overlay on 'F1'
- eqPly: optimized kD-tree layout
- eqPly: added walk-through mode
- eqPly: added loadable camera paths
- eqPly: added Spacemouse support (AGL only)
- eqPly: added command-line option to disable overlay logo
- eqPly: unified coloring to demonstrate decomposition
new command-line tool to list available affinity GPUs (WGL
- configTool: added support for having an async compositing GPU for DB
- configTool: added support for setting the destination window
2.6. API Changes
The following changes breaking compatibility with Equalizer 0.6 source code
- VMMlib, the vector and matrix
library used by Equalizer, was upgraded to version 1.0. The API of this
library changed, and all type definitions used by Equalizer now reside in
eq namespace instead of
- The View API introduced in 0.6 has been replaced by the more powerful
- All window system specific calls have been moved
eq::Pipe to the corresponding
have been deprecated. Use
ChannelVisitor::Result type has been renamed to the
VisitorResult type used by all visitors.
- The access to pixel data in
eq::Image has been slightly
changed by the introduction of compression plugins.
- The enum
Node::IATTR_HINT_STATISTICS has been removed since
it is not used anymore.
- Reference counting of OpenGL objects allocated
eq::ObjectManager has been removed. This functionality proved
unnecessary and complicated the API.
- The enum value
Event::EXPOSE has been renamed
The following documentation has been added or substantially improved since the
2.8. Bug Fixes
Equalizer 0.9 includes various bugfixes over the 0.6 release, including
- 2822348: No latency when event-driven
- 2803528: assertion with zero area pvps
- 2797391: Error state in parser not reset
- 2788964: Suspicious compiler warning
- 2782038: Mapping of multiple Objects of type DELTA creates assertions
- 2778587: eqServer crashes when running without an appNode
- 2688797: Configs with no appNode crash
- 2592240: DPlex LB breaks swapbarrier
- 2556921: AGL context updates broken
- 2545209: crashes on specific configs
- 2458583: Mouse buttons are numbered differently between AGL and GLX
- 2268547: fullscreen windows not always active on Win32
- 1997583: eqPly: ortho frustum culling broken
- 1816670: eVolve: binary swap configs don't work
2.9. Known Bugs
The following bugs were known at release time. Please file a
Report if you find any other issue with this release.
- 2796444: Race during simultaneous node connect
- 2642034: Win32: max 64 connections possible
- 2609161: zoom: depth readback does not work
- 2556940: zoom: FBO usage
- 2003195: Ortho frustra ignores eye offset
- 1854948: eVolve: lighting ignores head transformation
- 1854929: eqPly GLSL shader has artefacts
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 requires at least OpenGL 1.1,
but uses newer OpenGL features when available. Version 0.9 has been tested
3.1. Operating System Support
- Linux: Ubuntu 8.04, 9.04 (i386)
- Windows: XP with Visual Studio 2005 (i386, x64)
- 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.
The Programming and User Guide is available as a
and online. API documentation can be
found on the Equalizer website.
As with any open source project, the available source code, in particular the
provide a reference for developing or porting applications. The
Developer Documentation on the website
provides further design documents for specific features.
Technical questions can be posted to the
Developer Mailing List, or directly to
Commercial support, custom software development and porting services are
available from Eyescale. Please contact
for further information.