1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
|
Mesa Version History
====================
1.0 beta February 1995
Initial release
1.1 beta March 4, 1995
Changes:
faster point and line drawing (2x faster)
more systems supported, better Makefiles
Renamed lib*.a files to avoid collisions
many small bug fixes
New:
pseudo-GLX functions added
new implementation of evaluators (eval2.c)
GLUT support
1.1.1 beta March 7, 1995
Changes:
Reverted from eval2.c to eval.c due to FPE on Linux
more speed improvements
more Makefile changes
1.1.2 beta March 14, 1995
New:
implementation of SGI's blending extensions
glXUseXFont implemented
added MESA_DEBUG environment variable support
Changes:
Using eval2.c again
more FPE-prevention checks (0-length normals are OK)
a few small bug fixes
much faster pixel logic ops!
faster transformation arithmetic
1.1.3 beta March 31, 1995
New:
gluScaleImage() and gluBuild2DMipMaps() implemented
Mesa widgets for Xt/Motif
blendEXT demos
added environment variables for selecting visuals
Changes:
almost all GLUT demos work correctly now
faster X device driver functions
more bug fixes
1.1.4 beta April 20, 1995
Bug fixes:
- missing #define SEEK_SET in src-tk/image.c
- compile glShadeModel into display lists
- fixed pow() domain error in src/light.c
- fixed "flickering bitmaps" in double buffer mode
- fixed tk.h and aux.h for C++
- state of LIGHT_MODEL_LOCAL_VIEWER was inverted
New features:
- MUCH, MUCH nicer dithering in 8-bit RGB mode
- updated widgets and widget demos
- Implemented GLXPixmap functions
- Added GLU 1.1 and GLX 1.1 functions
- Changed the X/Mesa interface API, more versatile
- Implemented gluPartialDisk()
1.2 May 22, 1995
Bug fixes:
- IRIX 4.x makefile problem
- modified tk to share root colormap as needed
- gluLookAt normalization problem
- suppress Expose, NoExpose events in swapbuffers
- glBitmap() and glDrawPixels() clipping
New features:
- GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture
modes implemented
- texture maps stored more efficiently
- texture maps can be compiled into display lists
- Bogdan Sikorski's GLU polygon tesselation code
- Linas Vepstas's sweep and extrusion library
- glXCreateContext()'s shareList parameter works as it's supposed to.
XMesaCreateContext() updated to accept a shareList parameter too.
- Mesa can be compiled with real OpenGL .h files
- MESA_BACK_BUFFER environment variable
- better GLX error checking
1.2.1 June 22, 1995
Bug fixes:
- X/Mesa double buffer window resize crash
- widgets now pass PointerMotion events
- X/Mesa incorrect default clear color and drawing color
- more robust X MIT-SHM support in X/Mesa
- glTexImage( format=GL_LUMINANCE ) didn't work
- GL_LINE mode polygons with line width > 1.0 could cause a crash
- numerous feedback bugs
- glReadPixels() from depth buffer was wrong
- error prone depth and stencil buffer allocation
New features:
- Preliminary Microsoft Windows driver
- Implemented a number of missing functions: glEvalCoord[12][df]v(),
glGet...(), etc.
- Added a few missing symbols to gl.h and glu.h
- Faster rendering of smooth-shaded, RGBA, depth-buffered polygons.
- Faster rendering of lines when width=2.0
- Stencil-related functions now work in display lists
Changes:
- renamed aux.h as glaux.h (MS-DOS names can't start with aux)
- most filenames are in 8.3 format to accomodate 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 clippping
- occasional wrong default background color really fixed!
- glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work
- gluBuild2DMipmaps malloc problem fixed
- view volume clipping of smooth shaded lines resulted in bad colors
Changes:
- new visual selection method in glXChooseVisual()
- improved GLU quadric functions
- call XSync for glFinish and XFlush for glFlush
- glVertex() calls now use a function pointer to avoid conditionals
- removed contrib directory from Mesa tar file (available on ftp site)
- AIX shared library support
- Removed GLUenum type as it's not in OpenGL
1.2.3 September 26, 1995
New features:
- Mesa header files now equivalent to SGI OpenGL headers
- Support for HP's Color Recovery dithering displays
- Faster vertex transformation
- Faster raster operations into X windows under certain conditions
- New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General
- 4-bit visuals now supported
Bug fixes:
- glScissor bug fixed
- round-off errors in clipping lines against clip planes fixed
- byte swapping between hosts and display servers implemented
- glGetError() can be called without a current rendering context
- problem with accidentally culled polygons is fixed
- fixed some widget compilation problems
1.2.4 November 17, 1995
New features:
- More speed improvements (lighting, fogging, polygon drawing)
- Window system and OS-independent off-screen rendering
- Preliminary Fortran bindings
- glPolygonOffsetEXT implemented
- glColorMask and glIndexMask now fully implemented
- glPixelZoom implemented
- display lists fully implemented
- gamma correction
- dithering in 8-bit TrueColor/DirectColor visuals
Changes:
- Improved device driver interface
- tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk
- Dithering support moved from core into device driver
Bug fixes:
- glEnable/Disable( GL_LIGHTING ) didn't always take effect
- glReadPixels byte swapping was broken
- glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken
- duplicate glColor4b() prototype in GL/gl.h removed
- stripes in wave -ci demo fixed
- GL_LINEAR_MIPMAP_NEAREST had wrong value
- bugs in HP Color Recovery support fixed
- fixed bug when blending lines, points, bitmaps outside of window
1.2.5 November 30, 1995
New Features:
- updated MS Windows driver
- new implementation of StaticGray/GrayScale visual support
Bug fixes:
- pixelzooming with gamma correction or blending didn't work
- HP color recovery visual wasn't being picked by glXChooseVisual
- glClear didn't always observe glColorMask changes
- olympic and offset demos didn't compile on some Suns
- texcoord clamping wasn't correct
- a polygon optimization introduced an occasional sampling problem
1.2.6 January 26, 1996
New Features:
- faster line and polygon rendering under certain conditions. See
Performance Tips 9 and 10 in README
- profiling
- lighting is a bit faster
- better perspective corrected texture mapping
- Amiga AmiWin (X11) support
- preliminary Linux SVGA driver
Changes:
- now using a 16-bit depth buffer, faster, smaller
- GL_NORMALIZE is disabled by default
Bug fixes:
- projective texture mapping
- fixed a memory leak in the context destroy function
- GL_POLYGON with less than 3 vertices caused a crash
- glGet*() returned wrong result for GL_INDEX_MODE
- reading pixels from an unmapped X window caused a BadMatch error
1.2.7 March 5, 1996
New:
- faster lighting
- faster 16-bit TrueColor rendering on Linux
- faster 32-bit TrueColor rendering on Linux, HP, IBM
- non-depth-buffered XImage polygons are faster
- vertex array extension
- software alpha planes
- updated Macintosh driver
- new NeXT driver
- GLU quadric functions generate texture coordinates
- reflect.c demo - reflective, textured surface demo
Changes:
- gamma correction code moved into the X driver for better performance
Bug fixes:
- multiple glClipPlane()'s didn't work reliably
- glPolygonMode() didn't always work
- glCullFace( GL_FRONT_AND_BACK ) didn't work
- texture mapping with gamma correction was buggy
- floating point exceptions in texture coordinate interpolation
- XImage byte swapping didn't always work
- polygon edge flags weren't always used correctly
1.2.8 May 22, 1996
New:
- overlay planes on X servers with the SERVER_OVERLAY_VISUALS property
- better monochrome output
- more IRIX 6.x configurations
- more robust RGB mode color allocation
- added MESA_XSYNC environment variable
- GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions
- GL_MESA_window_pos extension
- faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT
and GL_UNSIGNED_INT
- driver for prototype Cirrus Mondello 3-D board
- updated AmigaDOS driver
- a few small speed optimizations in polygon rendering
Changes:
- internal device driver interface modified to simplify device
driver implementations and to support hardware Z buffers
- several changes to the X/Mesa interface (xmesa.h)
Bug fixes:
- fixed pow(0,0) domain error triggered on some systems
- glStencilClear() in a display list caused an infinite loop
- glRasterPos*() was sometimes off by +/-0.5 in X and Y
- color masking and blending were performed in wrong order
- auxSolidCylinder() sometimes drew a wire-frame cylinder
- fixed file writing bug in osdemo.c
- pixel mapping didn't always work
- the GL_GEQUAL stencil func didn't work
- the GL_INVERT stencil op didn't work
- the stencil write mask didn't work
- glPush/PopAttrib() didn't do enough error checking
- glIsList() didn't always work correctly
2.0 October 10, 1996
New:
- Implements OpenGL 1.1 API functions
- all texture filtering modes supported (mipmapping)
- faster texture mapping, see Performance Tip 11 in README
- antialiased RGB points
- X support for line and polygon stippling
- glDrawBuffer( GL_FRONT_AND_BACK ) works
- util/ directory of useful stuff
- demos/texobj demo of texture objects
Changes:
- major internal changes for thread-safeness
- new device driver interface
- MESA_ALPHA env variable removed
- triangle rasterizer replaces polygon rasterizer
Bug fixes:
- glPopAttrib() bug
- glDrawBuffer(GL_NONE) works now
2.1 December 14, 1996
New:
- VMS support
- MS-DOS driver
- OpenStep support
- updated, combined Windows 95/NT driver
- implemented glGetLighti() and glGetTexGen*()
- GLX does garbage collection of ancillary buffers
Bug fixes:
- removed unused _EXT constants from gl.h
- fixed polygon offset bugs
- Z coordinates of clipped lines were incorrect
- glEdgeFlag() in display lists didn't always work
- glLight*() in display lists didn't work
- fixed X line stipple bugs (Michael Pichler)
- glXUseXfonts XFreeFont/XFreeFontInfo bug fixed
- fixed a feedback bug
- glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix
- polygons were sometimes culled instead of clipped
- triangle rasterizer suffered from float/int overflow exceptions
- fixed FP underflow exception in lighting (specular exponent)
- glEnable/glDisable of GL_EXT_vertex_array enums didn't work
- fixed free(NULL) in GLU tesselator code
- using 24-bit color on some X servers resulted in garbage rendering
- 32-bit per pixel mode for XFree86 now works
- glRotate(a,0,0,0) gave unpredictable results
- GL_LINE_STRIP with > 480 vertices had occasional clipping problems
- 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap
- glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled
- glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right
- accumulation buffer was limited to positive values
- projective textures didn't work
- selection buffer overflows weren't handled correctly
Changes:
- restored the GL_EXT_polygon_offset extension
- slightly faster RGB dithering
- the SVGA driver works again
- Amiga driver now distributed separately
- NeXT driver updated for Mesa 2.x
2.2 March 14, 1997
New:
- better color selection when dithering
- added GL_EXT_texture_object extension
- updated MS-DOS driver for DJGPP
- added openbsd make configuration
- faster dithered flat-shaded triangles
- various compilation problems with Motif widgets fixed
- gl.h, glx.h and glu.h name mangling option
- BeOS driver
- 3D texture mapping extension
- GL_MESA_resize_buffers extension
- morph3d, stex3d and spectex demos
- 3Dfx support
Bug fixes:
- glColorMaterial should finally work right in all respects
- linear interpolation of mipmap levels was incorrectly weighted
- readpix.c didn't compile on Macintosh
- GL_INVERT and related logic ops didn't work right
- glTexImage[12]D() didn't check its parameters consistantly
- fixed a memory leak in glTexImage[12]D()
- kludged around a SunOS 5.x/GCC compiler bug in the feedback code
- glReadPixels aborted instead of normally catching some errors
- a few 1.1 constants were missing or misnamed in gl.h
- glBegin(p); glBegin(q); didn't generate an error
- fixed a memory leak in GLX code
- clipping of concave polygons could cause a core dump
- 1-component alpha texture maps didn't work
- fixed a GLU polygon tesselator bug
- polygons with colinear vertices were sometimes culled
- feedback triangle colors were wrong when using smooth shading
- textures with borders didn't work correctly
- colors returned in feedback mode were wrong when using lighting
- spotlights didn't effect ambient lighting correctly
- gluPartialDisk() had a few bugs
Changes:
- device driver interface expanded to support texture mapping
- faster matrix inversion subroutine
- commented out #include "wmesa_extend.h" from src/wmesa.c
- fixed many compiler warnings in the demo programs
2.3 June 30, 1997
New:
- Mesa distribution divided into two pieces: library code and demos
- faster vertex transformation, clip testing, lighting
- faster line drawing
- TrueColor visuals how have dithering (for depths < 24 bits)
- added MESA_NO_DITHER environment variable
- new device driver function: NearFar(), RenderVB(), RasterSetup()
- added LynxOS configuration
- added cygnus Win32 configuration
- added texcyl.c GLUT demo
- added XMesaDitherColor() to X/Mesa interface
- new NURBS code from Bogdan Sikorski
- added demos/shape.c (non-rectangular X window!)
Bug fixes:
- glEnable/DisableClientState() were missing from GL/gl.h
- GL_SPHERE_MAP texcoord generation didn't work correctly
- glXGetConfig() returned wrong number of depth, stencil, accum bits
- glDrawPixels feedback/selection didn't examine RasterPos valid bit
- black and white were reversed on some monochrome displays
- fixed potential image memory leak (wasn't setting reference counter)
- glDrawPixels sometimes didn't recognize some GL state changes
- gluProject/UnProject() didn't check for divide by zero
- stex3d demo called random() and srandom(), not portable
- fixed memory leaks in context.c and drawpix.c
- fixed NULL dereferencing problem in gl_update_texture_state()
- glReadPixels between glBegin/glEnd didn't generate an error.
- fixed memory leak in polygon tesselator (Randy Frank)
- fixed seg fault bug drawing flat-shaded, depth-tested lines
- clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded
- glBindTexture sometimes didn't work
- fixed a bug deep in glXReleaseBuffersMESA()
- fog was mistakenly applied to alpha
- glPopMatrix didn't set "dirty matrix" flag
- glPolygonStipple pattern was sometimes wrong
- glClear wasn't disabled during feedback and selection
- fixed memory leak in glTexSubImage[123]D
Changes:
- many library source files reorganized
- faster X color allocation, colors also freed when finished with them
- new texture sampling function pointer in texture objects
- incorporated 3Dfx VooDoo driver v0.16 into main source tree
- many 3Dfx driver updates
- cygnus Makefiles now included
- updated DOS driver
- made a few changes to dosmesa.c and wmesa.c (VB->Unclipped)
- internally, colors now stored in GLubytes, not GLfixed
- optimized changing of GL_SHININESS parameter
2.4 September 18, 1997
New:
- updated 3Dfx Glide driver
- hacks for 3Dfx rendering into an X window or fullscreen
- added depth buffer access functions to X/Mesa and OS/Mesa interfaces
Bug fixes:
- pixel buffer could overflow with long, wide lines
- fixed FP underflow problems in lighting
- glTexSubImage1D() had an unitialized variable
- incomplete texture objects could cause a segfault
- glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop
- flat-shaded quads in a strip were miscolored if clipped
- mipmapped triangle lod computation now works correctly
- fixed a few under/overflow bugs in triangle rasterizer
- glArrayElement() assigned bad normal if normal array disabled
- changed argument to glXReleaseBuffersMESA()
- fixed small triangle underflow bugs in tritemp.h (hopefully)
- glBindTexture(target, 0) caused a crash
- glTexImage[123]D() with NULL image pointer caused crash
- glPixelStore parameters are now ignored during display list execution
- fixed a two-sided lighting w/ clipping bug (black vertices)
- textures with width!=height were sometimes mis-rendered
- "weird" projection matrices could cause div by 0, other fp errors
Changes:
- changed precompiled header symbol from PCH to PC_HEADER
- split api.c into api1.c and api2.c
- added hash.c source file (but not used yet)
- a few Sun and HP configuration file changes
- MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN
- fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c)
2.5 November 20, 1997
New:
- updated 3Dfx driver (v20) for GLQuake
- added GL_EXT_paletted_texture extension
- added GL_EXT_shared_texture_palette extension
- added GL_EXT_point_parameters extension
- now including Mark Kilgard's GLUT library v3.6
- new GLUT-based demos in gdemos/
- added a few more Unix config targets
- added Intel X86 assembly language vertex transformation code
- 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var
- Windows 95 S3 Virge driver
Bug fixes:
- glCopyTexImage?D would crash due to uninitialized variable
- glColor w/ glColorMaterial in a display list caused a bug
- fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver
- glVertex4*() vertices weren't always projected correctly
- trying to use mipmapped textured points or lines caused crash
- glColor[34][fd]() values now clamped to [0,1] before int conversion
Changes:
- new device driver functions for texture mapping
- hash tables used for display list and texture object lookup
- fixed GLX visual handling code to avoid saving redundant visuals
- 3Dfx Glide libraries automatically linked to libMesaGL.so
- dropped the Cirrus Logic Mondello code since it's obsolete
- updated Cygnus Makefiles (Stephane Rehel)
- updated Windows MSVC++ Makefiles (Oleg Letsinsky)
- procedure for making library files has changed: scripts now take
a major and minor version arguments. Make-config changed a lot.
- new implementation of glTexSubImage2D()
- updated widgets-mesa directory to create libMesaGLwM.a (Motif widget)
- separate linux-glide and linux-386-glide configurations
2.6 February 12, 1998
New:
- Windows WGL functions
- updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support
- v0.22 of 3Dfx Glide driver
- more X86 assembly language optimizations
- faster blending for some modes
- XMesaSetFXmode() to switch between 3Dfx window and full-screen mode
- added preliminary thread support
- added GLX_MESA_copy_sub_buffer extension
- some clipping optimizations
Bug fixes:
- fixed shading/material bug when drawing long primitive strips
- fixed clipping problem in long primitive strips
- fixed clipping bug when using 3Dfx driver
- fixed a problem when trying to use X fonts w/ 3Dfx driver
- fixed a texture filter bug in 3Dfx/Glide driver
- fixed bug in 3Dfx/Glide driver involving depth mask & clearing
- glLoadMatrix to set projection matrix confused the 3Dfx driver
- non-identity texture matrices didn't work with linux-386 configs
- glGenTextures() didn't reserve the returned texture IDs
- NULL proxy image sent to glTexImageXD() caused crash
- added texture state validation optimization (Henk Kok)
- fixed colormap reuse problem when using both RGB and CI windows
- 32bpp True/DirectColor X visuals weren't recognized
- fixed potential problem in evaluators memory allocation
- fixed assorted demo compilation bugs
Changes:
- replaced old Mesa/windows/ directory with Mesa/WIN32/ directory
- converted a few old glaux/gltk demos to GLUT
- renamed directories: demos -> xdemos, gdemos -> demos
3.0 September 17, 1998
New:
- OpenGL 1.2 API
- GL_EXT_abgr pixel format extension
- GL_SGIS_texture_edge_clamp extension
- GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex)
- GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex)
- GL_EXT_rescale_normal extension and renormal.c demo
- GLX_SGI_video_sync extension (a no-op)
- antialiased lines
- glGetTexImage() now implemented
- glDraw/Copy/ReadPixels() optimizations
- optimized textured triangle code (Marten Stromberg)
- more optimization of dithered TrueColor triangles in X driver
- Linux GGI driver
- updated MGL driver
Bug fixes:
- lots of assorted compilation fixes
- glInitNames didn't write initial hit record
- glBitmap didn't always check for invalid raster position
- switching between GLX and OSMesa contexts caused a crash
- fixed uninitialized variable in Mesa widget code
- fixed typo in texture code which caused book/texgen to crash
- fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP
- gluDisk() in POINT or LINE mode sometimes failed
- fixed texture + fog bug
- GL_COMPILE_AND_EXECUTE mode didn't work reliably
- glMultMatrix in projection matrix mode w/ 3Dfx driver could fail
- glDrawPixels(color index pixels) weren't converted to RGBA
- fixed possible getenv() buffer overflow security bug
- glBitmap in feedback mode was offset by xOrig, yOrig params
- device driver's DrawPixels hook was never used
- glDrawPixels with zoomY!=1 and top/bottom clipping didn't work
- glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte
- fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c
- glCopyTexSubImage2D() didn't work with 3Dfx driver
- lines with width = 2 could cause crash
- glClear with scissor rect sometimes cleared whole buffer
- glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work
- glTexImageXD( .. GL_ABGR_EXT .. ) didn't work
- computation of inverse modelview matrix sometimes failed
- fixed GL_CLAMP mode texture sampling bug
- textured line interpolation was somewhat broken
- textured triangle interpolation was also somewhat broken
- glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one
- evaluator state wasn't fully initialized
- texture coordinate clipping was buggy
- evaluator surfaces could be mis-colored
- glAccum(GL_RETURN, s) didn't obey glColorMask() settings
- zero area polygons shouldn't be culled if polygon mode is point/line
- clipped width and height of glReadPixels was sometimes off by one
- blending with alpha = 0 or 1.0 wasn't always exact
- reading of pixels from clipped region was buggy
- minor tweaking of X visual management in GLX emulator
- glPolygonStipple now obeys pixel unpacking parameters
- glGetPolygonStipple now obeys pixel packing parameters
- interleaved vertex array texture coordinates were broken
- query of proxy texture internal format was broken
- alpha channel wasn't reliably cleared
- fixed divide by zero error in gluScaleImage if dest size = 1 x 1
Conformance bug fixes:
- GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing
- GL_TEXTURE_INTERNAL_FORMAT was missing
- glGet*(GL_POLYGON_STIPPLE) was broken
- glPush/PopAttrib() didn't save/restore all texture state
- glBitmap in feedback mode didn't work
- feedback of texture coords didn't always work
- glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke
- glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke
- glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke
Changes:
- upgraded GLUT to version 3.7
- only GL and GLU library code included in MesaLib.tar.gz
- GLUT and all demos now in MesaDemos.tar.gz
- glaux and gltk libraries removed
- IRIX -n32 and -64 libs go in lib32/ and lib64/ directories
3.1 beta 1 November 19, 1998
New:
- GL_EXT_stencil_wrap extension
- GL_INGR_blend_func_separate extension
- GL_ARB_multitexture extension
- GL_NV_texgen_reflection extension
- newly optimized vertex transformation code
- updated GLUT 3.7 code
- better precision when using 32-bit Z buffer
- Allegro DJGPP driver
Bug fixes:
- glCopyPixels between front/back buffers didn't copy alpha correctly
- fixed out-of-bounds memory access in optimized 2-D texture code
- glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter
- glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter
- clipping of texture coordinates sometimes had bad R,Q values
- GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels
- glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean *
- texture was sometimes applied twice with 3Dfx driver
- glPush/PopAttrib() fouled up texture object reference counts
- glDeleteLists(0, n) caused assertion failure
- bilinear texture sampling wasn't accurate enough
- glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx
- color components were reversed on big endian 32 bpp X visuals
Changes:
- removed GL_EXT_multitexture extension
3.1 beta 2 May 24, 1999
New:
- multi-textured points and lines (mjk@nvidia.com)
- optimized 24bpp X rendering (bernd.paysan@gmx.de)
- added allegro support (bernie-t@geocities.com)
- cleaned-up Windows-related stuff (Ted Jump)
- minor stereo changes (KendallB@scitechsoft.com)
- new BeOS driver which implements BGLView class
- new Direct3D driver (see src/D3D)
- more efficient filled gluCylinder() function
- utilities: util/showbuffer.[ch] and util/glstate.[ch]
- fixed some IRIX compiler warnings
- added support for building Mesa in XFree86 with
SGI's GLX (kevin@precisioninsight.com)
Bug fixes:
- a variety of Windows/Mesa bug fixes (mjk@nvidia.com)
- packed pixel images weren't unpacked correctly
- patches some win32 files in GLUT (mjk@nvidia.com)
- glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX
- fixed lighting bug in Keith's new shading code
- fixed texture segfault seen in Lament screensaver
- fixed miscellaneous low-memory bugs
- glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken
- GL_LINEAR sampling of 3D textures was broken
- fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org)
- added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk)
- fixed wide point and wide line conformance bugs (brianp)
Changes:
- some device driver changes (see src/dd.h)
- new copyright on core Mesa code
3.1 beta 3 September 17, 1999
New:
- optimized glAccum function
- optimized 24bpp rendering in XMesa driver
- GLU 1.2 polygon tessellator
Bug Fixes:
- glGetTexLevelParameter wasn't fully implemented
- glXUseXFont now handles multi-byte fonts
- glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result
- alpha channel of blending points, lines was sometimes incorrect
Changes:
- New library names: "libGL" instead of "libMesaGL"
- New library numbering: libGL.so.1.2.310
- New subdirectories: docs/ and bin/
- New Makefile-system (autoconf,automake,libtool)
3.1 final December 14, 1999
New:
- added demos/gloss.c
- added xdemos/glxdpyinfo.c
- added GLX_ARB_get_proc_address extension
- rewritten glTexImage code paths (faster, less memory, bug fixes)
Bug Fixes:
- several vertex array bug fixes
- overlapping glCopyPixels with pixel zooming now works
- glXUseXFont() bitmaps were vertically shifted by one pixel
- glCopyPixels with pixel zooming now works
3.2 final April 24, 2000
Bug fixes:
- fixed memcpy bugs in span.c
- fixed missing glEnd problem in demos/tessdemo.c
- fixed bug when clearing 24bpp Ximages
- fixed clipping problem found in Unreal Tournament
- fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
- fixed Loki's 3dfx RGB vs BGR bug
- fixed Loki's 3dfx smooth/flat shading bug in SoF
Changes:
- updated docs/README file
- use bcopy() optimizations on FreeBSD
- re-enabled the optimized persp_textured_triangle() function
3.2.1 July 19, 2000
Bug fixes:
- gluBuild2DMipmaps() didn't accept GL_BGRA
- Fixed compile/makefile problems on IRIX
- fixed segfault in 3dfx driver when using GL selection/feedback
- no longer cull very, very tiny triangles
- blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering)
- fixed Motif detection code in widgets-mesa/configure.in
- glColorMaterial and glMaterial updates to emissive and ambient
didn't always work right
- Specular highlights weren't always in the right place
- clipped GL_LINE mode polygons had interior lines appear
- blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken
- GL_NICEST fog didn't always work with flat shading
- glRect commands in display lists were sometimes miscolored
- Line Z offset didn't always work
- fixed texgen normal vector problem (gloss's teapot)
- numerous GL conformance bugs fixed
Changes:
- glColorMask(false, false, false, false) handled better/faster
- reverted to old GLU polygon tessellator, GLU 1.1
- updated Win32 build files
3.3 July 21, 2000
New:
- antialiased triangles now implemented
- GL_EXT_texture_env_add texture mode extension
- GLX 1.3 API
- support for separate draw/read buffers (ie GL_SGI_make_current_read)
- thread-safe API dispath
- improved glxinfo program
- demos/texdown program to measure texture download performance
- glext.h header file
- demos/geartrain program
- GL_EXT_texture_lod_bias extension
- demos/lodbias program
- further optimized glRead/DrawPixels for 16-bit TrueColor X visuals
- GLX_EXT_visual_rating extension (a no-op, however)
- GL_HP_occlusion_test extension (for X and OS/Mesa drivers)
- demos/occlude program
- GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions
- demos/pixeltex program
- GL_SGI_color_matrix extension
- GL_SGI_color_table extension
- GL_EXT_histogram extension
- GL_ARB_texture_cube_map extension
- added xdemos/glxheads and xdemos/manywin
- demos/texenv.c demo
- GL_EXT_texture_env_combine extension (by Holger Waechtler)
- Xlib driver is now thread-safe (see xdemos/glthreads)
Bug Fixes:
- various GL conformance failures fixed since 3.2.1
Changes:
- gl.h now uses #defines instead of C enums for all tokens
- glu.h now uses #defines instead of C enums for all tokens
- moved programs from 3Dfx/demos/ into demos/ directory
3.4 November 3, 2000
New:
- optimized glDrawPixels for glPixelZoom(1,-1)
Bug Fixes:
- widgets-mesa/src/*.c files were missing from 3.3 distro
- include/GL/mesa_wgl.h file was missing from 3.3 distro
- fixed some Win32 compile problems
- texture object priorities weren't getting initialized to 1.0
- glAreTexturesResident return value was wrong when using hardware
- glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
- glReadPixels with GLushort packed types was broken
- fixed a few bugs in the GL_EXT_texture_env_combine texture code
- glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
- fixed some typos/bugs in the VB code
- glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
- optimized glDrawPixels paths weren't being used
- per-fragment fog calculation didn't work without a Z buffer
- improved blending accuracy, fixes Glean blendFunc test failures
- glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
- glXGetProcAddressARB() didn't always return the right address
- gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
- texture matrix changes weren't always detected (GLUT projtex demo)
- fixed random color problem in vertex fog code
- fixed Glide-related bug that let Quake get a 24-bit Z buffer
Changes:
- finished internal support for compressed textures for DRI
3.4.1 February 14, 2001
New:
- fixed some Linux build problems
- fixed some Windows build problems
- GL_EXT_texture_env_dot3 extension (Gareth Hughes)
Bug fixes:
- added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
- various state-update code changes needed for DRI bugs
- disabled pixel transfer ops in glColorTable commands, not needed
- fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
- updated sources and fixed compile problems in widgets-mesa/
- GLX_PBUFFER enum value was wrong in glx.h
- fixed a glColorMaterial lighting bug
- fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
- glXCopySubBufferMESA() Y position was off by one
- Error checking of glTexSubImage3D() was broken (bug 128775)
- glPopAttrib() didn't restore all derived Mesa state correctly
- Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
conformance problems at 16bpp.
- 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 softwara alpha buffer with scissoring was broken
- fixed a few color index mode fog bugs
- fixed some bad assertions in color index mode
- fixed FX line 'stipple' bug #420091
- fixed stencil buffer clear width/height typo
- fixed GL error glitches in gl[Client]ActiveTextureARB()
- fixed Windows compilation problem in texutil.c
- fixed 1/8-pixel AA triangle sampling error
Changes:
- optimized writing mono-colored pixel spans to X pixmaps
- increased max viewport size to 2048 x 2048
3.5 June 21, 2001
New:
- internals of Mesa divided into modular pieces (Keith Whitwell)
- 100% OpenGL 1.2 conformance (passes all conformance tests)
- new AA line algorithm
- GL_EXT_convolution extension
- GL_ARB_imaging subset
- OSMesaCreateContextExt() function
- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
- GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
- GL_EXT_fog_coord extension (Keith Whitwell)
- GL_EXT_secondary_color extension (Keith Whitwell)
- GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
- GL_SGIX_depth_texture extension
- GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
- demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
- GL_ARB_texture_env_combine extension
- GL_ARB_texture_env_dot3 extension
- GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
- OSMesaCreateContextExt() function
- libOSMesa.so library, contains the OSMesa driver interface
- GL/glxext.h header file for GLX extensions
- somewhat faster software texturing, fogging, depth testing
- all color-index conformance tests now pass (only 8bpp tested)
- SPARC assembly language TCL optimizations (David Miller)
- GL_SGIS_generate_mipmap extension
Bug Fixes:
- fbiRev and tmuRev were unitialized when using Glide3
- fixed a few color index mode conformance failures; all pass now
- now appling antialiasing coverage to alpha after texturing
- colors weren't getting clamped to [0,1] before color table lookup
- fixed RISC alignment errors caused by COPY_4UBV macro
- drawing wide, flat-shaded lines could cause a segfault
- vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
Changes:
- SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
- new libOSMesa.so library, contains the OSMesa driver interface
4.0 October 22, 2001
New:
- Mesa 4.0 implements the OpenGL 1.3 specification
- GL_IBM_rasterpos_clip extension
- GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
- GL_ARB_texture_mirrored_repeat extension
- WindML UGL driver (Stephane Raimbault)
- added OSMESA_MAX_WIDTH/HEIGHT queries
- attempted compiliation fixes for Solaris 5, 7 and 8
- updated glext.h and glxext.h files
- updated Windows driver (Karl Schultz)
Bug fixes:
- added some missing GLX 1.3 tokens to include/GL/glx.h
- GL_COLOR_MATRIX changes weren't recognized by teximage functions
- glCopyPixels with scale and bias was broken
- glRasterPos with lighting could segfault
- glDeleteTextures could leave a dangling pointer
- Proxy textures for cube maps didn't work
- fixed a number of 16-bit color channel bugs
- fixed a few minor memory leaks
- GLX context sharing was broken in 3.5
- fixed state-update bugs in glPopClientAttrib()
- fixed glDrawRangeElements() bug
- fixed a glPush/PopAttrib() bug related to texture binding
- flat-shaded, textured lines were broken
- fixed a dangling pointer problem in the XMesa code (Chris Burghart)
- lighting didn't always produce the correct alpha value
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
4.0.1 December 17, 2001
New:
- better sub-pixel sample positions for AA triangles (Ray Tice)
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
Bug fixes:
- added missing break statements in glGet*() for multisample cases
- fixed uninitialized hash table mutex bug (display lists / texobjs)
- fixed bad teximage error check conditional (bug 476846)
- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
- silence some compiler warnings (gcc 2.96)
- enable the #define GL_VERSION_1_3 in GL/gl.h
- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
- fixed glu.h typedef problem found with MSDev 6.0
- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
- added missing 'const' to glXGetContextIDEXT() in glxext.h
- fixed a few glXGetProcAddress() errors (texture compression, etc)
- fixed start index bug in compiled vertex arrays (Keith)
- fixed compilation problems in src/SPARC/glapi_sparc.S
- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
- use glXGetProcAddressARB in GLUT to avoid extension linking problems
- provoking vertex of flat-shaded, color-index triangles was wrong
- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
- glTexParameter didn't flush the vertex buffer (Ray Tice)
- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
- fixed bug in normal length caching (ParaView lighting bug)
- fixed separate_specular color bug found in Chimera (18 Dec 2001)
4.0.2 April 2, 2002
New:
- New DOS (DJGPP) driver written by Daniel Borca
- New driver interface functions for TCL drivers (such as Radeon DRI)
- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
if using deep color channels
- latest GL/glext.h and GL/glxext.h headers from SGI
Bug fixes:
- GL_BLEND with non-black texture env color wasn't always correct
- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
- glReadPixels was sometimes mistakenly clipped by the scissor box
- glDraw/ReadPixels didn't catch all the errors that they should have
- Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
- glColorMask as sometimes effecting glXSwapBuffers()
- fixed a potential bug in XMesaGarbageCollect()
- N threads rendering into one window didn't work reliably
- glCopyPixels didn't work for deep color channels
- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
- glPopAttrib() didn't correctly restore user clip planes
- user clip planes failed for some perspective projections (Chromium)
Known bugs:
- mipmap LOD computation
4.0.3 June 25, 2002
New:
- updated GL/glext.h file (version 15)
- corrected MMX blend code (Jose Fonseca)
- support for software-based alpha planes in Windows driver
- updated GGI driver (Filip Spacek)
Bug fixes:
- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
- OSMesaMakeCurrent() didn't recognize buffer size changes
- assorted conformance fixes for 16-bit/channel rendering
- texcombine alpha subtraction mode was broken
- fixed lighting bug with non-uniform scaling and display lists
- fixed bug when deleting shared display lists
- disabled SPARC cliptest assembly code (Mesa bug 544665)
- fixed a couple Solaris compilation/link problems
- blending clipped glDrawPixels didn't always work
- glGetTexImage() didn't accept packed pixel types
- glPixelMapu[is]v() could explode given too large of pixelmap
- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
- glXCopyContext() could lead to segfaults
- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
Changes:
- lots of C++ (g++) code clean-ups
- lots of T&L updates for the Radeon DRI driver
Known bugs:
- mipmap LOD computation (fixed for Mesa 4.1)
4.0.4 October 3, 2002
New:
- GL_NV_texture_rectangle extension
- updated glext.h header (version 17)
- updated DOS driver (Daniel Borca)
- updated BeOS R5 driver (Philippe Houdoin)
- added GL_IBM_texture_mirror_repeat
- glxinfo now takes -l option to print interesting OpenGL limits info
- GL_MESA_ycbcr_texture extension
- GL_APPLE_client_storage extension (for some DRI drivers only)
- GL_MESA_pack_invert extension
Bug fixes:
- fixed GL_LINEAR fog bug by adding clamping
- fixed FP exceptions found using Alpha CPU
- 3dfx MESA_GLX_FX=window (render to window) didn't work
- fixed memory leak in wglCreateContest (Karl Schultz)
- define GLAPIENTRY and GLAPI if undefined in glu.h
- wglGetProcAddress didn't handle all API functions
- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
- error checking in compressed tex image functions had some glitches
- fixed AIX compile problem in src/config.c
- glGetTexImage was using pixel unpacking instead of packing params
- auto-mipmap generation for cube maps was incorrect
Changes:
- max texture units reduced to six to accomodate texture rectangles
- removed unfinished GL_MESA_sprite_point extension code
4.1 October 29, 2002
New:
- GL_NV_vertex_program extension
- GL_NV_vertex_program1_1 extension
- GL_ARB_window_pos extension
- GL_ARB_depth_texture extension
- GL_ARB_shadow extension
- GL_ARB_shadow_ambient extension
- GL_EXT_shadow_funcs extension
- GL_ARB_point_parameters extension
- GL_ARB_texture_env_crossbar
- GL_NV_point_sprite extension
- GL_NV_texture_rectangle extension
- GL_EXT_multi_draw_arrays extension
- GL_EXT_stencil_two_side extension
- GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
- GL_ATI_texture_mirror_once extension (Ian Romanick)
- massive overhaul/simplification of software rasterizer module,
many contributions from Klaus Niederkrueger
- faster software texturing in some cases (i.e. trilinear filtering)
- new OSMesaGetProcAddress() function
- more blend modes implemented with MMX code (Jose Fonseca)
- added glutGetProcAddress() to GLUT
- added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
- pbinfo and pbdemo PBuffer programs
- glxinfo -v prints transprent pixel info (Gerd Sussner)
Bug fixes:
- better mipmap LOD computation (prevents excessive blurriness)
- OSMesaMakeCurrent() didn't recognize buffer size changes
- assorted conformance fixes for 16-bit/channel rendering
- texcombine alpha subtraction mode was broken
- fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
- clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
- fixed divide by zero error in NURBS tessellator (Jon Perry)
- fixed GL_LINEAR fog bug by adding clamping
- fixed FP exceptions found using Alpha CPU
- 3dfx/glide driver render-to-window feature was broken
- added missing GLX_TRANSPARENT_RGB token to glx.h
- fixed error checking related to paletted textures
- fixed reference count error in glDeleteTextures (Randy Fayan)
Changes:
- New spec file and Python code to generate some GL dispatch files
- Glide driver defaults to "no" with autoconf/automake
- updated demos/stex3d with new options
5.0 November 13, 2002
New:
- OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
- removed some overlooked debugging code
- glxinfo updated to support GLX_ARB_multisample
- GLUT now support GLX_ARB_multisample
- updated DOS driver (Daniel Borca)
Bug fixes:
- GL_POINT and GL_LINE-mode polygons didn't obey cull state
- fixed potential bug in _mesa_align_malloc/calloc()
- fixed missing triangle bug when running vertex programs
- fixed a few HPUX compilation problems
- FX (Glide) driver didn't compile
- setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
- a few EXT functions, like glGenTexturesEXT, were no-ops
- a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
glMultiDrawArrays and glMultiDrawElements were missing
- glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
- Pentium 4 Mobile was mistakenly identified as having 3DNow!
- fixed one-bit error in point/line fragment Z calculation
- fixed potential segfault in fakeglx code
- fixed color overflow problem in DOT3 texture env mode
5.0.1 March 30, 2003
New:
- DOS driver updates from Daniel Borca
- updated GL/gl_mangle.h file (Bill Hoffman)
Bug fixes:
- auto mipmap generation for cube maps was broken (bug 641363)
- writing/clearing software alpha channels was unreliable
- minor compilation fixes for OS/2 (Evgeny Kotsuba)
- fixed some bad assertions found with shadowtex demo
- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
- fixed potential segfault in texture object validation (bug 659012)
- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
- fixed compilation problem on Solaris7/x86 (bug 536406)
- fixed prefetch bug in 3DNow! code (Felix Kuhling)
- fixed NeXT build problem (FABSF macro)
- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
- AA line and triangle Z values are now rounded, not truncated
- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
- fixed a minor GL_COLOR_MATERIAL bug
- NV vertex program EXP instruction was broken
- glColorMask misbehaved with X window / pixmap rendering
- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
- attempt to fix GGI compilation problem when MesaDemos not present
- NV vertex program ARL-relative fetches didn't work
Changes:
- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
- updated winpos and pointblast demos to use ARB extensions
- disable SPARC normal transformation code (bug 673938)
- GLU fixes for OS/2 (Evgeny Kotsuba)
5.0.2 September 5, 2003
Bug fixes:
- fixed texgen problem causing texcoord's Q to be zero (stex3d)
- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
- GL_CURRENT_MATRIX_NV query was wrong
- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
- GL_LIST_MODE query wasn't correct
- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
- blended, wide lines didn't always work correctly (bug 711595)
- glVertexAttrib4svNV w component was always 1
- fixed bug in GL_IBM_rasterpos_clip (missing return)
- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
- a few Solaris compilation fixes
- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
- glFog() didn't clamp fog colors
- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
gl[Get]TexParameteri[v] functions
- fixed invalid memory references in glTexGen functions (bug 781602)
- integer-valued color arrays weren't handled correctly
- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
Changes:
- build GLUT with -fexceptions so C++ apps propogate exceptions
5.1 December 17, 2003
New:
- reorganized directory tree
- GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
- GL_ATI_texture_env_combine3 extension (Ian Romanick)
- GL_SGI_texture_color_table extension (Eric Plante)
- GL_NV_fragment_program extension
- GL_NV_light_max_exponent extension
- GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
- GL_ARB_occlusion_query extension
- GL_ARB_point_sprite extension
- GL_ARB_texture_non_power_of_two extension
- GL_IBM_multimode_draw_arrays extension
- GL_EXT_texture_mirror_clamp extension (Ian Romanick)
- GL_ARB_vertex_buffer_object extension
- new X86 feature detection code (Petr Sebor)
- less memory used for display lists and vertex buffers
- demo of per-pixel lighting with a fragment program (demos/fplight.c)
- new version (18) of glext.h header
- new spriteblast.c demo of GL_ARB_point_sprite
- faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1)
- faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1)
Bug fixes:
- really enable OpenGL 1.4 features in DOS driver.
- fixed issues in glDrawPixels and glCopyPixels for very wide images
- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
- fixed some texgen bugs reported by Daniel Borca
- fixed wglMakeCurrent(NULL, NULL) bug (#835861)
- fixed glTexSubImage3D z-offset bug (Cedric Gautier)
- fixed RGBA blend enable bug (Ville Syrjala)
- glAccum is supposed to be a no-op in selection/feedback mode
- fixed texgen bug #597589 (John Popplewell)
Changes:
- dropped API trace feature (src/Trace/)
- documentation overhaul. merged with website content. more html.
- glxgears.c demo updated to use GLX swap rate extensions
- glTexImage1/2/3D now allows width/height/depth = 0
- disable SPARC asm code on Linux (bug 852204)
6.0 January 16, 2004
New:
- full OpenGL 1.5 support
- updated GL/glext.h file to version 21
Changes:
- changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
Bug fixes:
- fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
clamping issue
- updated suno5-gcc configs
- glColor3 functions sometimes resulted in undefined alpha values
- fixed FP divide by zero error seen on VMS with xlockmore, others
- fixed vertex/fragment program debug problem (bug 873011)
- building on AIX with gcc works now
- glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
- glDrawRangeElements tried to modify potentially read-only storage
- updated files for building on Windows
6.0.1 April 2, 2004
New:
- upgraded glext.h to version 22
- new build targets (Dan Schikore)
- new linux-x86-opteron build target (Heath Feather)
Bug fixes:
- glBindProgramARB didn't update all necessary state
- fixed build problems on OpenBSD
- omit CVS directories from tarballs
- glGetTexImage(GL_COLOR_INDEX) was broken
- fixed an infinite loop in t&l module
- silenced some valgrind warnings about using unitialized memory
- fixed some compilation/link glitches on IRIX (Mike Stephens)
- glBindProgram wasn't getting compiled into display lists
- GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
- two-sided lighting and vertex program didn't work (bug 887330)
- stores to program parameter registers in vertex state programs
didn't work.
- fixed glOrtho bug found with gcc 3.2.2 (RH9)
- glXCreateWindow() wasn't fully implemented (bug 890894)
- generic vertex attribute arrays didn't work in display lists
- vertex buffer objects' default usage and access fields were wrong
- glDrawArrays with start!=0 was broken
- fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
- linux-osmesa16-static config didn't work
- fixed a few color index rendering problems (bug 910687)
- glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
- OSMesa RGB and BGR modes were broken
- glProgramStringARB mistakenly required a null-terminated string
- fragment program XPD instruction was incorrect
- glGetMaterial() didn't work reliably
- ARB_fragment_program KIL instruction was incorrect
6.1 August 18, 2004
New:
- Revamped Makefile system
- glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
- internal driver interface changes related to texture object
allocation, vertex/fragment programs, BlendEquationSeparate, etc.
- option to walk triangle edges with double-precision floats
(Justin Novosad of Discreet) (see config.h file)
- support for AUX buffers in software GLX driver
- updated glext.h to version 24 and glxext.h to version 6
- new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
- updated BeOS support (Philippe Houdoin)
Changes:
- fragment fog interpolation is perspective corrected now
- new glTexImage code, much cleaner, may be a bit faster
Bug fixes:
- glArrayElement in display lists didn't handle generic vertex attribs
- glFogCoord didn't always work properly
- ARB_fragment_program fog options didn't work
- frag prog TEX instruction no longer incorrectly divides s,t,r by q
- ARB frag prog TEX and TEXP instructions now use LOD=0
- glTexEnviv in display lists didn't work
- glRasterPos didn't do texgen or apply texture matrix
- GL_DOUBLE-valued vertex arrays were broken in some cases
- fixed texture rectangle edge/border sampling bugs
- sampling an incomplete texture in a fragment program would segfault
- glTexImage was missing a few error checks
- fixed some minor glGetTexParameter glitches
- GL_INTENSITY was mistakenly accepted as a <format> to glTexImage
- fragment program writes to RC/HC register were broken
- fixed a few glitches in GL_HP_occlusion_test extension
- glBeginQueryARB and glEndQueryARB didn't work inside display lists
- vertex program state references were broken
- fixed triangle color interpolation bug on AIX (Shane Blackett)
- fixed a number of minor memory leaks (bug #1002030)
6.2 October 2, 2004
New:
- enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
- updated Doxygen support (Jose Fonseca)
Changes:
- some GGI driver updates (Christoph Egger, bug 1025977)
Bug fixes:
- Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
- fixed a few compilation issues on IRIX
- fixed a matrix classification bug (reported by Wes Bethel)
- we weren't reseting the vertex/fragment program error state
before parsing (Dave Reveman)
- adjust texcoords for sampling texture rectangles (Dave Reveman)
- glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
- repeated calls to glDeleteTexture(t) could lead to a crash
- fixed potential ref count bugs in VBOs and vertex/fragment programs
- spriteblast demo didn't handle window size changes correctly
- glTexSubImage didn't handle pixels=NULL correctly for PBOs
- fixed color index mode glDrawPixels bug (Karl Schultz)
6.2.1 December 9, 2004
Bug fixes:
- don't apply regular fog or color sum when using a fragment program
- glProgramEnvParameter4fARB always generated an error on
GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
- glVertexAttrib3svNV and glVertexAttrib3svARB were broken
- fixed width/height mix-up in glSeparableFilter2D()
- fixed regression in glCopyPixels + convolution
- glReadPixels from a clipped front color buffer didn't always work
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
- Attempting queries/accesses of VBO 0 weren't detected as errors
- paletted textures failed if the palette had fewer than 256 entries
Changes:
- fixed a bunch of compiler warnings found with gcc 3.4
- bug reports should to go bugzilla.freedesktop.org
6.3 July 20, 2005
New:
- GL_EXT_framebuffer_object extension
- GL_ARB_draw_buffers extension
- GL_ARB_pixel_buffer_object extension
- GL_OES_read_format extension (Ian Romanick)
- DirectFB driver (Claudio Ciccani)
- x86_64 vertex transformation code (Mikko T.)
- Updated GL/glext.h to version 29
Changes:
- added -stereo option for glxgears demo (Jacek Rosik)
- updated the PBuffer demo code in xdemos/ directory
- glDeleteTextures/Programs/Buffers() now makes the object ID
available for immediate re-use
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
- lots of internal changes for GL_EXT_framebuffer_object
Bug fixes:
- some functions didn't support PBO functionality
- glGetTexImage didn't convert color index images to RGBA as required
- fragment program texcoords were sometimes wrong for points and lines
- fixed problem with negative dot product in arbfplight, fplight demos
- fixed bug in perspective correction of antialiased, textured lines
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
- glXChooseFBConfig() crashed if attribList pointer was NULL
- program state.light[n].spot.direction.w was wrong value (bug 3083)
- fragment program fog option required glEnable(GL_FOG) - wrong.
- glColorTable() could produce a Mesa implementation error (bug 3135)
- RasterPos could get corrupted by color index rendering path
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
- fixed a few Darwin compilation problems
6.3.1
This was an intermediate release for X.org which wasn't otherwise released.
6.3.2 August 19, 2005
New:
- The distribution now includes the DRI drivers and GLX code
Changes:
- Made the DRI "new" driver interface standard, remove old code
Bug fixes:
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
extensions string
- negative relative addressing in vertex programs was broken
- update/fix SPARC assembly code for vertex transformation
- fixed memory leak when freeing GLX drawables/renderbuffers
- fixed display list memory leak
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
- wglGetProcAddress() didn't handle wgl-functions
- fixed glxext.h cross-compile issue (Colin Harrison)
- assorted DRI driver fixes
6.4 October 24, 2005
New:
- Added a fast XOR line drawing function in Xlib driver
- Added support for GL_ARB_texture_mirrored_repeat to savage
driver (supported only on Savage4 hardware).
Changes:
- Mesa now packaged in three parts: Library, Demos and GLUT
Bug fixes:
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
- Some files were present multiple times in the 6.3.2 tarballs
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
- glxgears_fbconfig demo didn't work (bug 4237)
- fixed bug when bilinear sampling 2d textures with borders
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
- fixed a few problems with proxy color tables (bug 4270)
- fixed precision problem in Z clearing (bug 4395)
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
- fixed potential segfault caused by reading pixels outside
of renderbuffer bounds
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
- fixed memory corruption bug involving software alpha buffers
- glReadPixels clipped by window bounds was sometimes broken
- glDraw/CopyPixels of stencil data ignored the stencil write mask
- glReadPixels from a texture bound to a framebuffer object didn't work
- glIsRender/FramebufferEXT weren't totally correct
- fixed a number of point size attenuation/fade bugs
- fixed glFogCoord bug 4729
- GLX encoding for transpose matrix functions was broken
- fixed broken fragment program KIL and SWZ instructions
- fragment programs that wrote result.depth.z didn't work
6.4.1 November 30, 2005
Bug fixes:
- redefining a vertex program string didn't take effect in TNL module
- fixed occasional segfault upon vertex/fragment parsing error
- vertex program LIT instruction didn't handle 0^0=1 correctly
- fragment program fog option didn't work with glDrawPixels, glBitmap
- USE_MGL_NAMESPACE didn't work for x86-64
- OSMesa demos were missing from previous release tarballs
- fixed problem with float->ushort conversion in glClear (bug 4992)
- popping of GL_EYE_PLANE texgen state was broken (bug 4996)
- popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
- fixed occasional triangle color interpolation problem on VMS
- work around invalid free() call (bug 5131)
- fixed BSD X server compilation problem by including stdint.h
6.4.2 February 2, 2006
New:
- added OSMesaColorClamp() function/feature
- added wglGetExtensionStringARB() function
Bug fixes:
- fixed some problems when building on Windows
- GLw header files weren't installed by installmesa script (bug 5396)
- GL/glfbdev.h file was missing from tarballs
|