1.0-alpha
1. Introduction
Welcome to Equalizer, the standard middleware to create and deploy parallel,
scalable OpenGL applications. This release introduces the Collage library,
support for GPU compression plugins and an administrative API for runtime
configuration changes.
Equalizer 1.0-alpha is a developer release, representing the full feature set
and API of Equalizer 1.0. It is intended for application developers to provide
feedback and preview the 1.0 release. Equalizer 1.0-alpha can be retrieved by
downloading the
source
code, updating the subversion trunk to revision 5385 (svn up -r
5385
) or by using:
svn co
https://equalizer.svn.sourceforge.net/svnroot/equalizer/tags/release-0.9.2
The internal version number of this release is 0.9.2.
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 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. Equalizer furnishes and uses the Collage
network library, a cross-platform C++ library for building heterogenous,
distributed applications.
- 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 1.0-alpha contains the following features, enhancements, bug fixes
and documentation changes:
2.1. New Features
1.0-alpha (0.9.2):
- Collage: an object-oriented network library, formerly known
as
eq::net
. Eventually Collage will be separated completely
from Equalizer. (technology preview)
- CMake build system for all supported platforms
- Support
for GPU-CPU
transfer and compression plugins
- Failure
tolerance during initialization
- Administrative
API for runtime configuration changes (technology preview)
- Runtime
stereo switching to select mono and stereo rendering at application
runtime
- Slave
object commit supports serializing changed data on a slave object
instance to the master instance
- Automatic compression of distributed object data
- Support for pixel formats with 10 bit per color component
- Rendering capabilities
allow application-dependent (de-)activation of channels
- Interruptible
rendering allows applications to stop rendering on all pending
frames
0.9.1:
2.2. Enhancements
1.0-alpha (0.9.2):
- Support for Windows 7
- Upgraded GLEW to version
1.5.7.3
- Structured error reporting
- Statistics overlay: Add compression and download ratio, render overlay
without usage of depth buffer
- CPU compression plugins: allow different output from input token
- New command line argument
--eq-logfile
- New compound auto stereo mode detection (active, anaglyph, passive)
- RFE
2809019: Specify connection from a config file when using appNode
- RFE
3086646: Load and view equalizer: consider assemble time
- RFE
3036064: View and load equalizer should consider network times
- RFE
2927688: Loadbalancer tile sizes should not exceed channel PVP's
0.9.1:
- Support for Mac OS X 10.6 Snow Leopard
- Tile and range boundaries for the load equalizer
- New
eq::util::Accum
class for accumulation operations using an FBO or the OpenGL accumulation
buffer
- Multiple windows on the same pipe can join the same software swap
barrier
- Configurable
message pump
- Added attached and detach notification to
co::Object
.
2.3. Optimizations
1.0-alpha (0.9.2):
- Mac OS X: Use SpinLocks over pthread locks for significantly improved
performance in various places
- Collage: Simplify and speed up command packet dispatch and invocation
- Collage: Optimize RSP multicast using sliding ack window with early
acks
- Collage: Send object instance data during registration to accelerate
object mapping
0.9.1:
- Configurable object serialization buffer size
- Performance optimization for image compression
- Reduce memory footprint for eq::net::Objects with change type DELTA
2.4. Examples
1.0-alpha (0.9.2):
- New OSGScaleViewer
example, evolved from eqOSG contribution
- EqPly: Run-time configurable image quality
- EqPly: Run-time toggling of idle anti-aliasing
0.9.1:
- EqPly: added anti-aliasing when the application is idle
- EqPly: recursively search directories for models
- EqPly: switch to faster VBO rendering on OSX
2.5. Tools
2.6. API Changes
The following changes breaking compatibility with Equalizer 0.6 source code
were made:
1.0-alpha (0.9.2): API changes for this release have been tracked
in CHANGES.txt.
0.9.1:
- The utility classes
Accum
, AccumBufferObject
,
FrameBufferObject
and Texture
where moved from
the eq
to the eq::util
namespace.
eq::Window::getColorType
has been changed
to getColorFormat
for consistency.
- The font handling provided by
eq::Window
has been refactored
for non-OpenGL rendering support.
2.7. Documentation
The following documentation has been added or substantially improved since the
last release:
1.0-alpha (0.9.2):
0.9.1:
2.8. Bug Fixes
Equalizer 1.0-alpha includes various bugfixes over the 0.9 release,
including the following:
1.0-alpha (0.9.2):
- 2976899:
Config::finishFrame deadlocks when no nodes are active
- 2994111:
Rounding errors with 2D LB and 16 sources
- 3137933:
GLXEW init buggy
- 2882248:
Spurious network deadlocks on Win32
- 3071764:
GLX: No distinction between lowercase and uppercase keys
0.9.1:
- 2873353: Usage of ext/hash_map and -Werror causes compiler error
- 2834063: eqPly and eVolve freezes on Mac with glX
- 2828269: eVolve depth compositing is broken
- 2642034: Win32: max 64 connections possible
- 2874188:
Occasional lockup at shutdown
2.9. Known Bugs
The following bugs were known at release time. Please file a
Bug
Report if you find any other issue with this release.
- 3136383 Windows 7 non-affinity PBuffers broken
- 2934387: Ubuntu: GLX problem with PBuffer
- 2843849: 64-bit bug in eVolveConverter
- 2796444: Race during simultaneous node connect
- 2609161: zoom: depth readback does not work
- 2556940: zoom: FBO usage
- 2003195: Ortho frustra ignores eye offset
- 1854929: eqPly GLSL shader has artefacts
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 1.0-alpha has been
tested on:
3.1. Operating System Support
Equalizer uses CMake to create a platform-specific build environment. The
following platforms and build environments are tested:
- Linux: Ubuntu 10.04, 10.10 (Makefile, i386, x64)
- Windows: XP and 7 (Visual Studio 2008, i386, x64)
- Mac OS X: 10.5, 10.6 (Makefile, XCode, i386, x64)
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 and User Guide is available as a
hard-copy
(0.9) and online
(1.0
alpha). API
documentation can be found on the Equalizer website.
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. XCode users can
download
a Documentation
Set.
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.
4. Errata
0.9.1:
- Patch
to fix occasional compilation errors on Windows when using
EQ_IGNORE_GLEW.