Skip to content

Equalizer is the standard middleware to create and deploy parallel OpenGL-based applications. It enables applications to benefit from multiple graphics cards, processors and computers to scale the rendering performance, visual quality and display size. An Equalizer application runs unmodified on any visualization system, from a simple workstatio…

License

oliver-e/Equalizer

 
 

Repository files navigation

1. Introduction

Welcome to Equalizer, the standard middleware to create and deploy parallel, scalable OpenGL applications. This release TBD

Equalizer 1.2 is a feature release extending the 1.0 API, distilling over 6 years of development and decades of experience into a feature-rich, high-performance and mature parallel rendering framework and an object-oriented high-level network library. It is intended for all application developers creating parallel, interactive OpenGL applications. Equalizer 1.2 can be retrieved by downloading the source code or one of the precompiled packages.

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 automatically or manually 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.2 contains the following features, enhancements, bug fixes and documentation changes:

2.1. New Features

  • Automatic local and remote configuration using the GPU-SD library
  • Initial release of Sequel, a simplification and utility layer on top of Equalizer, enabling rapid development of clustered multi-GPU applications
  • Runtime failure tolerance detecting hardware and software failures
  • Tile compounds for fill-limited rendering such as direct volume rendering and interactive raytracing
  • Distributed single-producer, multi-consumer queue
  • RDMA-based connection class for InfiniBand (Linux only)
  • Support push-based object distribution

2.2. Enhancements

  • Added FindEqualizer.cmake and FindCollage.cmake for integration of Equalizer and Collage in CMake build environments
  • Support for render clients without listening sockets
  • Per-segment or per-canvas swap barriers
  • Allow the image compressor to be chosen by the application
  • Allow and prefer external GLEW installation during compilation
  • Upgrade internal GLEW version to 1.7.0
  • Implement EQ_WINDOW_IATTR_HINT_SWAPSYNC for GLX
  • Add time member to eq::Event recording time when the event was received from the operating system
  • 43: Add View::isActive and Layout::isActive
  • 45: Make RNG functional without co::base::init
  • Implement maximum size of multi-threaded queue, resulting in blocking push operations
  • Extend co::base::SpinLock and ScopedMutex with read-write semantics
  • Make Collage usable from multiple libraries by allowing init and exit to be called multiple times

2.3. Optimizations

  • Make LocalNode::registerObject and Object::commit parallelizable by executing object serialization from calling thread

2.4. Examples

  • Provide CMake files for installed examples
  • seqPly: An new example similar to eqPly, but using the Sequel API
  • eqAsync: A new example demonstrating OpenGL context sharing for asynchronously texture uploads
  • eqHello: Ported to Sequel

2.5. Tools

  • No Changes

2.6. API Changes

The following API changes may impact existing applications:

  • Removed co::Object::commitNB and commitSync since the commit request is no longer dispatched to command thread. Use commit instead.
  • Moved installed client headers to eq/client. Applications should always use eq/eq.h instead of individual headers.
  • Added a return value and timeout to co::LocalNode::acquireSendToken(), see method documentation.
  • Changed 'uint32_t eq::Version::getRevision()' to 'std::string eq::Version::getRevision()'

2.7. Documentation

The following documentation has been added or substantially improved since the last release:

2.8. Bug Fixes

Equalizer 1.2 includes various bugfixes over the 1.0 release, including the following:

  • RSP: Fix scattered ack implementation
  • 29: NV swap barrier with affinity context does not work
  • 45: Make co::base::RNG function without init()
  • 56: Parsing configuration files is locale-dependent and fails in some locales
  • 66: Assertion when using the server for more than one session

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.

  • 65: Startup crash with Multi-GPU config
  • 61: VMMlib static initializer issue
  • 58: netperf/RDMA exit deadlock
  • 49: eqPixelBench crash with double free
  • 19: zoom readback with FBO
  • 18: zoom: depth readback does not work
  • 17: AGL: Window close does not 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 1.2 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, 11.04, 11.10, RHEL 6.1 (Makefile, i386, x64)
  • Windows: XP and 7 (Visual Studio 2008, i386, x64)
  • Mac OS X: 10.6, 10.7 (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 and online. 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 info@equalizergraphics.com.

Commercial support, custom software development and porting services are available from Eyescale. Please contact info@eyescale.ch for further information.

4. Errata

About

Equalizer is the standard middleware to create and deploy parallel OpenGL-based applications. It enables applications to benefit from multiple graphics cards, processors and computers to scale the rendering performance, visual quality and display size. An Equalizer application runs unmodified on any visualization system, from a simple workstatio…

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 91.7%
  • C 8.0%
  • Other 0.3%