Mesa Version History


Changes for Mesa 6.4 and later are documented in the corresponding release notes file.

1.0 beta February 1995

  • Initial release

1.1 beta March 4, 1995


  • faster point and line drawing (2x faster)

  • more systems supported, better Makefiles

  • Renamed lib*.a files to avoid collisions

  • many small bug fixes


  • pseudo-GLX functions added

  • new implementation of evaluators (eval2.c)

  • GLUT support

1.1.1 beta March 7, 1995


  • 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


  • implementation of SGI’s blending extensions

  • glXUseXFont implemented

  • added MESA_DEBUG environment variable support


  • 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


  • gluScaleImage() and gluBuild2DMipMaps() implemented

  • Mesa widgets for Xt/Motif

  • blendEXT demos

  • added environment variables for selecting visuals


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c)

2.5 November 20, 1997


  • 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


  • 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

  • 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


  • 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


  • 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


  • 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


  • 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:



  • 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


  • 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


  • 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


  • removed GL_EXT_multitexture extension

3.1 beta 2 May 24, 1999


  • multi-textured points and lines (

  • optimized 24 BPP X rendering (

  • added allegro support (

  • cleaned-up Windows-related stuff (Ted Jump)

  • minor stereo changes (

  • 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 (

Bug fixes:

  • a variety of Windows/Mesa bug fixes (

  • packed pixel images weren’t unpacked correctly

  • patches some win32 files in GLUT (

  • 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 (

  • added GL_TEXTURE_PRIORITY fix (

  • fixed wide point and wide line conformance bugs (brianp)


  • some device driver changes (see src/dd.h)

  • new copyright on core Mesa code

3.1 beta 3 September 17, 1999


  • 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


  • New library names: “libGL” instead of “libMesaGL”

  • New library numbering:

  • New subdirectories: docs/ and bin/

  • New Makefile-system (autoconf,automake,libtool)

3.1 final December 14, 1999


  • 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


  • 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/

  • 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


  • 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


  • 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


  • 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


  • 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


  • finished internal support for compressed textures for DRI

3.4.1 February 14, 2001


  • 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


  • optimized writing mono-colored pixel spans to X pixmaps

  • increased max viewport size to 2048 x 2048

3.5 June 21, 2001


  • 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

  • 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


  • SGI’s Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU

  • new library, contains the OSMesa driver interface

4.0 October 22, 2001


  • 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


  • 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 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 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


  • 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)


  • 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


  • 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


  • max texture units reduced to six to accommodate texture rectangles

  • removed unfinished GL_MESA_sprite_point extension code

4.1 October 29, 2002


  • 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)


  • 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


  • 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


  • 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


  • 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


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

5.1 December 17, 2003


  • 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)


  • 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


  • 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


  • 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


  • 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


  • updated BeOS support (Philippe Houdoin)


  • 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


  • enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)

  • updated Doxygen support (Jose Fonseca)


  • 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


  • fixed a bunch of compiler warnings found with GCC 3.4

  • bug reports should to go

6.3 July 20, 2005


  • 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


  • 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


This was an intermediate release for which wasn’t otherwise released.)

6.3.2 August 19, 2005


  • The distribution now includes the DRI drivers and GLX code


  • 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


Changes for Mesa 6.4 and later are documented in the corresponding release notes file.