Equalizer Changelog

What's new in Equalizer 1.6

Jun 28, 2013
  • New Features:
  • Camera-based head tracking using OpenCV
  • Asymmetric eye position
  • Runtime changeable segment frusta
  • Runtime changeable equalizer properties
  • VRPN head tracking
  • Enhancements:
  • Resistance to load_equalizers changes
  • Network interface selection for autoconfiguration
  • GLEW .. update
  • Spacemouse Linux support
  • Refactored statistics handling into external GLStats library
  • Custom HMD projection
  • Add default frustum on canvas
  • Bug Fixes:
  • Shared rendering context setup bugs
  • Auto-configured server connections are not removed
  • Sequel: crash on failed window initialization
  • util::Accum broken for operations with offset
  • Auto image compressor allocation always uses lossy downloader data
  • -window.DPLEX.D.lb.eqc does not load-balance
  • TileEqualizer queue linking broken
  • Alpha value wrong in eq::util::Accum::display
  • Monitor equalizer with FBO sources leads to crash

New in Equalizer 1.4.1 (Jun 28, 2013)

  • Enhancements:
  • RDMA Windows implementation
  • Optimizations:
  • Multi-GPU NVidia optimization
  • load_equalizer: split along longest axis in D mode
  • InfiniBand RDMA: significant performance increase using a different underlying implementation
  • Bug Fixes:
  • Launch error with empty host for a node bug
  • Readback of non-modulo- images broken
  • "--eq-logfile" followed by no other argument segfaults
  • WGL window compile error
  • eqPly crash on model load on Win
  • Memleak with pipe thread affinity
  • exPixelBench crashes
  • Non-freed GPUCompressors after application exit
  • Windows: PBO error when rendering

New in Equalizer 1.4 (Jun 28, 2013)

  • New Features:
  • Asynchronous readback support
  • Region of interest for scalable rendering and load-balancing
  • Automatic CPU-GPU affinity
  • Application-specific scaling to visualize data in a scale different to : in immersive environments
  • VirtualGL-aware auto-configuration
  • Zeroconf support and node discovery
  • Blocking co::Object::commit
  • Extensible packet dispatch
  • Enhancements:
  • System window without drawable buffer
  • Mac OS X: Build universal libraries even when AGL is enabled
  • auto-config: add direct send configuration
  • auto-config: save generated configuration to .eqc file
  • auto-config: application-specific flags for multiprocess execution
  • Optimizations:
  • Multi-GPU NVidia optimization
  • load_equalizer: split along longest axis in D mode
  • InfiniBand RDMA: significant performance increase using a different underlying implementation
  • Bug Fixes:
  • Crash in Image::upload when no uploader is found
  • Channel::configInit initID always
  • Repeated Canvas::useLayout OFF/ON causes violation of DRAW_SYNC thread ordering
  • Tile compound readback broken
  • Async readback deallocation
  • OS X: Async readback doesn't work
  • -window.DFR broken
  • compositor assertion when using custom frames
  • Command line option --eq-layout broken
  • seqPly --help launches application
  • Problem with getdomainname() in SocketConnection::listen()
  • Upload plugins are not freed
  • Packaging: netperf conflicts with other packages
  • Race with async channel tasks

New in Equalizer 1.2.1 (Jun 28, 2013)

  • Optimizations:
  • Race and performance issue with multicast object distribution
  • Bug Fixes:
  • RSP race during connection
  • Sequel missing from packages
  • Installed examples CMake build does not work
  • --eq-layout gets activated on second frame
  • Install find scripts in CMake root

New in Equalizer 1.0.2 (Dec 14, 2011)

  • Enhancements:
  • Compatibility with an external GLEW library
  • Improvements and spec file for RPM packaging
  • 45: Make RNG functional without init()
  • Support for Mac OS X 10.7 and RHEL 6.1

New in Equalizer 1.0 Alpha (0.9.2) (Mar 10, 2011)

  • 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

New in Equalizer 0.9.1 (Feb 6, 2010)

  • New Features:
  • Subpixel compounds for full-scene anti-aliasing (FSAA) or depth-of-field (DOF) decomposition
  • Data distribution and data updates using reliable UDP multicast
  • Support for writing applications which are not using OpenGL
  • Enhancements:
  • 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
  • Optimizations:
  • Configurable object serialization buffer size
  • Performance optimization for image compression
  • Reduce memory footprint for eq::net::Objects with change type DELTA
  • Examples:
  • EqPly: added anti-aliasing when the application is idle
  • EqPly: recursively search directories for models
  • EqPly: switch to faster VBO rendering on OSX
  • Tools:
  • No Changes
  • API Changes:
  • The following changes breaking compatibility with Equalizer 0.6 source code were made:
  • 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.
  • Documentation:
  • The following documentation has been added or substantially improved since the last release:
  • The Programming and User Guide has been extended to 91 pages and 53 figures.
  • The Accumulation Buffer Object API has been added to the Programming Guide.
  • The Subpixel compound provides FSAA and DOF decomposition
  • Multicast Data Transfer
  • Bug Fixes:
  • Equalizer 0.9.1 includes various bugfixes over the 0.9 release, including the following:
  • 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: Lockup at shutdown

New in Equalizer 0.9 (Aug 11, 2009)

  • New Features:
  • Automatic cross-segment load-balancing for multi-display installations
  • Dynamic Frame Resolution (DFR) for constant framerate rendering
  • Compression Plugin API for runtime-loadable image compression engines
  • Canvas and Layout API for runtime-switchable layouts and resource configurations: Simple configuration of physical projection system, Logical view layouts on multi-segment projection surfaces, Simple 2D operations on multi-segment projection surfaces, Run-time (de-)activation of nodes, pipes, windows and channels
  • Support for multiple observers in a single configuration
  • Support for Head-Mounted Displays (HMD)
  • Monitor Equalizer for the observation of other views
  • Up- and down-scaling for source channel pixel viewports, including zoom support for compositing
  • Support for hardware swapbuffer synchronization with nVidia G-Sync
  • Support for Framebuffer Objects (FBO)
  • Support for half_float and float PBuffers and FBOs
  • Spacemouse support (AGL only)
  • New helper class to handle dynamic libraries
  • New helper class for memory-mapped files
  • Enhancements:
  • Improved statistics overlay (added legend, FPS counter, image compression ratio, pipe idle ratio, framerate throttle statistic)
  • New helper class eq::Object 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 OSPipe interface
  • 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
  • Optimizations:
  • Lock-free network packet cache for low-latency, high-performance packet dispatch
  • Network layer uses asynchronous IO semantics and has better performance on Windows
  • 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
  • Examples:
  • 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
  • Tools:
  • affinityCheck: new command-line tool to list available affinity GPUs (WGL only)
  • configTool: added support for having an async compositing GPU for DB
  • configTool: added support for setting the destination window resolution
  • API Changes:
  • 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 the eq namespace instead of the vmml namespace.
  • The View API introduced in 0.6 has been replaced by the more powerful Layout/Canvas/Observer API
  • All window system specific calls have been moved from eq::Pipe to the corresponding eq::OSPipe implementation.
  • Config::setHeadMatrix and Config::setEyeBase have been deprecated. Use Config::getObservers, Observer::setHeadMatrix and Observer::setEyeBase instead.
  • The ChannelVisitor::Result type has been renamed to the generic 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 by eq::ObjectManager has been removed. This functionality proved unnecessary and complicated the API.
  • The enum value Event::EXPOSE has been renamed to Event::WINDOW_EXPOSE.
  • Documentation:
  • The Programming and User Guide has been extended to 86 pages and 52 figures.
  • Quickstart and Demo Guide
  • Equalizer: A Scalable Parallel Rendering Framework, IEEE Transactions on Visualization and Computer Graphics, vol. 15, no. 3, pp. 436-452, May/June 2009.
  • API Documentation
  • GPU Affinity Checker
  • Hardware swapbarrier for synchronization of multipipe displays
  • Compression Plugin API is the official interface to create binary plugins for data compression.
  • Layout API provides a way to configure physical projection surfaces with logical layouts and multiple observers.
  • Bug Fixes:
  • 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

New in Equalizer 0.6 RC1 (Nov 14, 2008)

  • 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
  • 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
  • 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
  • Examples:
  • eqPly: network-based instead of file-based model distribution
  • eqPly: added head-tracking emulation
  • eqPly: implemented event-driven execution
  • 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.
  • Documentation:
  • The Programming Guide has been extended to 62 pages and 37 figures.
  • View API
  • Statistics Overlay
  • Bug Fixes:
  • 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

New in Equalizer 0.5.5 (Oct 8, 2008)

  • Initial support for 2D pixel compound kernels.
  • New OSWindow interface to simplify window system integration.
  • Add eq::util::BitmapFont as a simple helper to draw 2D bitmap fonts.

New in Equalizer 0.5.4 (Aug 18, 2008)

  • Added window attributes for accumulation buffer and AA samples
  • Automatic 2D and DB load-balancing (initial support)
  • Automatic image compression for 'slow' (< 2GBit) connections
  • Improved statistics overlay appearance (auto-scaling, compression time)

New in Equalizer 0.5 (Apr 18, 2008)

  • Pixel compounds to accelerate fill-bound applications
  • GLEW integration for simplified OpenGL extension handling in a multi-context environment
  • Improved eVolve volume rendering example
  • Pluggable window initialization
  • Off-screen rendering support using PBuffers
  • Interoperability between Mac OS X and Windows XP (same endianess, Linux is untested)
  • Much increased DB (sort-last) assembly performance using a mixture of GLSL-based and CPU-based compositing
  • Improved network pixel transfer using parallel image compression through OpenMP
  • Pluggable window initialization
  • Fixed: Session::mapObject() might deadlock
  • Fixed: Initial window size is too small on Win32
  • Fixed: Bug with exiting examples on linux