Mesa Version History
====================

.. note::

   Changes for Mesa 6.4 and later are documented in the corresponding
   :doc:`release notes <relnotes>` file.

1.0 beta February 1995
----------------------

-  Initial release

1.1 beta March 4, 1995
----------------------

Changes:

-  faster point and line drawing (2x faster)
-  more systems supported, better Makefiles
-  Renamed lib*.a files to avoid collisions
-  many small bug fixes

New:

-  pseudo-GLX functions added
-  new implementation of evaluators (eval2.c)
-  GLUT support

1.1.1 beta March 7, 1995
------------------------

Changes:

-  Reverted from eval2.c to eval.c due to FPE on Linux
-  more speed improvements
-  more Makefile changes

1.1.2 beta March 14, 1995
-------------------------

New:

-  implementation of SGI's blending extensions
-  glXUseXFont implemented
-  added MESA_DEBUG environment variable support

Changes:

-  Using eval2.c again
-  more FPE-prevention checks (0-length normals are OK)
-  a few small bug fixes
-  much faster pixel logic ops!
-  faster transformation arithmetic

1.1.3 beta March 31, 1995
-------------------------

New:

-  gluScaleImage() and gluBuild2DMipMaps() implemented
-  Mesa widgets for Xt/Motif
-  blendEXT demos
-  added environment variables for selecting visuals

Changes:

-  almost all GLUT demos work correctly now
-  faster X device driver functions
-  more bug fixes

1.1.4 beta April 20, 1995
-------------------------

Bug fixes:

-  missing #define SEEK_SET in src-tk/image.c
-  compile glShadeModel into display lists
-  fixed pow() domain error in src/light.c
-  fixed "flickering bitmaps" in double buffer mode
-  fixed tk.h and aux.h for C++
-  state of LIGHT_MODEL_LOCAL_VIEWER was inverted

New features:

-  MUCH, MUCH nicer dithering in 8-bit RGB mode
-  updated widgets and widget demos
-  Implemented GLXPixmap functions
-  Added GLU 1.1 and GLX 1.1 functions
-  Changed the X/Mesa interface API, more versatile
-  Implemented gluPartialDisk()

1.2 May 22, 1995
----------------

Bug fixes:

-  IRIX 4.x makefile problem
-  modified tk to share root colormap as needed
-  gluLookAt normalization problem
-  suppress Expose, NoExpose events in swapbuffers
-  glBitmap() and glDrawPixels() clipping

New features:

-  GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture modes
   implemented
-  texture maps stored more efficiently
-  texture maps can be compiled into display lists
-  Bogdan Sikorski's GLU polygon tesselation code
-  Linas Vepstas's sweep and extrusion library
-  glXCreateContext()'s shareList parameter works as it's supposed to.
   XMesaCreateContext() updated to accept a shareList parameter too.
-  Mesa can be compiled with real OpenGL .h files
-  MESA_BACK_BUFFER environment variable
-  better GLX error checking

1.2.1 June 22, 1995
-------------------

Bug fixes:

-  X/Mesa double buffer window resize crash
-  widgets now pass PointerMotion events
-  X/Mesa incorrect default clear color and drawing color
-  more robust X MIT-SHM support in X/Mesa
-  glTexImage( format=GL_LUMINANCE ) didn't work
-  GL_LINE mode polygons with line width > 1.0 could cause a crash
-  numerous feedback bugs
-  glReadPixels() from depth buffer was wrong
-  error prone depth and stencil buffer allocation New features:
-  Preliminary Microsoft Windows driver
-  Implemented a number of missing functions: glEvalCoord[12][df]v(),
   glGet...(), etc.
-  Added a few missing symbols to gl.h and glu.h
-  Faster rendering of smooth-shaded, RGBA, depth-buffered polygons.
-  Faster rendering of lines when width=2.0
-  Stencil-related functions now work in display lists

Changes:

-  renamed aux.h as glaux.h (MS-DOS names can't start with aux)
-  most filenames are in 8.3 format to accommodate MS-DOS
-  use GLubytes to store arrays of colors instead of GLints

1.2.2 August 2, 1995
--------------------

New features:

-  texture mapped points and lines
-  NURBS! (but not 100% complete)
-  viewports may safely extend beyond window boundaries
-  MESA_PRIVATE_CMAP environment variable
-  Grayscale X display support
-  two new demos: demos/gears.c and demos/shadow.c
-  MachTen for Macintosh configuration

Bug fixes:

-  glGet*(GL_DEPTH_BITS) returned bytes, not bits
-  point, line, and bitmap rasterization suffered from roundoff errors
-  fixed a division by zero error in line clipping
-  occasional wrong default background color really fixed!
-  glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work
-  gluBuild2DMipmaps malloc problem fixed
-  view volume clipping of smooth shaded lines resulted in bad colors

Changes:

-  new visual selection method in glXChooseVisual()
-  improved GLU quadric functions
-  call XSync for glFinish and XFlush for glFlush
-  glVertex() calls now use a function pointer to avoid conditionals
-  removed contrib directory from Mesa tar file (available on ftp site)
-  AIX shared library support
-  Removed GLUenum type as it's not in OpenGL

1.2.3 September 26, 1995
------------------------

New features:

-  Mesa header files now equivalent to SGI OpenGL headers
-  Support for HP's Color Recovery dithering displays
-  Faster vertex transformation
-  Faster raster operations into X windows under certain conditions
-  New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General
-  4-bit visuals now supported

Bug fixes:

-  glScissor bug fixed
-  round-off errors in clipping lines against clip planes fixed
-  byte swapping between hosts and display servers implemented
-  glGetError() can be called without a current rendering context
-  problem with accidentally culled polygons is fixed
-  fixed some widget compilation problems

1.2.4 November 17, 1995
-----------------------

New features:

-  More speed improvements (lighting, fogging, polygon drawing)
-  Window system and OS-independent off-screen rendering
-  Preliminary Fortran bindings
-  glPolygonOffsetEXT implemented
-  glColorMask and glIndexMask now fully implemented
-  glPixelZoom implemented
-  display lists fully implemented
-  gamma correction
-  dithering in 8-bit TrueColor/DirectColor visuals

Changes:

-  Improved device driver interface
-  tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk
-  Dithering support moved from core into device driver

Bug fixes:

-  glEnable/Disable( GL_LIGHTING ) didn't always take effect
-  glReadPixels byte swapping was broken
-  glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken
-  duplicate glColor4b() prototype in GL/gl.h removed
-  stripes in wave -ci demo fixed
-  GL_LINEAR_MIPMAP_NEAREST had wrong value
-  bugs in HP Color Recovery support fixed
-  fixed bug when blending lines, points, bitmaps outside of window

1.2.5 November 30, 1995
-----------------------

New Features:

-  updated MS Windows driver
-  new implementation of StaticGray/GrayScale visual support

Bug fixes:

-  pixelzooming with gamma correction or blending didn't work
-  HP color recovery visual wasn't being picked by glXChooseVisual
-  glClear didn't always observe glColorMask changes
-  olympic and offset demos didn't compile on some Suns
-  texcoord clamping wasn't correct
-  a polygon optimization introduced an occasional sampling problem

1.2.6 January 26, 1996
----------------------

New Features:

-  faster line and polygon rendering under certain conditions. See
   Performance Tips 9 and 10 in README
-  profiling
-  lighting is a bit faster
-  better perspective corrected texture mapping
-  Amiga AmiWin (X11) support
-  preliminary Linux SVGA driver Changes:
-  now using a 16-bit depth buffer, faster, smaller
-  GL_NORMALIZE is disabled by default

Bug fixes:

-  projective texture mapping
-  fixed a memory leak in the context destroy function
-  GL_POLYGON with less than 3 vertices caused a crash
-  glGet*() returned wrong result for GL_INDEX_MODE
-  reading pixels from an unmapped X window caused a BadMatch error

1.2.7 March 5, 1996
-------------------

New:

-  faster lighting
-  faster 16-bit TrueColor rendering on Linux
-  faster 32-bit TrueColor rendering on Linux, HP, IBM
-  non-depth-buffered XImage polygons are faster
-  vertex array extension
-  software alpha planes
-  updated Macintosh driver
-  new NeXT driver
-  GLU quadric functions generate texture coordinates
-  reflect.c demo - reflective, textured surface demo

Changes:

-  gamma correction code moved into the X driver for better performance

Bug fixes:

-  multiple glClipPlane()'s didn't work reliably
-  glPolygonMode() didn't always work
-  glCullFace( GL_FRONT_AND_BACK ) didn't work
-  texture mapping with gamma correction was buggy
-  floating point exceptions in texture coordinate interpolation
-  XImage byte swapping didn't always work
-  polygon edge flags weren't always used correctly

1.2.8 May 22, 1996
------------------

New:

-  overlay planes on X servers with the SERVER_OVERLAY_VISUALS property
-  better monochrome output
-  more IRIX 6.x configurations
-  more robust RGB mode color allocation
-  added MESA_XSYNC environment variable
-  GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions
-  GL_MESA_window_pos extension
-  faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT
   and GL_UNSIGNED_INT
-  driver for prototype Cirrus Mondello 3-D board
-  updated AmigaDOS driver
-  a few small speed optimizations in polygon rendering

Changes:

-  internal device driver interface modified to simplify device driver
   implementations and to support hardware Z buffers
-  several changes to the X/Mesa interface (xmesa.h)

Bug fixes:

-  fixed pow(0,0) domain error triggered on some systems
-  glStencilClear() in a display list caused an infinite loop
-  glRasterPos*() was sometimes off by +/-0.5 in X and Y
-  color masking and blending were performed in wrong order
-  auxSolidCylinder() sometimes drew a wire-frame cylinder
-  fixed file writing bug in osdemo.c
-  pixel mapping didn't always work
-  the GL_GEQUAL stencil func didn't work
-  the GL_INVERT stencil op didn't work
-  the stencil write mask didn't work
-  glPush/PopAttrib() didn't do enough error checking
-  glIsList() didn't always work correctly

2.0 October 10, 1996
--------------------

New:

-  Implements OpenGL 1.1 API functions
-  all texture filtering modes supported (mipmapping)
-  faster texture mapping, see Performance Tip 11 in README
-  antialiased RGB points
-  X support for line and polygon stippling
-  glDrawBuffer( GL_FRONT_AND_BACK ) works
-  util/ directory of useful stuff
-  demos/texobj demo of texture objects

Changes:

-  major internal changes for thread-safeness
-  new device driver interface
-  MESA_ALPHA env variable removed
-  triangle rasterizer replaces polygon rasterizer

Bug fixes:

-  glPopAttrib() bug
-  glDrawBuffer(GL_NONE) works now

2.1 December 14, 1996
---------------------

New:

-  VMS support
-  MS-DOS driver
-  OpenStep support
-  updated, combined Windows 95/NT driver
-  implemented glGetLighti() and glGetTexGen*()
-  GLX does garbage collection of ancillary buffers

Bug fixes:

-  removed unused \_EXT constants from gl.h
-  fixed polygon offset bugs
-  Z coordinates of clipped lines were incorrect
-  glEdgeFlag() in display lists didn't always work
-  glLight*() in display lists didn't work
-  fixed X line stipple bugs (Michael Pichler)
-  glXUseXfonts XFreeFont/XFreeFontInfo bug fixed
-  fixed a feedback bug
-  glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix
-  polygons were sometimes culled instead of clipped
-  triangle rasterizer suffered from float/int overflow exceptions
-  fixed FP underflow exception in lighting (specular exponent)
-  glEnable/glDisable of GL_EXT_vertex_array enums didn't work
-  fixed free(NULL) in GLU tesselator code
-  using 24-bit color on some X servers resulted in garbage rendering
-  32-bit per pixel mode for XFree86 now works
-  glRotate(a,0,0,0) gave unpredictable results
-  GL_LINE_STRIP with > 480 vertices had occasional clipping problems
-  8-bit TrueColor GLXPixmap rendering incorrectly required a colormap
-  glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled
-  glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right
-  accumulation buffer was limited to positive values
-  projective textures didn't work
-  selection buffer overflows weren't handled correctly

Changes:

-  restored the GL_EXT_polygon_offset extension
-  slightly faster RGB dithering
-  the SVGA driver works again
-  Amiga driver now distributed separately
-  NeXT driver updated for Mesa 2.x

2.2 March 14, 1997
------------------

New:

-  better color selection when dithering
-  added GL_EXT_texture_object extension
-  updated MS-DOS driver for DJGPP
-  added openbsd make configuration
-  faster dithered flat-shaded triangles
-  various compilation problems with Motif widgets fixed
-  gl.h, glx.h and glu.h name mangling option
-  BeOS driver
-  3D texture mapping extension
-  GL_MESA_resize_buffers extension
-  morph3d, stex3d and spectex demos
-  3Dfx support

Bug fixes:

-  glColorMaterial should finally work right in all respects
-  linear interpolation of mipmap levels was incorrectly weighted
-  readpix.c didn't compile on Macintosh
-  GL_INVERT and related logic ops didn't work right
-  glTexImage[12]D() didn't check its parameters consistently
-  fixed a memory leak in glTexImage[12]D()
-  kludged around a SunOS 5.x/GCC compiler bug in the feedback code
-  glReadPixels aborted instead of normally catching some errors
-  a few 1.1 constants were missing or misnamed in gl.h
-  glBegin(p); glBegin(q); didn't generate an error
-  fixed a memory leak in GLX code
-  clipping of concave polygons could cause a core dump
-  1-component alpha texture maps didn't work
-  fixed a GLU polygon tesselator bug
-  polygons with colinear vertices were sometimes culled
-  feedback triangle colors were wrong when using smooth shading
-  textures with borders didn't work correctly
-  colors returned in feedback mode were wrong when using lighting
-  spotlights didn't effect ambient lighting correctly
-  gluPartialDisk() had a few bugs

Changes:

-  device driver interface expanded to support texture mapping
-  faster matrix inversion subroutine
-  commented out #include "wmesa_extend.h" from src/wmesa.c
-  fixed many compiler warnings in the demo programs

2.3 June 30, 1997
-----------------

New:

-  Mesa distribution divided into two pieces: library code and demos
-  faster vertex transformation, clip testing, lighting
-  faster line drawing
-  TrueColor visuals how have dithering (for depths < 24 bits)
-  added MESA_NO_DITHER environment variable
-  new device driver function: NearFar(), RenderVB(), RasterSetup()
-  added LynxOS configuration
-  added cygnus Win32 configuration
-  added texcyl.c GLUT demo
-  added XMesaDitherColor() to X/Mesa interface
-  new NURBS code from Bogdan Sikorski
-  added demos/shape.c (non-rectangular X window!)

Bug fixes:

-  glEnable/DisableClientState() were missing from GL/gl.h
-  GL_SPHERE_MAP texcoord generation didn't work correctly
-  glXGetConfig() returned wrong number of depth, stencil, accum bits
-  glDrawPixels feedback/selection didn't examine RasterPos valid bit
-  black and white were reversed on some monochrome displays
-  fixed potential image memory leak (wasn't setting reference counter)
-  glDrawPixels sometimes didn't recognize some GL state changes
-  gluProject/UnProject() didn't check for divide by zero
-  stex3d demo called random() and srandom(), not portable
-  fixed memory leaks in context.c and drawpix.c
-  fixed NULL dereferencing problem in gl_update_texture_state()
-  glReadPixels between glBegin/glEnd didn't generate an error.
-  fixed memory leak in polygon tesselator (Randy Frank)
-  fixed seg fault bug drawing flat-shaded, depth-tested lines
-  clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded
-  glBindTexture sometimes didn't work
-  fixed a bug deep in glXReleaseBuffersMESA()
-  fog was mistakenly applied to alpha
-  glPopMatrix didn't set "dirty matrix" flag
-  glPolygonStipple pattern was sometimes wrong
-  glClear wasn't disabled during feedback and selection
-  fixed memory leak in glTexSubImage[123]D

Changes:

-  many library source files reorganized
-  faster X color allocation, colors also freed when finished with them
-  new texture sampling function pointer in texture objects
-  incorporated 3Dfx VooDoo driver v0.16 into main source tree
-  many 3Dfx driver updates
-  cygnus Makefiles now included
-  updated DOS driver
-  made a few changes to dosmesa.c and wmesa.c (VB->Unclipped)
-  internally, colors now stored in GLubytes, not GLfixed
-  optimized changing of GL_SHININESS parameter

2.4 September 18, 1997
----------------------

New:

-  updated 3Dfx Glide driver
-  hacks for 3Dfx rendering into an X window or fullscreen
-  added depth buffer access functions to X/Mesa and OS/Mesa interfaces

Bug fixes:

-  pixel buffer could overflow with long, wide lines
-  fixed FP underflow problems in lighting
-  glTexSubImage1D() had an unitialized variable
-  incomplete texture objects could cause a segfault
-  glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop
-  flat-shaded quads in a strip were miscolored if clipped
-  mipmapped triangle lod computation now works correctly
-  fixed a few under/overflow bugs in triangle rasterizer
-  glArrayElement() assigned bad normal if normal array disabled
-  changed argument to glXReleaseBuffersMESA()
-  fixed small triangle underflow bugs in tritemp.h (hopefully)
-  glBindTexture(target, 0) caused a crash
-  glTexImage[123]D() with NULL image pointer caused crash
-  glPixelStore parameters are now ignored during display list execution
-  fixed a two-sided lighting w/ clipping bug (black vertices)
-  textures with width!=height were sometimes mis-rendered
-  "weird" projection matrices could cause div by 0, other fp errors

Changes:

-  changed precompiled header symbol from PCH to PC_HEADER
-  split api.c into api1.c and api2.c
-  added hash.c source file (but not used yet)
-  a few Sun and HP configuration file changes
-  MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN
-  fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c)

2.5 November 20, 1997
---------------------

New:

-  updated 3Dfx driver (v20) for GLQuake
-  added GL_EXT_paletted_texture extension
-  added GL_EXT_shared_texture_palette extension
-  added GL_EXT_point_parameters extension
-  now including Mark Kilgard's GLUT library v3.6
-  new GLUT-based demos in gdemos/
-  added a few more Unix config targets
-  added Intel X86 assembly language vertex transformation code
-  3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var
-  Windows 95 S3 Virge driver

Bug fixes:

-  glCopyTexImage?D would crash due to uninitialized variable
-  glColor w/ glColorMaterial in a display list caused a bug
-  fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver
-  glVertex4*() vertices weren't always projected correctly
-  trying to use mipmapped textured points or lines caused crash
-  glColor[34][fd]() values now clamped to [0,1] before int conversion

Changes:

-  new device driver functions for texture mapping
-  hash tables used for display list and texture object lookup
-  fixed GLX visual handling code to avoid saving redundant visuals
-  3Dfx Glide libraries automatically linked to libMesaGL.so
-  dropped the Cirrus Logic Mondello code since it's obsolete
-  updated Cygnus Makefiles (Stephane Rehel)
-  updated Windows MSVC++ Makefiles (Oleg Letsinsky)
-  procedure for making library files has changed: scripts now take a
   major and minor version arguments. Make-config changed a lot.
-  new implementation of glTexSubImage2D()
-  updated widgets-mesa directory to create libMesaGLwM.a (Motif widget)
-  separate linux-glide and linux-386-glide configurations

2.6 February 12, 1998
---------------------

New:

-  Windows WGL functions
-  updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support
-  v0.22 of 3Dfx Glide driver
-  more X86 assembly language optimizations
-  faster blending for some modes
-  XMesaSetFXmode() to switch between 3Dfx window and full-screen mode
-  added preliminary thread support
-  added GLX_MESA_copy_sub_buffer extension
-  some clipping optimizations

Bug fixes:

-  fixed shading/material bug when drawing long primitive strips
-  fixed clipping problem in long primitive strips
-  fixed clipping bug when using 3Dfx driver
-  fixed a problem when trying to use X fonts w/ 3Dfx driver
-  fixed a texture filter bug in 3Dfx/Glide driver
-  fixed bug in 3Dfx/Glide driver involving depth mask & clearing
-  glLoadMatrix to set projection matrix confused the 3Dfx driver
-  non-identity texture matrices didn't work with linux-386 configs
-  glGenTextures() didn't reserve the returned texture IDs
-  NULL proxy image sent to glTexImageXD() caused crash
-  added texture state validation optimization (Henk Kok)
-  fixed colormap reuse problem when using both RGB and CI windows
-  32 BPP True/DirectColor X visuals weren't recognized
-  fixed potential problem in evaluators memory allocation
-  fixed assorted demo compilation bugs

Changes:

-  replaced old Mesa/windows/ directory with Mesa/WIN32/ directory
-  converted a few old glaux/gltk demos to GLUT
-  renamed directories: demos -> xdemos, gdemos -> demos

3.0 September 17, 1998
----------------------

New:

-  OpenGL 1.2 API
-  GL_EXT_abgr pixel format extension
-  GL_SGIS_texture_edge_clamp extension
-  GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex)
-  GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex)
-  GL_EXT_rescale_normal extension and renormal.c demo
-  GLX_SGI_video_sync extension (a no-op)
-  antialiased lines
-  glGetTexImage() now implemented
-  glDraw/Copy/ReadPixels() optimizations
-  optimized textured triangle code (Marten Stromberg)
-  more optimization of dithered TrueColor triangles in X driver
-  Linux GGI driver
-  updated MGL driver

Bug fixes:

-  lots of assorted compilation fixes
-  glInitNames didn't write initial hit record
-  glBitmap didn't always check for invalid raster position
-  switching between GLX and OSMesa contexts caused a crash
-  fixed uninitialized variable in Mesa widget code
-  fixed typo in texture code which caused book/texgen to crash
-  fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP
-  gluDisk() in POINT or LINE mode sometimes failed
-  fixed texture + fog bug
-  GL_COMPILE_AND_EXECUTE mode didn't work reliably
-  glMultMatrix in projection matrix mode w/ 3Dfx driver could fail
-  glDrawPixels(color index pixels) weren't converted to RGBA
-  fixed possible getenv() buffer overflow security bug
-  glBitmap in feedback mode was offset by xOrig, yOrig params
-  device driver's DrawPixels hook was never used
-  glDrawPixels with zoomY!=1 and top/bottom clipping didn't work
-  glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte
-  fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c
-  glCopyTexSubImage2D() didn't work with 3Dfx driver
-  lines with width = 2 could cause crash
-  glClear with scissor rect sometimes cleared whole buffer
-  glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work
-  glTexImageXD( .. GL_ABGR_EXT .. ) didn't work
-  computation of inverse modelview matrix sometimes failed
-  fixed GL_CLAMP mode texture sampling bug
-  textured line interpolation was somewhat broken
-  textured triangle interpolation was also somewhat broken
-  glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one
-  evaluator state wasn't fully initialized
-  texture coordinate clipping was buggy
-  evaluator surfaces could be mis-colored
-  glAccum(GL_RETURN, s) didn't obey glColorMask() settings
-  zero area polygons shouldn't be culled if polygon mode is point/line
-  clipped width and height of glReadPixels was sometimes off by one
-  blending with alpha = 0 or 1.0 wasn't always exact
-  reading of pixels from clipped region was buggy
-  minor tweaking of X visual management in GLX emulator
-  glPolygonStipple now obeys pixel unpacking parameters
-  glGetPolygonStipple now obeys pixel packing parameters
-  interleaved vertex array texture coordinates were broken
-  query of proxy texture internal format was broken
-  alpha channel wasn't reliably cleared
-  fixed divide by zero error in gluScaleImage if dest size = 1 x 1

Conformance bug fixes:

-  GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing
-  GL_TEXTURE_INTERNAL_FORMAT was missing
-  glGet*(GL_POLYGON_STIPPLE) was broken
-  glPush/PopAttrib() didn't save/restore all texture state
-  glBitmap in feedback mode didn't work
-  feedback of texture coords didn't always work
-  glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke
-  glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke
-  glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke

Changes:

-  upgraded GLUT to version 3.7
-  only GL and GLU library code included in MesaLib.tar.gz
-  GLUT and all demos now in MesaDemos.tar.gz
-  glaux and gltk libraries removed
-  IRIX -n32 and -64 libs go in lib32/ and lib64/ directories

3.1 beta 1 November 19, 1998
----------------------------

New:

-  GL_EXT_stencil_wrap extension
-  GL_INGR_blend_func_separate extension
-  GL_ARB_multitexture extension
-  GL_NV_texgen_reflection extension
-  newly optimized vertex transformation code
-  updated GLUT 3.7 code
-  better precision when using 32-bit Z buffer
-  Allegro DJGPP driver

Bug fixes:

-  glCopyPixels between front/back buffers didn't copy alpha correctly
-  fixed out-of-bounds memory access in optimized 2-D texture code
-  glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter
-  glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter
-  clipping of texture coordinates sometimes had bad R,Q values
-  GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels
-  glEdgeFlagPointer() now takes a GLvoid \* instead of GLboolean \*
-  texture was sometimes applied twice with 3Dfx driver
-  glPush/PopAttrib() fouled up texture object reference counts
-  glDeleteLists(0, n) caused assertion failure
-  bilinear texture sampling wasn't accurate enough
-  glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx
-  color components were reversed on big endian 32 BPP X visuals

Changes:

-  removed GL_EXT_multitexture extension

3.1 beta 2 May 24, 1999
-----------------------

New:

-  multi-textured points and lines (mjk@nvidia.com)
-  optimized 24 BPP X rendering (bernd.paysan@gmx.de)
-  added allegro support (bernie-t@geocities.com)
-  cleaned-up Windows-related stuff (Ted Jump)
-  minor stereo changes (KendallB@scitechsoft.com)
-  new BeOS driver which implements BGLView class
-  new Direct3D driver (see src/D3D)
-  more efficient filled gluCylinder() function
-  utilities: util/showbuffer.[ch] and util/glstate.[ch]
-  fixed some IRIX compiler warnings
-  added support for building Mesa in XFree86 with SGI's GLX
   (kevin@precisioninsight.com)

Bug fixes:

-  a variety of Windows/Mesa bug fixes (mjk@nvidia.com)
-  packed pixel images weren't unpacked correctly
-  patches some win32 files in GLUT (mjk@nvidia.com)
-  glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX
-  fixed lighting bug in Keith's new shading code
-  fixed texture segfault seen in Lament screensaver
-  fixed miscellaneous low-memory bugs
-  glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken
-  GL_LINEAR sampling of 3D textures was broken
-  fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org)
-  added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk)
-  fixed wide point and wide line conformance bugs (brianp)

Changes:

-  some device driver changes (see src/dd.h)
-  new copyright on core Mesa code

3.1 beta 3 September 17, 1999
-----------------------------

New:

-  optimized glAccum function
-  optimized 24 BPP rendering in XMesa driver
-  GLU 1.2 polygon tessellator

Bug Fixes:

-  glGetTexLevelParameter wasn't fully implemented
-  glXUseXFont now handles multi-byte fonts
-  glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result
-  alpha channel of blending points, lines was sometimes incorrect

Changes:

-  New library names: "libGL" instead of "libMesaGL"
-  New library numbering: libGL.so.1.2.310
-  New subdirectories: docs/ and bin/
-  New Makefile-system (autoconf,automake,libtool)

3.1 final December 14, 1999
---------------------------

New:

-  added demos/gloss.c
-  added xdemos/glxdpyinfo.c
-  added GLX_ARB_get_proc_address extension
-  rewritten glTexImage code paths (faster, less memory, bug fixes)

Bug Fixes:

-  several vertex array bug fixes
-  overlapping glCopyPixels with pixel zooming now works
-  glXUseXFont() bitmaps were vertically shifted by one pixel
-  glCopyPixels with pixel zooming now works

3.2 final April 24, 2000
------------------------

Bug fixes:

-  fixed memcpy bugs in span.c
-  fixed missing glEnd problem in demos/tessdemo.c
-  fixed bug when clearing 24 BPP Ximages
-  fixed clipping problem found in Unreal Tournament
-  fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
-  fixed Loki's 3dfx RGB vs BGR bug
-  fixed Loki's 3dfx smooth/flat shading bug in SoF

Changes:

-  updated docs/README file
-  use bcopy() optimizations on FreeBSD
-  re-enabled the optimized persp_textured_triangle() function

3.2.1 July 19, 2000
-------------------

Bug fixes:

-  gluBuild2DMipmaps() didn't accept GL_BGRA
-  Fixed compile/makefile problems on IRIX
-  fixed segfault in 3dfx driver when using GL selection/feedback
-  no longer cull very, very tiny triangles
-  blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
-  fixed Motif detection code in widgets-mesa/configure.in
-  glColorMaterial and glMaterial updates to emissive and ambient didn't
   always work right
-  Specular highlights weren't always in the right place
-  clipped GL_LINE mode polygons had interior lines appear
-  blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
-  GL_NICEST fog didn't always work with flat shading
-  glRect commands in display lists were sometimes miscolored
-  Line Z offset didn't always work
-  fixed texgen normal vector problem (gloss's teapot)
-  numerous GL conformance bugs fixed

Changes:

-  glColorMask(false, false, false, false) handled better/faster
-  reverted to old GLU polygon tessellator, GLU 1.1
-  updated Win32 build files

3.3 July 21, 2000
-----------------

New:

-  antialiased triangles now implemented
-  GL_EXT_texture_env_add texture mode extension
-  GLX 1.3 API
-  support for separate draw/read buffers (ie GL_SGI_make_current_read)
-  thread-safe API dispath
-  improved glxinfo program
-  demos/texdown program to measure texture download performance
-  glext.h header file
-  demos/geartrain program
-  GL_EXT_texture_lod_bias extension
-  demos/lodbias program
-  further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
-  GLX_EXT_visual_rating extension (a no-op, however)
-  GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
-  demos/occlude program
-  GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
-  demos/pixeltex program
-  GL_SGI_color_matrix extension
-  GL_SGI_color_table extension
-  GL_EXT_histogram extension
-  GL_ARB_texture_cube_map extension
-  added xdemos/glxheads and xdemos/manywin
-  demos/texenv.c demo
-  GL_EXT_texture_env_combine extension (by Holger Waechtler)
-  Xlib driver is now thread-safe (see xdemos/glthreads)

Bug Fixes:

-  various GL conformance failures fixed since 3.2.1

Changes:

-  gl.h now uses #defines instead of C enums for all tokens
-  glu.h now uses #defines instead of C enums for all tokens
-  moved programs from 3Dfx/demos/ into demos/ directory

3.4 November 3, 2000
--------------------

New:

-  optimized glDrawPixels for glPixelZoom(1,-1) Bug Fixes:
-  widgets-mesa/src/\*.c files were missing from 3.3 distro
-  include/GL/mesa_wgl.h file was missing from 3.3 distro
-  fixed some Win32 compile problems
-  texture object priorities weren't getting initialized to 1.0
-  glAreTexturesResident return value was wrong when using hardware
-  glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
-  glReadPixels with GLushort packed types was broken
-  fixed a few bugs in the GL_EXT_texture_env_combine texture code
-  glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
-  fixed some typos/bugs in the VB code
-  glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
-  optimized glDrawPixels paths weren't being used
-  per-fragment fog calculation didn't work without a Z buffer
-  improved blending accuracy, fixes Glean blendFunc test failures
-  glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
-  glXGetProcAddressARB() didn't always return the right address
-  gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
-  texture matrix changes weren't always detected (GLUT projtex demo)
-  fixed random color problem in vertex fog code
-  fixed Glide-related bug that let Quake get a 24-bit Z buffer

Changes:

-  finished internal support for compressed textures for DRI

3.4.1 February 14, 2001
-----------------------

New:

-  fixed some Linux build problems
-  fixed some Windows build problems
-  GL_EXT_texture_env_dot3 extension (Gareth Hughes)

Bug fixes:

-  added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
-  various state-update code changes needed for DRI bugs
-  disabled pixel transfer ops in glColorTable commands, not needed
-  fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
-  updated sources and fixed compile problems in widgets-mesa/
-  GLX_PBUFFER enum value was wrong in glx.h
-  fixed a glColorMaterial lighting bug
-  fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
-  glXCopySubBufferMESA() Y position was off by one
-  Error checking of glTexSubImage3D() was broken (bug 128775)
-  glPopAttrib() didn't restore all derived Mesa state correctly
-  Better glReadPixels accuracy for 16 BPP color - fixes lots of OpenGL
   conformance problems at 16 BPP.
-  clearing depth buffer with scissoring was broken, would segfault
-  OSMesaGetDepthBuffer() returned bad bytesPerValue value
-  fixed a line clipping bug (reported by Craig McDaniel)
-  fixed RGB color over/underflow bug for very tiny triangles

Known problems:

-  NURBS or evaluator surfaces inside display lists don't always work

3.4.2 May 17, 2001
------------------

Bug fixes:

-  deleting the currently bound texture could cause bad problems
-  using fog could result in random vertex alpha values
-  AA triangle rendering could touch pixels outside right window bound
-  fixed byteswapping problem in clear_32bit_ximage() function
-  fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
-  fixed memory leak in glXUseXFont()
-  fragment sampling in AA triangle function was off by 1/2 pixel
-  Windows: reading pixels from framebuffer didn't always work
-  glConvolutionFilter2D could segfault or cause FP exception
-  fixed segfaults in FX and X drivers when using tex unit 1 but not 0
-  GL_NAND logicop didn't work right in RGBA mode
-  fixed a memory corruption bug in vertex buffer reset code
-  clearing the software alpha buffer with scissoring was broken
-  fixed a few color index mode fog bugs
-  fixed some bad assertions in color index mode
-  fixed FX line 'stipple' bug #420091
-  fixed stencil buffer clear width/height typo
-  fixed GL error glitches in gl[Client]ActiveTextureARB()
-  fixed Windows compilation problem in texutil.c
-  fixed 1/8-pixel AA triangle sampling error

Changes:

-  optimized writing mono-colored pixel spans to X pixmaps
-  increased max viewport size to 2048 x 2048

3.5 June 21, 2001
-----------------

New:

-  internals of Mesa divided into modular pieces (Keith Whitwell)
-  100% OpenGL 1.2 conformance (passes all conformance tests)
-  new AA line algorithm
-  GL_EXT_convolution extension
-  GL_ARB_imaging subset
-  OSMesaCreateContextExt() function
-  GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
-  GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
-  GL_EXT_fog_coord extension (Keith Whitwell)
-  GL_EXT_secondary_color extension (Keith Whitwell)
-  GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
-  GL_SGIX_depth_texture extension
-  GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
-  demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
-  GL_ARB_texture_env_combine extension
-  GL_ARB_texture_env_dot3 extension
-  GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
-  OSMesaCreateContextExt() function
-  libOSMesa.so library, contains the OSMesa driver interface
-  GL/glxext.h header file for GLX extensions
-  somewhat faster software texturing, fogging, depth testing
-  all color-index conformance tests now pass (only 8 BPP tested)
-  SPARC assembly language TCL optimizations (David Miller)
-  GL_SGIS_generate_mipmap extension

Bug Fixes:

-  fbiRev and tmuRev were unitialized when using Glide3
-  fixed a few color index mode conformance failures; all pass now
-  now appling antialiasing coverage to alpha after texturing
-  colors weren't getting clamped to [0,1] before color table lookup
-  fixed RISC alignment errors caused by COPY_4UBV macro
-  drawing wide, flat-shaded lines could cause a segfault
-  vertices now snapped to 1/16 pixel to fix rendering of tiny triangles

Changes:

-  SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
-  new libOSMesa.so library, contains the OSMesa driver interface

4.0 October 22, 2001
--------------------

New:

-  Mesa 4.0 implements the OpenGL 1.3 specification
-  GL_IBM_rasterpos_clip extension
-  GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
-  GL_ARB_texture_mirrored_repeat extension
-  WindML UGL driver (Stephane Raimbault)
-  added OSMESA_MAX_WIDTH/HEIGHT queries
-  attempted compiliation fixes for Solaris 5, 7 and 8
-  updated glext.h and glxext.h files
-  updated Windows driver (Karl Schultz)

Bug fixes:

-  added some missing GLX 1.3 tokens to include/GL/glx.h
-  GL_COLOR_MATRIX changes weren't recognized by teximage functions
-  glCopyPixels with scale and bias was broken
-  glRasterPos with lighting could segfault
-  glDeleteTextures could leave a dangling pointer
-  Proxy textures for cube maps didn't work
-  fixed a number of 16-bit color channel bugs
-  fixed a few minor memory leaks
-  GLX context sharing was broken in 3.5
-  fixed state-update bugs in glPopClientAttrib()
-  fixed glDrawRangeElements() bug
-  fixed a glPush/PopAttrib() bug related to texture binding
-  flat-shaded, textured lines were broken
-  fixed a dangling pointer problem in the XMesa code (Chris Burghart)
-  lighting didn't always produce the correct alpha value
-  fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)

4.0.1 December 17, 2001
-----------------------

New:

-  better sub-pixel sample positions for AA triangles (Ray Tice)
-  slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)

Bug fixes:

-  added missing break statements in glGet*() for multisample cases
-  fixed uninitialized hash table mutex bug (display lists / texobjs)
-  fixed bad teximage error check conditional (bug 476846)
-  fixed demos readtex.c compilation problem on Windows (Karl Schultz)
-  added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
-  silence some compiler warnings (GCC 2.96)
-  enable the #define GL_VERSION_1_3 in GL/gl.h
-  added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
-  fixed glu.h typedef problem found with MSDev 6.0
-  build libGL.so with -Bsymbolic (fixes bug found with Chromium)
-  added missing 'const' to glXGetContextIDEXT() in glxext.h
-  fixed a few glXGetProcAddress() errors (texture compression, etc)
-  fixed start index bug in compiled vertex arrays (Keith)
-  fixed compilation problems in src/SPARC/glapi_sparc.S
-  fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
-  use glXGetProcAddressARB in GLUT to avoid extension linking problems
-  provoking vertex of flat-shaded, color-index triangles was wrong
-  fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
-  glTexParameter didn't flush the vertex buffer (Ray Tice)
-  feedback attributes for glDraw/CopyPixels and glBitmap were wrong
-  fixed bug in normal length caching (ParaView lighting bug)
-  fixed separate_specular color bug found in Chimera (18 Dec 2001)

4.0.2 April 2, 2002
-------------------

New:

-  New DOS (DJGPP) driver written by Daniel Borca
-  New driver interface functions for TCL drivers (such as Radeon DRI)
-  GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
   if using deep color channels
-  latest GL/glext.h and GL/glxext.h headers from SGI

Bug fixes:

-  GL_BLEND with non-black texture env color wasn't always correct
-  GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
-  glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
-  glReadPixels was sometimes mistakenly clipped by the scissor box
-  glDraw/ReadPixels didn't catch all the errors that they should have
-  Fixed 24 BPP rendering problem in Windows driver (Karl Schultz)
-  16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
-  Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
-  glColorMask as sometimes effecting glXSwapBuffers()
-  fixed a potential bug in XMesaGarbageCollect()
-  N threads rendering into one window didn't work reliably
-  glCopyPixels didn't work for deep color channels
-  improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
-  glPopAttrib() didn't correctly restore user clip planes
-  user clip planes failed for some perspective projections (Chromium)

Known bugs:

-  mipmap LOD computation

4.0.3 June 25, 2002
-------------------

New:

-  updated GL/glext.h file (version 15)
-  corrected MMX blend code (Jose Fonseca)
-  support for software-based alpha planes in Windows driver
-  updated GGI driver (Filip Spacek)

Bug fixes:

-  glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
-  OSMesaMakeCurrent() didn't recognize buffer size changes
-  assorted conformance fixes for 16-bit/channel rendering
-  texcombine alpha subtraction mode was broken
-  fixed lighting bug with non-uniform scaling and display lists
-  fixed bug when deleting shared display lists
-  disabled SPARC cliptest assembly code (Mesa bug 544665)
-  fixed a couple Solaris compilation/link problems
-  blending clipped glDrawPixels didn't always work
-  glGetTexImage() didn't accept packed pixel types
-  glPixelMapu[is]v() could explode given too large of pixelmap
-  glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
-  glXCopyContext() could lead to segfaults
-  glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)

Changes:

-  lots of C++ (g++) code clean-ups
-  lots of T&L updates for the Radeon DRI driver

Known bugs:

-  mipmap LOD computation (fixed for Mesa 4.1)

4.0.4 October 3, 2002
---------------------

New:

-  GL_NV_texture_rectangle extension
-  updated glext.h header (version 17)
-  updated DOS driver (Daniel Borca)
-  updated BeOS R5 driver (Philippe Houdoin)
-  added GL_IBM_texture_mirror_repeat
-  glxinfo now takes -l option to print interesting OpenGL limits info
-  GL_MESA_ycbcr_texture extension
-  GL_APPLE_client_storage extension (for some DRI drivers only)
-  GL_MESA_pack_invert extension

Bug fixes:

-  fixed GL_LINEAR fog bug by adding clamping
-  fixed FP exceptions found using Alpha CPU
-  3dfx MESA_GLX_FX=window (render to window) didn't work
-  fixed memory leak in wglCreateContest (Karl Schultz)
-  define GLAPIENTRY and GLAPI if undefined in glu.h
-  wglGetProcAddress didn't handle all API functions
-  when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
-  removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
-  error checking in compressed tex image functions had some glitches
-  fixed AIX compile problem in src/config.c
-  glGetTexImage was using pixel unpacking instead of packing params
-  auto-mipmap generation for cube maps was incorrect

Changes:

-  max texture units reduced to six to accommodate texture rectangles
-  removed unfinished GL_MESA_sprite_point extension code

4.1 October 29, 2002
--------------------

New:

-  GL_NV_vertex_program extension
-  GL_NV_vertex_program1_1 extension
-  GL_ARB_window_pos extension
-  GL_ARB_depth_texture extension
-  GL_ARB_shadow extension
-  GL_ARB_shadow_ambient extension
-  GL_EXT_shadow_funcs extension
-  GL_ARB_point_parameters extension
-  GL_ARB_texture_env_crossbar
-  GL_NV_point_sprite extension
-  GL_NV_texture_rectangle extension
-  GL_EXT_multi_draw_arrays extension
-  GL_EXT_stencil_two_side extension
-  GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
-  GL_ATI_texture_mirror_once extension (Ian Romanick)
-  massive overhaul/simplification of software rasterizer module, many
   contributions from Klaus Niederkrueger
-  faster software texturing in some cases (i.e. trilinear filtering)
-  new OSMesaGetProcAddress() function
-  more blend modes implemented with MMX code (Jose Fonseca)
-  added glutGetProcAddress() to GLUT
-  added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
-  pbinfo and pbdemo PBuffer programs
-  glxinfo -v prints transprent pixel info (Gerd Sussner)

Bug fixes:

-  better mipmap LOD computation (prevents excessive blurriness)
-  OSMesaMakeCurrent() didn't recognize buffer size changes
-  assorted conformance fixes for 16-bit/channel rendering
-  texcombine alpha subtraction mode was broken
-  fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
-  clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
-  fixed divide by zero error in NURBS tessellator (Jon Perry)
-  fixed GL_LINEAR fog bug by adding clamping
-  fixed FP exceptions found using Alpha CPU
-  3dfx/glide driver render-to-window feature was broken
-  added missing GLX_TRANSPARENT_RGB token to glx.h
-  fixed error checking related to paletted textures
-  fixed reference count error in glDeleteTextures (Randy Fayan)

Changes:

-  New spec file and Python code to generate some GL dispatch files
-  Glide driver defaults to "no" with autoconf/automake
-  updated demos/stex3d with new options

5.0 November 13, 2002
---------------------

New:

-  OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
-  removed some overlooked debugging code
-  glxinfo updated to support GLX_ARB_multisample
-  GLUT now support GLX_ARB_multisample
-  updated DOS driver (Daniel Borca)

Bug fixes:

-  GL_POINT and GL_LINE-mode polygons didn't obey cull state
-  fixed potential bug in \_mesa_align_malloc/calloc()
-  fixed missing triangle bug when running vertex programs
-  fixed a few HPUX compilation problems
-  FX (Glide) driver didn't compile
-  setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
-  a few EXT functions, like glGenTexturesEXT, were no-ops
-  a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
   glMultiDrawArrays and glMultiDrawElements were missing
-  glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
-  Pentium 4 Mobile was mistakenly identified as having 3DNow!
-  fixed one-bit error in point/line fragment Z calculation
-  fixed potential segfault in fakeglx code
-  fixed color overflow problem in DOT3 texture env mode

5.0.1 March 30, 2003
--------------------

New:

-  DOS driver updates from Daniel Borca
-  updated GL/gl_mangle.h file (Bill Hoffman) Bug fixes:
-  auto mipmap generation for cube maps was broken (bug 641363)
-  writing/clearing software alpha channels was unreliable
-  minor compilation fixes for OS/2 (Evgeny Kotsuba)
-  fixed some bad assertions found with shadowtex demo
-  fixed error checking bug in glCopyTexSubImage2D (bug 659020)
-  glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
-  fixed potential segfault in texture object validation (bug 659012)
-  fixed some bogus code in \_mesa_test_os_sse_exception_support (Linus)
-  fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
-  fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
-  glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
-  fixed compilation problem on Solaris7/x86 (bug 536406)
-  fixed prefetch bug in 3DNow! code (Felix Kuhling)
-  fixed NeXT build problem (FABSF macro)
-  glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
-  zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
-  AA line and triangle Z values are now rounded, not truncated
-  fixed color interpolation bug when GLchan==GLfloat (bug 694461)
-  glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
-  fixed a minor GL_COLOR_MATERIAL bug
-  NV vertex program EXP instruction was broken
-  glColorMask misbehaved with X window / pixmap rendering
-  fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
-  attempt to fix GGI compilation problem when MesaDemos not present
-  NV vertex program ARL-relative fetches didn't work

Changes:

-  use glPolygonOffset in gloss demo to avoid z-fighting artifacts
-  updated winpos and pointblast demos to use ARB extensions
-  disable SPARC normal transformation code (bug 673938)
-  GLU fixes for OS/2 (Evgeny Kotsuba)

5.0.2 September 5, 2003
-----------------------

Bug fixes:

-  fixed texgen problem causing texcoord's Q to be zero (stex3d)
-  default GL_TEXTURE_COMPARE_MODE_ARB was wrong
-  GL_CURRENT_MATRIX_NV query was wrong
-  GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
-  GL_LIST_MODE query wasn't correct
-  GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
-  blended, wide lines didn't always work correctly (bug 711595)
-  glVertexAttrib4svNV w component was always 1
-  fixed bug in GL_IBM_rasterpos_clip (missing return)
-  GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
-  a few Solaris compilation fixes
-  fixed glClear() problem for DRI drivers (non-existent stencil, etc)
-  fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
-  fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
-  glFog() didn't clamp fog colors
-  fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
   gl[Get]TexParameteri[v] functions
-  fixed invalid memory references in glTexGen functions (bug 781602)
-  integer-valued color arrays weren't handled correctly
-  glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
-  GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1

Changes:

-  build GLUT with -fexceptions so C++ apps propogate exceptions

5.1 December 17, 2003
---------------------

New:

-  reorganized directory tree
-  GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
-  GL_ATI_texture_env_combine3 extension (Ian Romanick)
-  GL_SGI_texture_color_table extension (Eric Plante)
-  GL_NV_fragment_program extension
-  GL_NV_light_max_exponent extension
-  GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
-  GL_ARB_occlusion_query extension
-  GL_ARB_point_sprite extension
-  GL_ARB_texture_non_power_of_two extension
-  GL_IBM_multimode_draw_arrays extension
-  GL_EXT_texture_mirror_clamp extension (Ian Romanick)
-  GL_ARB_vertex_buffer_object extension
-  new X86 feature detection code (Petr Sebor)
-  less memory used for display lists and vertex buffers
-  demo of per-pixel lighting with a fragment program (demos/fplight.c)
-  new version (18) of glext.h header
-  new spriteblast.c demo of GL_ARB_point_sprite
-  faster glDrawPixels in X11 driver in some cases (see relnotes/5.1)
-  faster glCopyPixels in X11 driver in some cases (see relnotes/5.1)

Bug fixes:

-  really enable OpenGL 1.4 features in DOS driver.
-  fixed issues in glDrawPixels and glCopyPixels for very wide images
-  glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
-  fixed some texgen bugs reported by Daniel Borca
-  fixed wglMakeCurrent(NULL, NULL) bug (#835861)
-  fixed glTexSubImage3D z-offset bug (Cedric Gautier)
-  fixed RGBA blend enable bug (Ville Syrjala)
-  glAccum is supposed to be a no-op in selection/feedback mode
-  fixed texgen bug #597589 (John Popplewell)

Changes:

-  dropped API trace feature (src/Trace/)
-  documentation overhaul. merged with website content. more html.
-  glxgears.c demo updated to use GLX swap rate extensions
-  glTexImage1/2/3D now allows width/height/depth = 0
-  disable SPARC asm code on Linux (bug 852204)

6.0 January 16, 2004
--------------------

New:

-  full OpenGL 1.5 support
-  updated GL/glext.h file to version 21 Changes:
-  changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
   Bug fixes:
-  fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color clamping
   issue
-  updated suno5-gcc configs
-  glColor3 functions sometimes resulted in undefined alpha values
-  fixed FP divide by zero error seen on VMS with xlockmore, others
-  fixed vertex/fragment program debug problem (bug 873011)
-  building on AIX with GCC works now
-  glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
-  glDrawRangeElements tried to modify potentially read-only storage
-  updated files for building on Windows

6.0.1 April 2, 2004
-------------------

New:

-  upgraded glext.h to version 22
-  new build targets (Dan Schikore)
-  new linux-x86-opteron build target (Heath Feather)

Bug fixes:

-  glBindProgramARB didn't update all necessary state
-  fixed build problems on OpenBSD
-  omit CVS directories from tarballs
-  glGetTexImage(GL_COLOR_INDEX) was broken
-  fixed an infinite loop in t&l module
-  silenced some valgrind warnings about using unitialized memory
-  fixed some compilation/link glitches on IRIX (Mike Stephens)
-  glBindProgram wasn't getting compiled into display lists
-  GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
-  two-sided lighting and vertex program didn't work (bug 887330)
-  stores to program parameter registers in vertex state programs didn't
   work.
-  fixed glOrtho bug found with GCC 3.2.2 (RH9)
-  glXCreateWindow() wasn't fully implemented (bug 890894)
-  generic vertex attribute arrays didn't work in display lists
-  vertex buffer objects' default usage and access fields were wrong
-  glDrawArrays with start!=0 was broken
-  fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
-  linux-osmesa16-static config didn't work
-  fixed a few color index rendering problems (bug 910687)
-  glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
-  OSMesa RGB and BGR modes were broken
-  glProgramStringARB mistakenly required a null-terminated string
-  fragment program XPD instruction was incorrect
-  glGetMaterial() didn't work reliably
-  ARB_fragment_program KIL instruction was incorrect

6.1 August 18, 2004
-------------------

New:

-  Revamped Makefile system
-  glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
-  internal driver interface changes related to texture object
   allocation, vertex/fragment programs, BlendEquationSeparate, etc.
-  option to walk triangle edges with double-precision floats (Justin
   Novosad of Discreet) (see config.h file)
-  support for AUX buffers in software GLX driver
-  updated glext.h to version 24 and glxext.h to version 6
-  new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
-  updated BeOS support (Philippe Houdoin)

Changes:

-  fragment fog interpolation is perspective corrected now
-  new glTexImage code, much cleaner, may be a bit faster

Bug fixes:

-  glArrayElement in display lists didn't handle generic vertex attribs
-  glFogCoord didn't always work properly
-  ARB_fragment_program fog options didn't work
-  frag prog TEX instruction no longer incorrectly divides s,t,r by q
-  ARB frag prog TEX and TEXP instructions now use LOD=0
-  glTexEnviv in display lists didn't work
-  glRasterPos didn't do texgen or apply texture matrix
-  GL_DOUBLE-valued vertex arrays were broken in some cases
-  fixed texture rectangle edge/border sampling bugs
-  sampling an incomplete texture in a fragment program would segfault
-  glTexImage was missing a few error checks
-  fixed some minor glGetTexParameter glitches
-  GL_INTENSITY was mistakenly accepted as a <format> to glTexImage
-  fragment program writes to RC/HC register were broken
-  fixed a few glitches in GL_HP_occlusion_test extension
-  glBeginQueryARB and glEndQueryARB didn't work inside display lists
-  vertex program state references were broken
-  fixed triangle color interpolation bug on AIX (Shane Blackett)
-  fixed a number of minor memory leaks (bug #1002030)

6.2 October 2, 2004
-------------------

New:

-  enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
-  updated Doxygen support (Jose Fonseca)

Changes:

-  some GGI driver updates (Christoph Egger, bug 1025977)

Bug fixes:

-  Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
-  fixed a few compilation issues on IRIX
-  fixed a matrix classification bug (reported by Wes Bethel)
-  we weren't reseting the vertex/fragment program error state before
   parsing (Dave Reveman)
-  adjust texcoords for sampling texture rectangles (Dave Reveman)
-  glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
-  repeated calls to glDeleteTexture(t) could lead to a crash
-  fixed potential ref count bugs in VBOs and vertex/fragment programs
-  spriteblast demo didn't handle window size changes correctly
-  glTexSubImage didn't handle pixels=NULL correctly for PBOs
-  fixed color index mode glDrawPixels bug (Karl Schultz)

6.2.1 December 9, 2004
----------------------

Bug fixes:

-  don't apply regular fog or color sum when using a fragment program
-  glProgramEnvParameter4fARB always generated an error on
   GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
-  glVertexAttrib3svNV and glVertexAttrib3svARB were broken
-  fixed width/height mix-up in glSeparableFilter2D()
-  fixed regression in glCopyPixels + convolution
-  glReadPixels from a clipped front color buffer didn't always work
-  glTexImage didn't accept GL_RED/GREEN/BLUE as the format
-  Attempting queries/accesses of VBO 0 weren't detected as errors
-  paletted textures failed if the palette had fewer than 256 entries

Changes:

-  fixed a bunch of compiler warnings found with GCC 3.4
-  bug reports should to go bugzilla.freedesktop.org

6.3 July 20, 2005
-----------------

New:

-  GL_EXT_framebuffer_object extension
-  GL_ARB_draw_buffers extension
-  GL_ARB_pixel_buffer_object extension
-  GL_OES_read_format extension (Ian Romanick)
-  DirectFB driver (Claudio Ciccani)
-  x86_64 vertex transformation code (Mikko T.)
-  Updated GL/glext.h to version 29

Changes:

-  added -stereo option for glxgears demo (Jacek Rosik)
-  updated the PBuffer demo code in xdemos/ directory
-  glDeleteTextures/Programs/Buffers() now makes the object ID available
   for immediate re-use
-  assorted 64-bit clean-ups fixes (x86_64 and Win64)
-  lots of internal changes for GL_EXT_framebuffer_object

Bug fixes:

-  some functions didn't support PBO functionality
-  glGetTexImage didn't convert color index images to RGBA as required
-  fragment program texcoords were sometimes wrong for points and lines
-  fixed problem with negative dot product in arbfplight, fplight demos
-  fixed bug in perspective correction of antialiased, textured lines
-  querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
-  fixed a couple per-pixel fog bugs (Soju Matsumoto)
-  glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
-  fixed float parsing bug in ARB frag/vert programs (bug 2520)
-  XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
-  GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
-  glXChooseFBConfig() crashed if attribList pointer was NULL
-  program state.light[n].spot.direction.w was wrong value (bug 3083)
-  fragment program fog option required glEnable(GL_FOG) - wrong.
-  glColorTable() could produce a Mesa implementation error (bug 3135)
-  RasterPos could get corrupted by color index rendering path
-  Removed bad XTranslateCoordinates call when rendering to Pixmaps
-  glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
-  fixed a few Darwin compilation problems

6.3.1
-----

This was an intermediate release for X.org which wasn't otherwise
released.)

6.3.2 August 19, 2005
---------------------

New:

-  The distribution now includes the DRI drivers and GLX code

Changes:

-  Made the DRI "new" driver interface standard, remove old code

Bug fixes:

-  GL_ARB_vertex/fragment_shader were mistakenly listed in the
   extensions string
-  negative relative addressing in vertex programs was broken
-  update/fix SPARC assembly code for vertex transformation
-  fixed memory leak when freeing GLX drawables/renderbuffers
-  fixed display list memory leak
-  the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
-  wglGetProcAddress() didn't handle wgl-functions
-  fixed glxext.h cross-compile issue (Colin Harrison)
-  assorted DRI driver fixes

.. note::

   Changes for Mesa 6.4 and later are documented in the corresponding
   :doc:`release notes <relnotes>` file.
