fixed a typo
[mesa/nouveau-pmpeg.git] / docs / VERSIONS
blob9753615b096cbcddfdc3074ae7647899c6198a7c
1 $Id: VERSIONS,v 1.38.2.29 2001/02/14 15:25:06 brianp Exp $
4 Mesa Version History
5 ====================
7 1.0 beta   February 1995
8     Initial release
10 1.1 beta   March 4, 1995
11     Changes:
12         faster point and line drawing (2x faster)
13         more systems supported, better Makefiles
14         Renamed lib*.a files to avoid collisions
15         many small bug fixes
16     New:
17         pseudo-GLX functions added
18         new implementation of evaluators (eval2.c)
19         GLUT support
21 1.1.1 beta   March 7, 1995
22     Changes:
23         Reverted from eval2.c to eval.c due to FPE on Linux
24         more speed improvements
25         more Makefile changes
27 1.1.2 beta   March 14, 1995
28     New:
29         implementation of SGI's blending extensions
30         glXUseXFont implemented
31         added MESA_DEBUG environment variable support
32     Changes:
33         Using eval2.c again
34         more FPE-prevention checks (0-length normals are OK)
35         a few small bug fixes
36         much faster pixel logic ops!
37         faster transformation arithmetic
39 1.1.3 beta   March 31, 1995
40     New:
41         gluScaleImage() and gluBuild2DMipMaps() implemented
42         Mesa widgets for Xt/Motif
43         blendEXT demos
44         added environment variables for selecting visuals
45     Changes:
46         almost all GLUT demos work correctly now
47         faster X device driver functions
48         more bug fixes
50 1.1.4 beta   April 20, 1995
51     Bug fixes:
52         - missing #define SEEK_SET in src-tk/image.c
53         - compile glShadeModel into display lists
54         - fixed pow() domain error in src/light.c
55         - fixed "flickering bitmaps" in double buffer mode
56         - fixed tk.h and aux.h for C++
57         - state of LIGHT_MODEL_LOCAL_VIEWER was inverted
58     New features:
59         - MUCH, MUCH nicer dithering in 8-bit RGB mode
60         - updated widgets and widget demos
61         - Implemented GLXPixmap functions
62         - Added GLU 1.1 and GLX 1.1 functions
63         - Changed the X/Mesa interface API, more versatile
64         - Implemented gluPartialDisk()
66 1.2   May 22, 1995
67     Bug fixes:
68         - IRIX 4.x makefile problem
69         - modified tk to share root colormap as needed
70         - gluLookAt normalization problem
71         - suppress Expose, NoExpose events in swapbuffers
72         - glBitmap() and glDrawPixels() clipping
73     New features:
74         - GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture
75               modes implemented
76         - texture maps stored more efficiently
77         - texture maps can be compiled into display lists
78         - Bogdan Sikorski's GLU polygon tesselation code
79         - Linas Vepstas's sweep and extrusion library
80         - glXCreateContext()'s shareList parameter works as it's supposed to.
81               XMesaCreateContext() updated to accept a shareList parameter too.
82         - Mesa can be compiled with real OpenGL .h files
83         - MESA_BACK_BUFFER environment variable
84         - better GLX error checking
86 1.2.1   June 22, 1995
87     Bug fixes:
88         - X/Mesa double buffer window resize crash
89         - widgets now pass PointerMotion events
90         - X/Mesa incorrect default clear color and drawing color
91         - more robust X MIT-SHM support in X/Mesa
92         - glTexImage( format=GL_LUMINANCE ) didn't work
93         - GL_LINE mode polygons with line width > 1.0 could cause a crash
94         - numerous feedback bugs
95         - glReadPixels() from depth buffer was wrong
96         - error prone depth and stencil buffer allocation
97     New features:
98         - Preliminary Microsoft Windows driver
99         - Implemented a number of missing functions: glEvalCoord[12][df]v(),
100             glGet...(), etc.
101         - Added a few missing symbols to gl.h and glu.h
102         - Faster rendering of smooth-shaded, RGBA, depth-buffered polygons.
103         - Faster rendering of lines when width=2.0
104         - Stencil-related functions now work in display lists
105     Changes:
106         - renamed aux.h as glaux.h (MS-DOS names can't start with aux)
107         - most filenames are in 8.3 format to accomodate MS-DOS
108         - use GLubytes to store arrays of colors instead of GLints
110 1.2.2   August 2, 1995
111     New features:
112         - texture mapped points and lines
113         - NURBS! (but not 100% complete)
114         - viewports may safely extend beyond window boundaries
115         - MESA_PRIVATE_CMAP environment variable
116         - Grayscale X display support
117         - two new demos:  demos/gears.c and demos/shadow.c
118         - MachTen for Macintosh configuration
119     Bug fixes:
120         - glGet*(GL_DEPTH_BITS) returned bytes, not bits
121         - point, line, and bitmap rasterization suffered from roundoff errors
122         - fixed a division by zero error in line clippping
123         - occasional wrong default background color really fixed!
124         - glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work
125         - gluBuild2DMipmaps malloc problem fixed
126         - view volume clipping of smooth shaded lines resulted in bad colors
127     Changes:
128         - new visual selection method in glXChooseVisual()
129         - improved GLU quadric functions
130         - call XSync for glFinish and XFlush for glFlush
131         - glVertex() calls now use a function pointer to avoid conditionals
132         - removed contrib directory from Mesa tar file (available on ftp site)
133         - AIX shared library support
134         - Removed GLUenum type as it's not in OpenGL
136 1.2.3   September 26, 1995
137     New features:
138         - Mesa header files now equivalent to SGI OpenGL headers
139         - Support for HP's Color Recovery dithering displays
140         - Faster vertex transformation
141         - Faster raster operations into X windows under certain conditions
142         - New configurations:  HP w/ shared libs, Ultrix w/ GCC, Data General
143         - 4-bit visuals now supported
144     Bug fixes:
145         - glScissor bug fixed
146         - round-off errors in clipping lines against clip planes fixed
147         - byte swapping between hosts and display servers implemented
148         - glGetError() can be called without a current rendering context
149         - problem with accidentally culled polygons is fixed
150         - fixed some widget compilation problems
152 1.2.4   November 17, 1995
153     New features:
154         - More speed improvements (lighting, fogging, polygon drawing)
155         - Window system and OS-independent off-screen rendering
156         - Preliminary Fortran bindings
157         - glPolygonOffsetEXT implemented
158         - glColorMask and glIndexMask now fully implemented
159         - glPixelZoom implemented
160         - display lists fully implemented
161         - gamma correction
162         - dithering in 8-bit TrueColor/DirectColor visuals
163     Changes:
164         - Improved device driver interface
165         - tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk
166         - Dithering support moved from core into device driver
167     Bug fixes:
168         - glEnable/Disable( GL_LIGHTING ) didn't always take effect
169         - glReadPixels byte swapping was broken
170         - glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken
171         - duplicate glColor4b() prototype in GL/gl.h removed
172         - stripes in wave -ci demo fixed
173         - GL_LINEAR_MIPMAP_NEAREST had wrong value
174         - bugs in HP Color Recovery support fixed
175         - fixed bug when blending lines, points, bitmaps outside of window
177 1.2.5   November 30, 1995
178     New Features:
179         - updated MS Windows driver
180         - new implementation of StaticGray/GrayScale visual support
181     Bug fixes:
182         - pixelzooming with gamma correction or blending didn't work
183         - HP color recovery visual wasn't being picked by glXChooseVisual
184         - glClear didn't always observe glColorMask changes
185         - olympic and offset demos didn't compile on some Suns
186         - texcoord clamping wasn't correct
187         - a polygon optimization introduced an occasional sampling problem
189 1.2.6   January 26, 1996
190     New Features:
191         - faster line and polygon rendering under certain conditions.  See
192           Performance Tips 9 and 10 in README
193         - profiling
194         - lighting is a bit faster
195         - better perspective corrected texture mapping
196         - Amiga AmiWin (X11) support
197         - preliminary Linux SVGA driver
198     Changes:
199         - now using a 16-bit depth buffer, faster, smaller
200         - GL_NORMALIZE is disabled by default
201     Bug fixes:
202         - projective texture mapping
203         - fixed a memory leak in the context destroy function
204         - GL_POLYGON with less than 3 vertices caused a crash
205         - glGet*() returned wrong result for GL_INDEX_MODE
206         - reading pixels from an unmapped X window caused a BadMatch error
208 1.2.7   March 5, 1996
209     New:
210         - faster lighting
211         - faster 16-bit TrueColor rendering on Linux
212         - faster 32-bit TrueColor rendering on Linux, HP, IBM
213         - non-depth-buffered XImage polygons are faster
214         - vertex array extension
215         - software alpha planes
216         - updated Macintosh driver
217         - new NeXT driver
218         - GLU quadric functions generate texture coordinates
219         - reflect.c demo - reflective, textured surface demo
220     Changes:
221         - gamma correction code moved into the X driver for better performance
222     Bug fixes:
223         - multiple glClipPlane()'s didn't work reliably
224         - glPolygonMode() didn't always work
225         - glCullFace( GL_FRONT_AND_BACK ) didn't work
226         - texture mapping with gamma correction was buggy
227         - floating point exceptions in texture coordinate interpolation
228         - XImage byte swapping didn't always work
229         - polygon edge flags weren't always used correctly
231 1.2.8   May 22, 1996
232     New:
233         - overlay planes on X servers with the SERVER_OVERLAY_VISUALS property
234         - better monochrome output
235         - more IRIX 6.x configurations
236         - more robust RGB mode color allocation
237         - added MESA_XSYNC environment variable
238         - GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions
239         - GL_MESA_window_pos extension
240         - faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT
241           and GL_UNSIGNED_INT
242         - driver for prototype Cirrus Mondello 3-D board
243         - updated AmigaDOS driver
244         - a few small speed optimizations in polygon rendering
245     Changes:
246         - internal device driver interface modified to simplify device
247           driver implementations and to support hardware Z buffers
248         - several changes to the X/Mesa interface (xmesa.h)
249     Bug fixes:
250         - fixed pow(0,0) domain error triggered on some systems
251         - glStencilClear() in a display list caused an infinite loop
252         - glRasterPos*() was sometimes off by +/-0.5 in X and Y
253         - color masking and blending were performed in wrong order
254         - auxSolidCylinder() sometimes drew a wire-frame cylinder
255         - fixed file writing bug in osdemo.c
256         - pixel mapping didn't always work
257         - the GL_GEQUAL stencil func didn't work
258         - the GL_INVERT stencil op didn't work
259         - the stencil write mask didn't work
260         - glPush/PopAttrib() didn't do enough error checking
261         - glIsList() didn't always work correctly
263 2.0  October 10, 1996
264     New:
265         - Implements OpenGL 1.1 API functions
266         - all texture filtering modes supported (mipmapping)
267         - faster texture mapping, see Performance Tip 11 in README
268         - antialiased RGB points
269         - X support for line and polygon stippling
270         - glDrawBuffer( GL_FRONT_AND_BACK ) works
271         - util/ directory of useful stuff
272         - demos/texobj demo of texture objects
273     Changes:
274         - major internal changes for thread-safeness
275         - new device driver interface
276         - MESA_ALPHA env variable removed
277         - triangle rasterizer replaces polygon rasterizer
278     Bug fixes:
279         - glPopAttrib() bug
280         - glDrawBuffer(GL_NONE) works now
282 2.1  December 14, 1996
283     New:
284         - VMS support
285         - MS-DOS driver
286         - OpenStep support
287         - updated, combined Windows 95/NT driver
288         - implemented glGetLighti() and glGetTexGen*()
289         - GLX does garbage collection of ancillary buffers
290     Bug fixes:
291         - removed unused _EXT constants from gl.h
292         - fixed polygon offset bugs
293         - Z coordinates of clipped lines were incorrect
294         - glEdgeFlag() in display lists didn't always work
295         - glLight*() in display lists didn't work
296         - fixed X line stipple bugs (Michael Pichler)
297         - glXUseXfonts XFreeFont/XFreeFontInfo bug fixed
298         - fixed a feedback bug
299         - glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix
300         - polygons were sometimes culled instead of clipped
301         - triangle rasterizer suffered from float/int overflow exceptions
302         - fixed FP underflow exception in lighting (specular exponent)
303         - glEnable/glDisable of GL_EXT_vertex_array enums didn't work
304         - fixed free(NULL) in GLU tesselator code
305         - using 24-bit color on some X servers resulted in garbage rendering
306         - 32-bit per pixel mode for XFree86 now works
307         - glRotate(a,0,0,0) gave unpredictable results
308         - GL_LINE_STRIP with > 480 vertices had occasional clipping problems
309         - 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap
310         - glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled
311         - glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right
312         - accumulation buffer was limited to positive values
313         - projective textures didn't work
314         - selection buffer overflows weren't handled correctly
315     Changes:
316         - restored the GL_EXT_polygon_offset extension
317         - slightly faster RGB dithering
318         - the SVGA driver works again
319         - Amiga driver now distributed separately
320         - NeXT driver updated for Mesa 2.x
322 2.2  March 14, 1997
323     New:
324         - better color selection when dithering
325         - added GL_EXT_texture_object extension
326         - updated MS-DOS driver for DJGPP
327         - added openbsd make configuration
328         - faster dithered flat-shaded triangles
329         - various compilation problems with Motif widgets fixed
330         - gl.h, glx.h and glu.h name mangling option
331         - BeOS driver
332         - 3D texture mapping extension
333         - GL_MESA_resize_buffers extension
334         - morph3d, stex3d and spectex demos
335         - 3Dfx support
336     Bug fixes:
337         - glColorMaterial should finally work right in all respects
338         - linear interpolation of mipmap levels was incorrectly weighted
339         - readpix.c didn't compile on Macintosh
340         - GL_INVERT and related logic ops didn't work right
341         - glTexImage[12]D() didn't check its parameters consistantly
342         - fixed a memory leak in glTexImage[12]D()
343         - kludged around a SunOS 5.x/GCC compiler bug in the feedback code
344         - glReadPixels aborted instead of normally catching some errors
345         - a few 1.1 constants were missing or misnamed in gl.h
346         - glBegin(p); glBegin(q); didn't generate an error
347         - fixed a memory leak in GLX code
348         - clipping of concave polygons could cause a core dump
349         - 1-component alpha texture maps didn't work
350         - fixed a GLU polygon tesselator bug
351         - polygons with colinear vertices were sometimes culled
352         - feedback triangle colors were wrong when using smooth shading
353         - textures with borders didn't work correctly
354         - colors returned in feedback mode were wrong when using lighting
355         - spotlights didn't effect ambient lighting correctly
356         - gluPartialDisk() had a few bugs
357     Changes:
358         - device driver interface expanded to support texture mapping
359         - faster matrix inversion subroutine
360         - commented out #include "wmesa_extend.h" from src/wmesa.c
361         - fixed many compiler warnings in the demo programs
363 2.3  June 30, 1997
364     New:
365         - Mesa distribution divided into two pieces:  library code and demos
366         - faster vertex transformation, clip testing, lighting
367         - faster line drawing
368         - TrueColor visuals how have dithering (for depths < 24 bits)
369         - added MESA_NO_DITHER environment variable
370         - new device driver function: NearFar(), RenderVB(), RasterSetup()
371         - added LynxOS configuration
372         - added cygnus Win32 configuration
373         - added texcyl.c GLUT demo
374         - added XMesaDitherColor() to X/Mesa interface
375         - new NURBS code from Bogdan Sikorski
376         - added demos/shape.c (non-rectangular X window!)
377     Bug fixes:
378         - glEnable/DisableClientState() were missing from GL/gl.h
379         - GL_SPHERE_MAP texcoord generation didn't work correctly
380         - glXGetConfig() returned wrong number of depth, stencil, accum bits
381         - glDrawPixels feedback/selection didn't examine RasterPos valid bit
382         - black and white were reversed on some monochrome displays
383         - fixed potential image memory leak (wasn't setting reference counter)
384         - glDrawPixels sometimes didn't recognize some GL state changes
385         - gluProject/UnProject() didn't check for divide by zero
386         - stex3d demo called random() and srandom(), not portable
387         - fixed memory leaks in context.c and drawpix.c
388         - fixed NULL dereferencing problem in gl_update_texture_state()
389         - glReadPixels between glBegin/glEnd didn't generate an error.
390         - fixed memory leak in polygon tesselator (Randy Frank)
391         - fixed seg fault bug drawing flat-shaded, depth-tested lines
392         - clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded
393         - glBindTexture sometimes didn't work
394         - fixed a bug deep in glXReleaseBuffersMESA()
395         - fog was mistakenly applied to alpha
396         - glPopMatrix didn't set "dirty matrix" flag
397         - glPolygonStipple pattern was sometimes wrong
398         - glClear wasn't disabled during feedback and selection
399         - fixed memory leak in glTexSubImage[123]D
400     Changes:
401         - many library source files reorganized
402         - faster X color allocation, colors also freed when finished with them
403         - new texture sampling function pointer in texture objects
404         - incorporated 3Dfx VooDoo driver v0.16 into main source tree
405         - many 3Dfx driver updates
406         - cygnus Makefiles now included
407         - updated DOS driver
408         - made a few changes to dosmesa.c and wmesa.c (VB->Unclipped)
409         - internally, colors now stored in GLubytes, not GLfixed
410         - optimized changing of GL_SHININESS parameter
412 2.4  September 18, 1997
413     New:
414         - updated 3Dfx Glide driver
415         - hacks for 3Dfx rendering into an X window or fullscreen
416         - added depth buffer access functions to X/Mesa and OS/Mesa interfaces
417     Bug fixes:
418         - pixel buffer could overflow with long, wide lines
419         - fixed FP underflow problems in lighting
420         - glTexSubImage1D() had an unitialized variable
421         - incomplete texture objects could cause a segfault
422         - glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop
423         - flat-shaded quads in a strip were miscolored if clipped
424         - mipmapped triangle lod computation now works correctly
425         - fixed a few under/overflow bugs in triangle rasterizer
426         - glArrayElement() assigned bad normal if normal array disabled
427         - changed argument to glXReleaseBuffersMESA()
428         - fixed small triangle underflow bugs in tritemp.h (hopefully)
429         - glBindTexture(target, 0) caused a crash
430         - glTexImage[123]D() with NULL image pointer caused crash
431         - glPixelStore parameters are now ignored during display list execution
432         - fixed a two-sided lighting w/ clipping bug (black vertices)
433         - textures with width!=height were sometimes mis-rendered
434         - "weird" projection matrices could cause div by 0, other fp errors
435     Changes:
436         - changed precompiled header symbol from PCH to PC_HEADER
437         - split api.c into api1.c and api2.c
438         - added hash.c source file (but not used yet)
439         - a few Sun and HP configuration file changes
440         - MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN
441         - fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c)
443 2.5  November 20, 1997
444     New:
445         - updated 3Dfx driver (v20) for GLQuake
446         - added GL_EXT_paletted_texture extension
447         - added GL_EXT_shared_texture_palette extension
448         - added GL_EXT_point_parameters extension
449         - now including Mark Kilgard's GLUT library v3.6
450         - new GLUT-based demos in gdemos/
451         - added a few more Unix config targets
452         - added Intel X86 assembly language vertex transformation code
453         - 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var
454         - Windows 95 S3 Virge driver
455     Bug fixes:
456         - glCopyTexImage?D would crash due to uninitialized variable
457         - glColor w/ glColorMaterial in a display list caused a bug
458         - fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver
459         - glVertex4*() vertices weren't always projected correctly
460         - trying to use mipmapped textured points or lines caused crash
461         - glColor[34][fd]() values now clamped to [0,1] before int conversion
462     Changes:
463         - new device driver functions for texture mapping
464         - hash tables used for display list and texture object lookup
465         - fixed GLX visual handling code to avoid saving redundant visuals
466         - 3Dfx Glide libraries automatically linked to libMesaGL.so
467         - dropped the Cirrus Logic Mondello code since it's obsolete
468         - updated Cygnus Makefiles (Stephane Rehel)
469         - updated Windows MSVC++ Makefiles (Oleg Letsinsky)
470         - procedure for making library files has changed: scripts now take
471           a major and minor version arguments.  Make-config changed a lot.
472         - new implementation of glTexSubImage2D()
473         - updated widgets-mesa directory to create libMesaGLwM.a (Motif widget)
474         - separate linux-glide and linux-386-glide configurations
476 2.6  February 12, 1998
477     New:
478         - Windows WGL functions
479         - updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support
480         - v0.22 of 3Dfx Glide driver
481         - more X86 assembly language optimizations
482         - faster blending for some modes
483         - XMesaSetFXmode() to switch between 3Dfx window and full-screen mode 
484         - added preliminary thread support
485         - added GLX_MESA_copy_sub_buffer extension
486         - some clipping optimizations
487     Bug fixes:
488         - fixed shading/material bug when drawing long primitive strips
489         - fixed clipping problem in long primitive strips
490         - fixed clipping bug when using 3Dfx driver
491         - fixed a problem when trying to use X fonts w/ 3Dfx driver
492         - fixed a texture filter bug in 3Dfx/Glide driver
493         - fixed bug in 3Dfx/Glide driver involving depth mask & clearing
494         - glLoadMatrix to set projection matrix confused the 3Dfx driver
495         - non-identity texture matrices didn't work with linux-386 configs
496         - glGenTextures() didn't reserve the returned texture IDs
497         - NULL proxy image sent to glTexImageXD() caused crash
498         - added texture state validation optimization (Henk Kok)
499         - fixed colormap reuse problem when using both RGB and CI windows
500         - 32bpp True/DirectColor X visuals weren't recognized
501         - fixed potential problem in evaluators memory allocation
502         - fixed assorted demo compilation bugs
503     Changes:
504         - replaced old Mesa/windows/ directory with Mesa/WIN32/ directory
505         - converted a few old glaux/gltk demos to GLUT
506         - renamed directories:  demos -> xdemos,  gdemos -> demos
509 3.0  September 17, 1998
510     New:
511         - OpenGL 1.2 API
512         - GL_EXT_abgr pixel format extension
513         - GL_SGIS_texture_edge_clamp extension
514         - GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex)
515         - GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex)
516         - GL_EXT_rescale_normal extension and renormal.c demo
517         - GLX_SGI_video_sync extension (a no-op)
518         - antialiased lines
519         - glGetTexImage() now implemented
520         - glDraw/Copy/ReadPixels() optimizations
521         - optimized textured triangle code (Marten Stromberg)
522         - more optimization of dithered TrueColor triangles in X driver
523         - Linux GGI driver
524         - updated MGL driver
525     Bug fixes:
526         - lots of assorted compilation fixes
527         - glInitNames didn't write initial hit record
528         - glBitmap didn't always check for invalid raster position
529         - switching between GLX and OSMesa contexts caused a crash
530         - fixed uninitialized variable in Mesa widget code
531         - fixed typo in texture code which caused book/texgen to crash
532         - fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP
533         - gluDisk() in POINT or LINE mode sometimes failed
534         - fixed texture + fog bug
535         - GL_COMPILE_AND_EXECUTE mode didn't work reliably
536         - glMultMatrix in projection matrix mode w/ 3Dfx driver could fail
537         - glDrawPixels(color index pixels) weren't converted to RGBA
538         - fixed possible getenv() buffer overflow security bug
539         - glBitmap in feedback mode was offset by xOrig, yOrig params
540         - device driver's DrawPixels hook was never used
541         - glDrawPixels with zoomY!=1 and top/bottom clipping didn't work
542         - glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte
543         - fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c
544         - glCopyTexSubImage2D() didn't work with 3Dfx driver
545         - lines with width = 2 could cause crash
546         - glClear with scissor rect sometimes cleared whole buffer
547         - glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work
548         - glTexImageXD( .. GL_ABGR_EXT .. ) didn't work
549         - computation of inverse modelview matrix sometimes failed
550         - fixed GL_CLAMP mode texture sampling bug
551         - textured line interpolation was somewhat broken
552         - textured triangle interpolation was also somewhat broken
553         - glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one
554         - evaluator state wasn't fully initialized
555         - texture coordinate clipping was buggy
556         - evaluator surfaces could be mis-colored
557         - glAccum(GL_RETURN, s) didn't obey glColorMask() settings
558         - zero area polygons shouldn't be culled if polygon mode is point/line
559         - clipped width and height of glReadPixels was sometimes off by one
560         - blending with alpha = 0 or 1.0 wasn't always exact
561         - reading of pixels from clipped region was buggy
562         - minor tweaking of X visual management in GLX emulator
563         - glPolygonStipple now obeys pixel unpacking parameters
564         - glGetPolygonStipple now obeys pixel packing parameters
565         - interleaved vertex array texture coordinates were broken
566         - query of proxy texture internal format was broken
567         - alpha channel wasn't reliably cleared
568         - fixed divide by zero error in gluScaleImage if dest size = 1 x 1
569     Conformance bug fixes:
570         - GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing
571         - GL_TEXTURE_INTERNAL_FORMAT was missing
572         - glGet*(GL_POLYGON_STIPPLE) was broken
573         - glPush/PopAttrib() didn't save/restore all texture state
574         - glBitmap in feedback mode didn't work
575         - feedback of texture coords didn't always work
576         - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke
577         - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke
578         - glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke
579     Changes:
580         - upgraded GLUT to version 3.7
581         - only GL and GLU library code included in MesaLib.tar.gz
582         - GLUT and all demos now in MesaDemos.tar.gz
583         - glaux and gltk libraries removed
584         - IRIX -n32 and -64 libs go in lib32/ and lib64/ directories
587 3.1 beta 1  November 19, 1998
588     New:
589         - GL_EXT_stencil_wrap extension
590         - GL_INGR_blend_func_separate extension
591         - GL_ARB_multitexture extension
592         - GL_NV_texgen_reflection extension
593         - newly optimized vertex transformation code
594         - updated GLUT 3.7 code
595         - better precision when using 32-bit Z buffer
596         - Allegro DJGPP driver
597     Bug fixes:
598         - glCopyPixels between front/back buffers didn't copy alpha correctly
599         - fixed out-of-bounds memory access in optimized 2-D texture code
600         - glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter
601         - glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter
602         - clipping of texture coordinates sometimes had bad R,Q values
603         - GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels
604         - glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean *
605         - texture was sometimes applied twice with 3Dfx driver
606         - glPush/PopAttrib() fouled up texture object reference counts
607         - glDeleteLists(0, n) caused assertion failure
608         - bilinear texture sampling wasn't accurate enough
609         - glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx
610         - color components were reversed on big endian 32 bpp X visuals
611     Changes:
612         - removed GL_EXT_multitexture extension
615 3.1 beta 2  May 24, 1999
616     New:
617         - multi-textured points and lines (mjk@nvidia.com)
618         - optimized 24bpp X rendering (bernd.paysan@gmx.de)
619         - added allegro support (bernie-t@geocities.com)
620         - cleaned-up Windows-related stuff (Ted Jump)
621         - minor stereo changes (KendallB@scitechsoft.com)
622         - new BeOS driver which implements BGLView class
623         - new Direct3D driver (see src/D3D)
624         - more efficient filled gluCylinder() function
625         - utilities:  util/showbuffer.[ch] and util/glstate.[ch]
626         - fixed some IRIX compiler warnings
627         - added support for building Mesa in XFree86 with
628             SGI's GLX (kevin@precisioninsight.com)
629     Bug fixes:
630         - a variety of Windows/Mesa bug fixes (mjk@nvidia.com)
631         - packed pixel images weren't unpacked correctly
632         - patches some win32 files in GLUT (mjk@nvidia.com)
633         - glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX
634         - fixed lighting bug in Keith's new shading code
635         - fixed texture segfault seen in Lament screensaver
636         - fixed miscellaneous low-memory bugs
637         - glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken
638         - GL_LINEAR sampling of 3D textures was broken
639         - fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org)
640         - added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk)
641         - fixed wide point and wide line conformance bugs (brianp)
642     Changes:
643         - some device driver changes (see src/dd.h)
644         - new copyright on core Mesa code
647 3.1 beta 3  September 17, 1999
648     New:
649         - optimized glAccum function
650         - optimized 24bpp rendering in XMesa driver
651         - GLU 1.2 polygon tessellator
652     Bug Fixes:
653         - glGetTexLevelParameter wasn't fully implemented
654         - glXUseXFont now handles multi-byte fonts
655         - glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result
656         - alpha channel of blending points, lines was sometimes incorrect
657     Changes:
658         - New library names:  "libGL" instead of "libMesaGL"
659         - New library numbering: libGL.so.1.2.310
660         - New subdirectories:  docs/ and bin/
661         - New Makefile-system (autoconf,automake,libtool)
664 3.1 final  December 14, 1999
665     New:
666         - added demos/gloss.c
667         - added xdemos/glxdpyinfo.c
668         - added GLX_ARB_get_proc_address extension
669         - rewritten glTexImage code paths (faster, less memory, bug fixes)
670     Bug Fixes:
671         - several vertex array bug fixes
672         - overlapping glCopyPixels with pixel zooming now works
673         - glXUseXFont() bitmaps were vertically shifted by one pixel
674         - glCopyPixels with pixel zooming now works
677 3.2 final  April 24, 2000
678     Bug fixes:
679         - fixed memcpy bugs in span.c
680         - fixed missing glEnd problem in demos/tessdemo.c
681         - fixed bug when clearing 24bpp Ximages
682         - fixed clipping problem found in Unreal Tournament
683         - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
684         - fixed Loki's 3dfx RGB vs BGR bug
685         - fixed Loki's 3dfx smooth/flat shading bug in SoF
686     Changes:
687         - updated docs/README file
688         - use bcopy() optimizations on FreeBSD
689         - re-enabled the optimized persp_textured_triangle() function
692 3.2.1  July 19, 2000
693     Bug fixes:
694         - gluBuild2DMipmaps() didn't accept GL_BGRA
695         - Fixed compile/makefile problems on IRIX
696         - fixed segfault in 3dfx driver when using GL selection/feedback
697         - no longer cull very, very tiny triangles
698         - blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
699         - fixed Motif detection code in widgets-mesa/configure.in
700         - glColorMaterial and glMaterial updates to emissive and ambient
701           didn't always work right
702         - Specular highlights weren't always in the right place
703         - clipped GL_LINE mode polygons had interior lines appear
704         - blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
705         - GL_NICEST fog didn't always work with flat shading
706         - glRect commands in display lists were sometimes miscolored
707         - Line Z offset didn't always work
708         - fixed texgen normal vector problem (gloss's teapot)
709         - numerous GL conformance bugs fixed
710     Changes:
711         - glColorMask(false, false, false, false) handled better/faster
712         - reverted to old GLU polygon tessellator, GLU 1.1
713         - updated Win32 build files
716 3.3  July 21, 2000
717     New:
718         - antialiased triangles now implemented
719         - GL_EXT_texture_env_add texture mode extension
720         - GLX 1.3 API
721         - support for separate draw/read buffers (ie GL_SGI_make_current_read)
722         - thread-safe API dispath
723         - improved glxinfo program
724         - demos/texdown program to measure texture download performance
725         - glext.h header file
726         - demos/geartrain program
727         - GL_EXT_texture_lod_bias extension
728         - demos/lodbias program
729         - further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
730         - GLX_EXT_visual_rating extension (a no-op, however)
731         - GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
732         - demos/occlude program
733         - GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
734         - demos/pixeltex program
735         - GL_SGI_color_matrix extension
736         - GL_SGI_color_table extension
737         - GL_EXT_histogram extension
738         - GL_ARB_texture_cube_map extension
739         - added xdemos/glxheads and xdemos/manywin
740         - demos/texenv.c demo
741         - GL_EXT_texture_env_combine extension (by Holger Waechtler)
742         - Xlib driver is now thread-safe (see xdemos/glthreads)
743     Bug Fixes:
744         - various GL conformance failures fixed since 3.2.1
745     Changes:
746         - gl.h now uses #defines instead of C enums for all tokens
747         - glu.h now uses #defines instead of C enums for all tokens
748         - moved programs from 3Dfx/demos/ into demos/ directory
751 3.4  November 3, 2000
752     New:
753         - optimized glDrawPixels for glPixelZoom(1,-1)
754     Bug Fixes:
755         - widgets-mesa/src/*.c files were missing from 3.3 distro
756         - include/GL/mesa_wgl.h file was missing from 3.3 distro
757         - fixed some Win32 compile problems
758         - texture object priorities weren't getting initialized to 1.0
759         - glAreTexturesResident return value was wrong when using hardware
760         - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
761         - glReadPixels with GLushort packed types was broken
762         - fixed a few bugs in the GL_EXT_texture_env_combine texture code
763         - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
764         - fixed some typos/bugs in the VB code
765         - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
766         - optimized glDrawPixels paths weren't being used
767         - per-fragment fog calculation didn't work without a Z buffer
768         - improved blending accuracy, fixes Glean blendFunc test failures
769         - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
770         - glXGetProcAddressARB() didn't always return the right address
771         - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
772         - texture matrix changes weren't always detected (GLUT projtex demo)
773         - fixed random color problem in vertex fog code
774         - fixed Glide-related bug that let Quake get a 24-bit Z buffer
775     Changes:
776         - finished internal support for compressed textures for DRI
779 3.4.1  February 14, 2001
780     New:
781         - fixed some Linux build problems
782         - fixed some Windows build problems
783         - GL_EXT_texture_env_dot3 extension (Gareth Hughes)
784     Bug fixes:
785         - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
786         - various state-update code changes needed for DRI bugs
787         - disabled pixel transfer ops in glColorTable commands, not needed
788         - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
789         - updated sources and fixed compile problems in widgets-mesa/
790         - GLX_PBUFFER enum value was wrong in glx.h
791         - fixed a glColorMaterial lighting bug
792         - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
793         - glXCopySubBufferMESA() Y position was off by one
794         - Error checking of glTexSubImage3D() was broken (bug 128775)
795         - glPopAttrib() didn't restore all derived Mesa state correctly
796         - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
797           conformance problems at 16bpp.
798         - clearing depth buffer with scissoring was broken, would segfault
799         - OSMesaGetDepthBuffer() returned bad bytesPerValue value
800         - fixed a line clipping bug (reported by Craig McDaniel)
801         - fixed RGB color over/underflow bug for very tiny triangles
802     Known problems:
803         - NURBS or evaluator surfaces inside display lists don't always work