1*61046927SAndroid Build Coastguard Worker 2*61046927SAndroid Build Coastguard Worker Mesa 5.1 release notes 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker December 17, 2003 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard Worker PLEASE READ!!!! 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Worker 9*61046927SAndroid Build Coastguard Worker 10*61046927SAndroid Build Coastguard WorkerIntroduction 11*61046927SAndroid Build Coastguard Worker------------ 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard WorkerMesa uses an even/odd version number scheme like the Linux kernel. 14*61046927SAndroid Build Coastguard WorkerEven-numbered versions (such as 5.0) designate stable releases. 15*61046927SAndroid Build Coastguard WorkerOdd-numbered versions (such as 5.1) designate new developmental releases. 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Worker 18*61046927SAndroid Build Coastguard WorkerBug fixes 19*61046927SAndroid Build Coastguard Worker--------- 20*61046927SAndroid Build Coastguard WorkerSee the VERSIONS file for a list of bugs fixed in this release. 21*61046927SAndroid Build Coastguard Worker 22*61046927SAndroid Build Coastguard Worker 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard WorkerNew Features in Mesa 5.1 25*61046927SAndroid Build Coastguard Worker------------------------ 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard WorkerGL_ARB_vertex_program / GL_ARB_fragment_program 28*61046927SAndroid Build Coastguard Worker Michal Krol and Karl Rasche implemented these extensions. Thanks! 29*61046927SAndroid Build Coastguard Worker Be aware that there may be some rough edges and lurking bugs. 30*61046927SAndroid Build Coastguard Worker 31*61046927SAndroid Build Coastguard WorkerGL_ATI_texture_env_combine3 extension 32*61046927SAndroid Build Coastguard Worker This adds a few new texture combine modes. 33*61046927SAndroid Build Coastguard Worker Contributed by Ian Romanick. 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard WorkerGL_SGI_texture_color_table 36*61046927SAndroid Build Coastguard Worker Adds a color table lookup to the RGBA texture path. There's a separate 37*61046927SAndroid Build Coastguard Worker color table for each texture unit. 38*61046927SAndroid Build Coastguard Worker Contributed by Eric Plante. 39*61046927SAndroid Build Coastguard Worker 40*61046927SAndroid Build Coastguard WorkerGL_NV_fragment_program 41*61046927SAndroid Build Coastguard Worker NVIDIA's fragment-level programming feature. 42*61046927SAndroid Build Coastguard Worker Possible lurking bugs: 43*61046927SAndroid Build Coastguard Worker - the DDX and DDY commands aren't fully tested 44*61046927SAndroid Build Coastguard Worker - there may be bugs in the parser 45*61046927SAndroid Build Coastguard Worker - the TEX and TXP instructions both do perspective correction 46*61046927SAndroid Build Coastguard Worker - the pack/unpack instructions may not be correct 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard WorkerGL_EXT_depth_bounds_test 49*61046927SAndroid Build Coastguard Worker This extension adds a scissor-like test for the Z axis. It's used to 50*61046927SAndroid Build Coastguard Worker optimize stencil-volume shadow algorithms. 51*61046927SAndroid Build Coastguard Worker 52*61046927SAndroid Build Coastguard WorkerGL_NV_light_max_exponent 53*61046927SAndroid Build Coastguard Worker Lifts the 128 limit for max light exponent. 54*61046927SAndroid Build Coastguard Worker 55*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_rectangle 56*61046927SAndroid Build Coastguard Worker Identical to GL_NV_texture_rectangle 57*61046927SAndroid Build Coastguard Worker 58*61046927SAndroid Build Coastguard WorkerGL_ARB_occlusion_query 59*61046927SAndroid Build Coastguard Worker Useful for visibility-based culling. 60*61046927SAndroid Build Coastguard Worker 61*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_non_power_of_two 62*61046927SAndroid Build Coastguard Worker Removes the restriction that texture dimensions must be powers of two. 63*61046927SAndroid Build Coastguard Worker 64*61046927SAndroid Build Coastguard WorkerGL_ARB_vertex_buffer_object 65*61046927SAndroid Build Coastguard Worker Allows server-side vertex arrays, optimized host/card data transfers, etc. 66*61046927SAndroid Build Coastguard Worker 67*61046927SAndroid Build Coastguard WorkerGL_ARB_point_sprite 68*61046927SAndroid Build Coastguard Worker ARB-approved version of GL_NV_point_sprite. Basically allows textures 69*61046927SAndroid Build Coastguard Worker to be applied to points. 70*61046927SAndroid Build Coastguard Worker 71*61046927SAndroid Build Coastguard WorkerGL_IBM_multimode_draw_arrays 72*61046927SAndroid Build Coastguard Worker Allows multiple vertex arrays to be drawn with one call, including arrays 73*61046927SAndroid Build Coastguard Worker of different types of primitives. 74*61046927SAndroid Build Coastguard Worker 75*61046927SAndroid Build Coastguard WorkerGL_SUN_multi_draw_arrays 76*61046927SAndroid Build Coastguard Worker An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. 77*61046927SAndroid Build Coastguard Worker 78*61046927SAndroid Build Coastguard WorkerFaster glDrawPixels / glCopyPixels in X11 driver 79*61046927SAndroid Build Coastguard Worker If your X screen is 32bpp, glDrawPixels to the front color buffer will 80*61046927SAndroid Build Coastguard Worker be accelerated (via XPutImage()) if the image format is GL_BGRA and the 81*61046927SAndroid Build Coastguard Worker type is GL_UNSIGNED_BYTE. No raster operations, such as depth test, 82*61046927SAndroid Build Coastguard Worker blend, fog, etc. can be enabled. 83*61046927SAndroid Build Coastguard Worker 84*61046927SAndroid Build Coastguard Worker If your X screen is 16bpp, glDrawPixels to the front color buffer will 85*61046927SAndroid Build Coastguard Worker be accelerated (via XPutImage()) if the image format is GL_RGB and the 86*61046927SAndroid Build Coastguard Worker type is GL_UNSIGNED_SHORT_5_6_5. No raster operations, such as depth 87*61046927SAndroid Build Coastguard Worker test, blend, fog, etc. can be enabled. 88*61046927SAndroid Build Coastguard Worker 89*61046927SAndroid Build Coastguard Worker glCopyPixels() calls for the front color buffer will be accelerated 90*61046927SAndroid Build Coastguard Worker (via XCopyArea()) if no raster operations, such as depth test, blend, 91*61046927SAndroid Build Coastguard Worker fog, pixel zoom, etc. are enabled. 92*61046927SAndroid Build Coastguard Worker 93*61046927SAndroid Build Coastguard Worker The speed-up over typical software rendering is a factor of 10 for 94*61046927SAndroid Build Coastguard Worker glDrawPixels and 100 for glCopyPixels. 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard Worker 97*61046927SAndroid Build Coastguard WorkerWith the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, 98*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports 99*61046927SAndroid Build Coastguard Workerall the new features of OpenGL 1.5. Mesa 6.0 (the next stable release) 100*61046927SAndroid Build Coastguard Workerwill advertise GL_VERSION = "1.5". 101*61046927SAndroid Build Coastguard Worker 102*61046927SAndroid Build Coastguard Worker 103*61046927SAndroid Build Coastguard Worker 104*61046927SAndroid Build Coastguard WorkerVertex/Fragment program debugger 105*61046927SAndroid Build Coastguard Worker-------------------------------- 106*61046927SAndroid Build Coastguard Worker 107*61046927SAndroid Build Coastguard WorkerGL_MESA_program_debug is an experimental extension to support 108*61046927SAndroid Build Coastguard Workerinteractive debugging of vertex and fragment programs. See the 109*61046927SAndroid Build Coastguard Workerdocs/specs/OLD/MESA_program_debug.spec file for details. 110*61046927SAndroid Build Coastguard Worker 111*61046927SAndroid Build Coastguard WorkerThe bulk of the vertex/fragment program debugger is implemented 112*61046927SAndroid Build Coastguard Workeroutside of Mesa. The GL_MESA_program_debug extension just has minimal 113*61046927SAndroid Build Coastguard Workerhooks for stopping running programs and inspecting programs. 114*61046927SAndroid Build Coastguard Worker 115*61046927SAndroid Build Coastguard WorkerThe progs/tests/debugger.c (only in CVS) program is an example of how 116*61046927SAndroid Build Coastguard Workerthe extension can be used. Presently, the debugger code and demo code 117*61046927SAndroid Build Coastguard Workeris in the same file. Eventually the debugger code should be moved 118*61046927SAndroid Build Coastguard Workerinto a reusable module. 119*61046927SAndroid Build Coastguard Worker 120*61046927SAndroid Build Coastguard WorkerAs it is now, the demo lets you set breakpoings in vertex/fragment 121*61046927SAndroid Build Coastguard Workerprograms, single step, and print intermediate register values. It's 122*61046927SAndroid Build Coastguard Workerbasically just a proof of concept. 123*61046927SAndroid Build Coastguard Worker 124*61046927SAndroid Build Coastguard Worker 125*61046927SAndroid Build Coastguard Worker 126*61046927SAndroid Build Coastguard WorkerDirectory tree reorganization 127*61046927SAndroid Build Coastguard Worker----------------------------- 128*61046927SAndroid Build Coastguard Worker 129*61046927SAndroid Build Coastguard WorkerThe directory structure for Mesa has been overhauled to improve its layout. 130*61046927SAndroid Build Coastguard WorkerAll source code for Mesa, GLU, GLUT, etc is now under the src/ directory 131*61046927SAndroid Build Coastguard Workerin appropriate subdirectories. 132*61046927SAndroid Build Coastguard Worker 133*61046927SAndroid Build Coastguard WorkerThe Mesa source code and drivers has been reorganized under src/mesa/. 134*61046927SAndroid Build Coastguard Worker 135*61046927SAndroid Build Coastguard WorkerAll demonstration programs and tests are now in subdirectories under progs/. 136*61046927SAndroid Build Coastguard Worker 137*61046927SAndroid Build Coastguard Worker 138*61046927SAndroid Build Coastguard Worker 139*61046927SAndroid Build Coastguard WorkerBuild System Changes 140*61046927SAndroid Build Coastguard Worker-------------------- 141*61046927SAndroid Build Coastguard Worker 142*61046927SAndroid Build Coastguard WorkerThe GNU automake/autoconf support has been removed. As it was, it seldom 143*61046927SAndroid Build Coastguard Workerworked on anything but Linux. The Mesa developers aren't big fans of 144*61046927SAndroid Build Coastguard Workerautomake/autoconf/libtool and didn't have the time to maintain it. 145*61046927SAndroid Build Coastguard WorkerIf someone wants to contribute new automake/autoconf support (and is 146*61046927SAndroid Build Coastguard Workerwilling to maintain it), it may be re-incorporated into Mesa, subject 147*61046927SAndroid Build Coastguard Workerto some requirements. 148*61046927SAndroid Build Coastguard Worker 149*61046927SAndroid Build Coastguard WorkerThe "old style" makefile system has been updated: 150*61046927SAndroid Build Coastguard Worker 1. Make-config has been trimmed down to fewer, modern configurations. 151*61046927SAndroid Build Coastguard Worker 2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" 152*61046927SAndroid Build Coastguard Worker script that works on all sorts of systems. There are probably some 153*61046927SAndroid Build Coastguard Worker bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. 154*61046927SAndroid Build Coastguard Worker Improvements/contributes are greatly appreciated. 155*61046927SAndroid Build Coastguard Worker 3. The Makefile.X11 files have been cleaned up in various ways 156*61046927SAndroid Build Coastguard Worker 157*61046927SAndroid Build Coastguard Worker 158*61046927SAndroid Build Coastguard Worker 159*61046927SAndroid Build Coastguard WorkerSource File Changes 160*61046927SAndroid Build Coastguard Worker------------------- 161*61046927SAndroid Build Coastguard Worker 162*61046927SAndroid Build Coastguard WorkerThe mmath.[ch] files are obsolete. Their contents have been moved 163*61046927SAndroid Build Coastguard Workerinto the imports.[ch] and macros.[ch] files. 164*61046927SAndroid Build Coastguard Worker 165*61046927SAndroid Build Coastguard WorkerThe files related to vertex and fragment programming have changed. 166*61046927SAndroid Build Coastguard WorkerOld files: 167*61046927SAndroid Build Coastguard Worker vpexec.[ch] 168*61046927SAndroid Build Coastguard Worker vpparse.[ch] 169*61046927SAndroid Build Coastguard Worker vpstate.[ch] 170*61046927SAndroid Build Coastguard WorkerNew files: 171*61046927SAndroid Build Coastguard Worker program.[ch] - generic ARB/NV program code 172*61046927SAndroid Build Coastguard Worker arbprogram.[ch] - ARB program API functions 173*61046927SAndroid Build Coastguard Worker arbfragparse.[ch] - ARB fragment program parsing 174*61046927SAndroid Build Coastguard Worker arbvertparse.[ch] - ARB vertex program parsing 175*61046927SAndroid Build Coastguard Worker arbparse.[ch] - ARB vertex/fragment parsing 176*61046927SAndroid Build Coastguard Worker arbparse_syn.h - vertex/fragment program syntax 177*61046927SAndroid Build Coastguard Worker nvprogram.[ch] - NV program API functions 178*61046927SAndroid Build Coastguard Worker nvvertprog.h - NV vertex program definitions 179*61046927SAndroid Build Coastguard Worker nvfragprog.h - NV fragment program definitions 180*61046927SAndroid Build Coastguard Worker nvvertparse.[ch] - NV vertex program parser 181*61046927SAndroid Build Coastguard Worker nvfragparse.[ch] - NV fragment program parser 182*61046927SAndroid Build Coastguard Worker nvvertexec.[ch] - NV vertex program execution 183*61046927SAndroid Build Coastguard Worker swrast/s_nvfragprog.[ch] - NV fragment program execution 184*61046927SAndroid Build Coastguard Worker 185*61046927SAndroid Build Coastguard WorkerThe files related to per-vertex handling have changed. 186*61046927SAndroid Build Coastguard WorkerOld files: 187*61046927SAndroid Build Coastguard Worker tnl/t_eval_api.c - old per-vertex code 188*61046927SAndroid Build Coastguard Worker tnl/t_imm_alloc.c - old per-vertex code 189*61046927SAndroid Build Coastguard Worker tnl/t_imm_api.c - old per-vertex code 190*61046927SAndroid Build Coastguard Worker tnl/t_imm_debug.c - old per-vertex code 191*61046927SAndroid Build Coastguard Worker tnl/t_imm_dlist.c - old per-vertex code 192*61046927SAndroid Build Coastguard Worker tnl/t_imm_elt.c - old per-vertex code 193*61046927SAndroid Build Coastguard Worker tnl/t_imm_eval.c - old per-vertex code 194*61046927SAndroid Build Coastguard Worker tnl/t_imm_exec.c - old per-vertex code 195*61046927SAndroid Build Coastguard Worker tnl/t_imm_fixup.c - old per-vertex code 196*61046927SAndroid Build Coastguard Worker tnl/t_vtx_sse.c - old per-vertex code 197*61046927SAndroid Build Coastguard Worker tnl/t_vtx_x86.c - old per-vertex code 198*61046927SAndroid Build Coastguard WorkerNew files: 199*61046927SAndroid Build Coastguard Worker tnl/t_save_api.c - new per-vertex code 200*61046927SAndroid Build Coastguard Worker tnl/t_save_loopback.c - new per-vertex code 201*61046927SAndroid Build Coastguard Worker tnl/t_save_playback.c - new per-vertex code 202*61046927SAndroid Build Coastguard Worker tnl/t_vtx_eval.c - old per-vertex code 203*61046927SAndroid Build Coastguard Worker 204*61046927SAndroid Build Coastguard WorkerOther new files: 205*61046927SAndroid Build Coastguard Worker bufferobj.[ch] - GL_ARB_vertex_buffer_object functions 206*61046927SAndroid Build Coastguard Worker version.h - defines the Mesa version info 207*61046927SAndroid Build Coastguard Worker 208*61046927SAndroid Build Coastguard WorkerOther removed files: 209*61046927SAndroid Build Coastguard Worker swrast/s_histogram.[ch] - moved into src/histogram.c 210*61046927SAndroid Build Coastguard Worker 211*61046927SAndroid Build Coastguard Worker 212*61046927SAndroid Build Coastguard Worker 213*61046927SAndroid Build Coastguard WorkerOther Changes 214*61046927SAndroid Build Coastguard Worker------------- 215*61046927SAndroid Build Coastguard Worker 216*61046927SAndroid Build Coastguard WorkerThe ctx->Driver.CreateTexture function has been removed - it wasn't used. 217*61046927SAndroid Build Coastguard Worker 218*61046927SAndroid Build Coastguard WorkerNew device driver hook functions: 219*61046927SAndroid Build Coastguard Worker NewTextureObject - used to allocate struct gl_texture_objects 220*61046927SAndroid Build Coastguard Worker NewTextureImage - used to allocate struct gl_texture_images 221*61046927SAndroid Build Coastguard Worker 222*61046927SAndroid Build Coastguard WorkerNew ctx->Texture._EnabledCoordUnits field: 223*61046927SAndroid Build Coastguard Worker With the addition of GL_NV_fragment_program we may need to interpolate 224*61046927SAndroid Build Coastguard Worker various sets of texture coordinates even when the corresponding texture 225*61046927SAndroid Build Coastguard Worker unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get 226*61046927SAndroid Build Coastguard Worker called but we still may have to interpolate texture coordinates across 227*61046927SAndroid Build Coastguard Worker triangles so that the fragment program will get them. 228*61046927SAndroid Build Coastguard Worker This new field indicates which sets of texture coordinates are needed. 229*61046927SAndroid Build Coastguard Worker If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the 230*61046927SAndroid Build Coastguard Worker same bit MUST be set in ctx->Texture._EnabledCoordUnits. 231*61046927SAndroid Build Coastguard Worker 232*61046927SAndroid Build Coastguard WorkerThe ctx->_TriangleCaps field is deprecated. 233*61046927SAndroid Build Coastguard Worker Instead of testing the DD_* bits in _TriangleCaps, you should instead 234*61046927SAndroid Build Coastguard Worker directly test the relevant state variables, or use one of the helper 235*61046927SAndroid Build Coastguard Worker functions like NEED_SECONDARY_COLOR() at the bottom of context.h 236*61046927SAndroid Build Coastguard Worker While testing _TriangleCaps bits was fast, it was kludgey, and setting 237*61046927SAndroid Build Coastguard Worker the bits in the first place could be error prone. 238*61046927SAndroid Build Coastguard Worker 239*61046927SAndroid Build Coastguard WorkerNew vertex processing code. 240*61046927SAndroid Build Coastguard Worker The code behind glBegin, glEnd, glVertex, glNormal, etc. has been 241*61046927SAndroid Build Coastguard Worker totally rewritten. It's a cleaner implementation now and should use 242*61046927SAndroid Build Coastguard Worker less memory. (Keith) 243*61046927SAndroid Build Coastguard Worker 244*61046927SAndroid Build Coastguard Worker 245*61046927SAndroid Build Coastguard Worker 246*61046927SAndroid Build Coastguard WorkerTo Do 247*61046927SAndroid Build Coastguard Worker----- 248*61046927SAndroid Build Coastguard WorkerAdd screen-awareness to fakeglx.c 249*61046927SAndroid Build Coastguard Worker 250*61046927SAndroid Build Coastguard Worker 251*61046927SAndroid Build Coastguard Worker 252*61046927SAndroid Build Coastguard Worker 253*61046927SAndroid Build Coastguard WorkerDevice Driver Status 254*61046927SAndroid Build Coastguard Worker-------------------- 255*61046927SAndroid Build Coastguard Worker 256*61046927SAndroid Build Coastguard WorkerA number of Mesa's software drivers haven't been actively maintained for 257*61046927SAndroid Build Coastguard Workersome time. We rely on volunteers to maintain many of these drivers. 258*61046927SAndroid Build Coastguard WorkerHere's the current status of all included drivers: 259*61046927SAndroid Build Coastguard Worker 260*61046927SAndroid Build Coastguard Worker 261*61046927SAndroid Build Coastguard WorkerDriver Status 262*61046927SAndroid Build Coastguard Worker---------------------- --------------------- 263*61046927SAndroid Build Coastguard WorkerXMesa (Xlib) implements OpenGL 1.4 264*61046927SAndroid Build Coastguard WorkerOSMesa (off-screen) implements OpenGL 1.4 265*61046927SAndroid Build Coastguard WorkerFX (3dfx Voodoo1/2) implements OpenGL 1.3 266*61046927SAndroid Build Coastguard WorkerSVGA implements OpenGL 1.3 267*61046927SAndroid Build Coastguard WorkerWind River UGL implements OpenGL 1.3 268*61046927SAndroid Build Coastguard WorkerWindows/Win32 implements OpenGL 1.4 269*61046927SAndroid Build Coastguard WorkerDJGPP implements OpenGL 1.4 270*61046927SAndroid Build Coastguard WorkerGGI implements OpenGL 1.3 271*61046927SAndroid Build Coastguard WorkerBeOS implements OpenGL 1.4 272*61046927SAndroid Build Coastguard WorkerAllegro needs updating 273*61046927SAndroid Build Coastguard WorkerD3D needs updating 274*61046927SAndroid Build Coastguard Worker 275*61046927SAndroid Build Coastguard WorkerNote: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the 276*61046927SAndroid Build Coastguard Workerdriver call the _mesa_enable_1_4_extensions() function. 277*61046927SAndroid Build Coastguard Worker 278*61046927SAndroid Build Coastguard Worker 279*61046927SAndroid Build Coastguard Worker---------------------------------------------------------------------- 280