Version History
Alpha Release: July 2001
- This was the initial public release of Chromium.
Beta Release: April 5, 2002
- Multi-context/window support This allows OpenGL applications to
create more than one 3D window or GL rendering context to work with
Chromium. See the 'minimum_window_size' and 'match_window_title' config
options. Some windows can be rendered by Chromium, others by the native
OpenGL.
- Improved OpenGL conformance. The OpenGL conformance and coverage
tests identified a lot of problems, many of which have been fixed. See
the doc/conformance.html file.
- Support for more than 32 clients and rendering contexts. The limit
may be specified in include/cr_bits.h
- glRead/DrawPixels support
- New Chromium extensions to OpenGL (see include/chromium.h) Among
these is an extension that allows client programs to get the tilesort
configuration parameters.
- Tilesort SPU validation test program. See cr/progs/tiletest/
- Specification of visual attributes to crCreateContext().
- addes stub functions for OpenGL 1.2 entrypoints and some extensions
to fix link problems.
- Improved GL error handling - don't just abort when we detect user's
GL errors.
- Evaluators support
- GL_EXT_texture_object support (for Performer)
- crCreateContext() now takes a bitmask of desired visual properties
and returns a context value which is passed to crMakeCurrent. See the
psubmit.d program for details.
- Linux Alpha AXP support
- Numerous bug fixes from application testing
- Fully functional readback SPU with support for Z-compositing and tile
reassembly.
- Thread safety. Programs can issue Chromium rendering commands from
several threads in parallel.
- Updated documentation
1.0 Release: September 30, 2002
- New Features
- Graphical configuration tool
- New SPUs:
- Feedback (OpenGL feedback & selection support)
- Perf (performance SPU) for collecting performance statistics
- Wet
- Motion blur
- New configuration options and features:
- Render SPU: render_to_app_window, resizable, display_string,
lut8
- Tilesort SPU: bucket_mode, dynamic tile configuration (tile
layout changable at runtime), warped tile support
- Readback SPU: tile/image reassembly
- Saveframe SPU: many new options
- Hiddenline SPU: added silhouette mode and fog color options
- New network (server) node options: only_swap_once, spu_dir
- New application node option: track_window_size, application,
start_dir, client_dll, spu_dir
- SunOS support (Jorge Luis Williams)
- OpenGL 1.2 support (but not ARB_imaging)
- New OpenGL extensions:
- GL_EXT_fog_coord support
- GL_ARB_point_parameters
- GL_NV_vertex_program (on app nodes only)
- GL_NV_fence (on app nodes only)
- GL_NV_vertex_array_range (on app nodes only)
- IPv6 support
- Quadrics network support
- OpenGL limits computed per context, not just once during start-up
- Header file clean-up (client apps should include chromium.h)
- Namespace cleanup (ex: BoundsInfo() is now BoundsInfoCR(),
similarly for semaphore and barrier functions)
- Thread safety clean-ups and fixes
- Improved OpenGL error handling
- city demo
- Bug Fixes
- Fixed GM memory leak (Michael Brodeur)
- Cygwin 5.1 patches (Sebastien Barre)
- Fixed sort-last rendering synchronization problems
- Fixed glRasterPos/glBitmap/display list bug in tilesort SPU
- Working binaryswap SPU
- Fixed tilesort bounding box / state broadcast bug
- Fixed overlapping tile bug in tilesort SPU / server
- glAreTexturesResident() fixed
- glGenTextures() fixed
- Fixed state tracker link bug (use static state tracker lib on
Unix)
- Fixed GM, teac, tcscomm glitches in mothership (David Thompson
and Joel Welling)
- Lots of other bug fixes
1.0.1 Release: November 7, 2002
- New Features
- Added ChromiumParameter*() functions to simplequery spu (David
Thompson)
- Added overlap_blending option to crserver (Karl Rasche)
- Render SPU swapbuffers synchronization (Karl Rasche)
- Added default_viewport option to feedbackSPU
- Bug Fixes
- Fixed bug in binaryswap SPU when using 32 nodes (Mike Houston)
- Fixed X display string bug when mixing Linux/Windows (Alan
Hourihane)
- Fixed a few minor SunOS compilation bugs (Jorge Luis Williams)
- Fixed divide by zero error in bounding box code (Brian Paul)
- Fixed a few problems in the feedback SPU (Brian Paul)
- glIsList() with tilesort didn't work.
- glDeleteLists() with a non-list index no longer causes an exit.
- Fixed RasterPos calculation of transformed Z component.
- Fixed FP exceptions caused by a bug in crPackMultiTexCoord
functions
- glPush/PopAttrib() didn't handle texture state correctly.
- Fixed parallel app state tracking bug that caused sporadic
lighting, among other symptoms (David Thompson)
- Fixed GLUquadric bug in EXT_separate_specular_color test program
1.1 Release: January 17, 2003
- New Features
- OpenGL 1.3 and 1.4 support, which includes...
- GL_ARB_multisample
- GL_ARB_multitexture
- GL_ARB_texture_border_clamp
- GL_ARB_texture_compression
- GL_ARB_texture_cube_map
- GL_ARB_texture_env_add
- GL_ARB_texture_env_combine
- GL_ARB_texture_env_dot3
- GL_ARB_transpose_matrix
- GL_ARB_depth_texture
- GL_ARB_shadow
- GL_ARB_point_parameters
- GL_ARB_texture_env_crossbar
- GL_ARB_texture_mirrored_repeat
- GL_ARB_window_pos
- GL_EXT_blend_color
- GL_EXT_blend_func_separate
- GL_EXT_blend_logic_op
- GL_EXT_blend_minmax
- GL_EXT_blend_subtract
- GL_EXT_fog_coord
- GL_EXT_multi_draw_arrays
- GL_EXT_secondary_color
- GL_EXT_stencil_wrap
- GL_SGIS_generate_mipmap
- GL_ARB_shadow_ambient
- GL_EXT_texture_lod_bias
- Added support for WGL_EXT_pixel_format (not tested and disabled
fow now) for enhanced Windows visual selection, like multisampling
-
CRUT - Chromium Utility Toolkit for parallel
applications (beta release)
- CRUT demonstration program: psubmit_crut
- New crserver configuration options: unique_display_lists,
unique_texture_objects
- Bug Fixes
- More GLX visual handling tweaks
1.2 Release: April 4, 2003
- New Features
- DMX integration - Chromium can now be used on a DMX display to provide
OpenGL rendering on a multi-screen desktop
- Optimizations to the crserver and state_tracker
- Added retile_on_resize option to tilesort SPU
- Added maximum_window_size and match_window_count options for app
nodes
- GL_IBM_raster_pos_clip extension support
- Improved support for multiple OpenGL windows
- Perf SPU now records glTexImage statistics
- Updated CRUT (Dale Beermann)
- Bug Fixes
- Updated Quadrics support (Joel Welling)
- glGetInteger/Float/etc queries of fog coord and secondary color
state didn't work
- The track_window_size option was mistakenly turned on by default
- Fixed a number of problems with user-specified bounding boxes in
the tilesort SPU.
- Don't abort if app requests a stereo visual
- Colormaterial fix
- Fixed split_begin_end problem in tilesort SPU
- Fixed some display list issues and bugs related to bounding boxes
- Fixed some glTexImage and pixel transfer bugs (Karl Rasche)
- glViewport didn't always work as expected on tiled displays
- Lots of other minor fixes
1.3 Release: July 4, 2003
- New Features
- Added borderless option to render SPU
- Added track_window_position option for application nodes
- New OpenGL extensions support:
- vertprog_projection_parameter config option for crserver. This is
useful for running Cg demos on tilesort displays, for example.
- bbox_scale config option for tilesort SPU. This is useful when
computing bounding boxes for geometry perturbed/warped by vertex
programs.
- Bug Fixes
- Fixed Alpha compilation problem
- The show_cursor option didn't work (must be set in both the
render SPU and the application node)
1.4 Release: August 29, 2003
- New Features
- Bug Fixes
- Fix glRasterPos bugs accidently introduced by a bad CVS merge.
- Fixed a few bugs in GL_SELECT mode.
- Fixed some demo compilation problems (GetProcAddress stuff).
- Fixed memory-usage bugs in ARB_multitexture2 demo.
- glIsList() and glIsTexture() didn't always work.
- Fixed ParaView / tilesort bug (David Thompson).
- Fixed some network buffer size issues that could cause random
failures.
- Update teac networking code (Joel Welling)
- Lots of other assorted fixes.
1.5 Release: December 17, 2003
- New Features
- OpenGL 1.5 support
- GL_ARB_vertex_buffer_object extension
- GL_ARB_point_sprite extension
- GL_ARB_texture_non_power_of_two extension
- GL_ARB_occlusion_query extension
- New scale_images option for tilesort SPU controls scaling of
glDrawPixels, glCopyPixels and glBitmap images.
- Off-screen rendering with OSMesa (sac at pobox.com)
- ZPix SPU for image compression in conjunction with Readback SPU
- Further display list improvements in tilesort SPU (only send
lists to servers when really needed)
- Bug Fixes
- Hiddenline SPU wasn't always working correctly
- Assorted minor bug fixes since previous release
- Changes
- New Python code generation system
- The readback and binaryswap SPUs no longer mask out the
CR_SUPPRESS_SWAP_BIT flag passed to crSwapBuffers. See the
progs/psubmit.c demo for details/comments.
1.6 Release: February 18, 2004
- New Features
-
Non-planar tilesort
-
Stereo rendering
- More robust auto-start support in mothership
- statusms program to query mothership status (John McPherson)
- Bug Fixes
- Fixed problems compiling with older versions of gcc
- Fixed a few compilation issues on Windows
- Fixed intermittent tilesort bug when using multiple app nodes
- Tilesort SPU had some thread safety bugs
- Using non-default port for mothership didn't work
- Calls to glTexGeni() could blow up in the tilesort SPU
- The render SPU's fake/virtual cursor was polluting the current
raster position
- Changes
- resetms now respawns auto-start nodes (Wes Bethel bug)
- state tracking for display lists is now disabled by default in
the tilesort SPU (see 'dlist_state_tracking' option).
- Known Problems
- The display list manager code used for state tracking in the
tilesort SPU doesn't work on Windows. This will occur when the
tilesort SPU's dlist_state_tracking option is enabled.
1.7 Release: April 15, 2004
- New Features
- npclient/npserver programs for measuring network performance
- spheres program for measuring triangle rendering rates
-
packertest for validating Chromium's
pack/unpack modules
- dlistest test for exercising display list support
- updated documentation
- Bug Fixes
- Fixed some issues with non-planar tilesort and stereo
- Packing/unpacking of glDeleteBuffersARB was broken
- Tilesort SPU used incorrect pixel store parameters for state
differencing
- glDeleteTextures and glDeleteProgramsARB didn't work properly
- Fixed additional bugs in the tilesort SPU related to display
lists
- Fixed many assorted pack/unpack bugs found with the packertest program
1.8 Release: March 23, 2005
- New Features
- Documented the dist_texture SPU
- quitms program to tell a running mothership to quit.
- Improved Darwin support
- New shared_windows option for Cr network/server nodes.
- Render SPU 'title' config option can have %i which gets replaced
by the window ID number.
- Added track_window_visibility option for app nodes.
- VNC server SPU.
- PBuffer support. The new CR_PBUFFER_BIT flag may be passed to
crCreateContext() and crWindowCreate() to indicate that
off-screen rendering is desired.
- Added force_pbuffers option for Application nodes.
- Added ignore_window_moves option for Render SPU.
- Changes
- Increased max 2D/cube/rectangle texture size to 4096
- Print SPU's GLenum value-to-string look-up table is
auto-generated now
- Bug Fixes
- glIsList() was broken in crserver
- Fixed dist_texture SPU problem in state tracker
- Fixed glColorMaterial bug in tilesort SPU
- Fixed segfault when building maximum mipmapped textures
- Tilesort SPU's pincher code was broken in 1.7
- glxgears on DMX display demonstrated a tile update bug - fixed
now.
- Fixed a display list / glMaterial bug in tilesort SPU
- Work around glXChooseVisual bug when using ATI OpenGL drivers.
- Added ignore_freeglut_menus option for application nodes
- Binary swap and Readback SPUs didn't properly handle
user-specified bounding boxes
- Fixed config tool problems on Darwin (Christopher Waters)
- Fixed mothership connection broker bug that could cause deadlocks
- Querying GL_MAX_VERTEX_ATTRIBS_ARB didn't work
- GL_GENERATE_MIPMAP_SGI didn't work reliably with tilesort
- Packing/unpacking of glAreTextures/ProgramsResident() was broken
- Any number of binary swap SPUs can now run on one host.
- Fixed some visual selection problems with CRUT.
- Fixed byte swapping problem when packing textures (Bill Feth).
- App-faker dispatcher no-ops GL calls if no current context.
1.9 August 31, 2006
- New Features
- exit_on_escape config and composite_mode options for CRUT server.
- New crutMakeCurrent() and crutSwapBuffers() functions.
- Hostname suffix for SDP can be set with CR_SDP_SUFFIX
environment variable.
- Bug Fixes
- Fixed Windows build issues (crutproxy/main.c)
- Fixed build issues with gcc 4.0
- Fixed broken pack/unpack of glCompressedTexImage functions
(Kevin Dale, Chris Waters)
- Fixed a few glReadPixels bugs (found by Joel Welling)
- Chromium would crash if OpenGL didn't support the
GL_ARB_vertex_buffer_object extension.
- Tilesort SPU's glReadPixels function sometimes didn't work
- Fixed dist_texture SPU and added test config/demo: dist_texture.conf
- Fixed a few issues with 'file:' protocol and demo configs
- glXMakeCurrent(ctx=NULL) caused a segfault (bug 1233768)
- Fixed IA64 -fPIC build issue (bug 1209469)
- Array SPU didn't handle glInterleavedArrays (bug 1182364)
- Fixed bugs in distributed texture feature
- Remove -Werror from release-mode CFLAGS
- Lots of Python code clean-up (tabs vs. spaces, etc)