1*61046927SAndroid Build Coastguard Worker 2*61046927SAndroid Build Coastguard Worker Mesa 3.3 release notes 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Worker July 21, 2000 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 WorkerOdd numbered versions (such as 3.3) designate new developmental releases. 15*61046927SAndroid Build Coastguard WorkerEven numbered versions (such as 3.2.1) designate stable releases. 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard WorkerMesa 3.3 has a undergone many internal changes since version 3.2 18*61046927SAndroid Build Coastguard Workerand features a lot of new extensions. 3.3 is expected to be pretty 19*61046927SAndroid Build Coastguard Workerstable, but perhaps not as stable as 3.2 which has been used by 20*61046927SAndroid Build Coastguard Workerthousands of users over the past months. 21*61046927SAndroid Build Coastguard Worker 22*61046927SAndroid Build Coastguard WorkerEveryone is encouraged to try Mesa 3.3. Bugs should be reported to 23*61046927SAndroid Build Coastguard Workerthe Mesa bug database on www.sourceforge.net. 24*61046927SAndroid Build Coastguard Worker 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard WorkerHeader file / GLenum changes 28*61046927SAndroid Build Coastguard Worker---------------------------- 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard WorkerThe gl.h and glu.h headers now use #defines to define all GL_* tokens 31*61046927SAndroid Build Coastguard Workerinstead of C-language enums. This change improves Mesa/OpenGL 32*61046927SAndroid Build Coastguard Workerinteroperability. 33*61046927SAndroid Build Coastguard Worker 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker 36*61046927SAndroid Build Coastguard WorkerNew API dispatch code 37*61046927SAndroid Build Coastguard Worker--------------------- 38*61046927SAndroid Build Coastguard Worker 39*61046927SAndroid Build Coastguard WorkerThe core Mesa gl* functions are now implemented with a new dispatch 40*61046927SAndroid Build Coastguard Worker(jump table) which will allow simultaneous direct/indirect rendering. 41*61046927SAndroid Build Coastguard Worker 42*61046927SAndroid Build Coastguard WorkerThe code is found in the glapi*.[ch] files. 43*61046927SAndroid Build Coastguard Worker 44*61046927SAndroid Build Coastguard WorkerOf interest: the actual "glFooBar" functions are generated with 45*61046927SAndroid Build Coastguard Workertemplatized code defined in glapitemp.h and included by glapi.c 46*61046927SAndroid Build Coastguard WorkerThe glapitemp.h template should be reusable for all sorts of OpenGL 47*61046927SAndroid Build Coastguard Workerprojects. 48*61046927SAndroid Build Coastguard Worker 49*61046927SAndroid Build Coastguard WorkerThe new dispatch code has also optimized with x86 assembly code. 50*61046927SAndroid Build Coastguard WorkerThis optimization eliminates copying the function arguments during 51*61046927SAndroid Build Coastguard Workerdispatch. 52*61046927SAndroid Build Coastguard Worker 53*61046927SAndroid Build Coastguard Worker 54*61046927SAndroid Build Coastguard Worker 55*61046927SAndroid Build Coastguard WorkerNew thread support 56*61046927SAndroid Build Coastguard Worker------------------ 57*61046927SAndroid Build Coastguard Worker 58*61046927SAndroid Build Coastguard WorkerThread support in Mesa has been rewritten. The glthread.[ch] files 59*61046927SAndroid Build Coastguard Workerreplace mthreads.[ch]. Thread safety is always enabled (on platforms 60*61046927SAndroid Build Coastguard Workerwhich support threads, that is). There is virtually no performance 61*61046927SAndroid Build Coastguard Workerpenalty for typical single-thread applications. See the glapi.c 62*61046927SAndroid Build Coastguard Workerfile for details. 63*61046927SAndroid Build Coastguard Worker 64*61046927SAndroid Build Coastguard WorkerThe Xlib driver (XMesa) is now thread-safe as well. Be sure to 65*61046927SAndroid Build Coastguard Workercall XInitThreads() in your app first. See the xdemos/glthreads.c 66*61046927SAndroid Build Coastguard Workerdemo for an example. 67*61046927SAndroid Build Coastguard Worker 68*61046927SAndroid Build Coastguard Worker 69*61046927SAndroid Build Coastguard Worker 70*61046927SAndroid Build Coastguard WorkerMake configuration changes 71*61046927SAndroid Build Coastguard Worker-------------------------- 72*61046927SAndroid Build Coastguard Worker 73*61046927SAndroid Build Coastguard WorkerIf you use the old-style (non GNU automake) method to build Mesa note 74*61046927SAndroid Build Coastguard Workerthat several of the configuration names have changed: 75*61046927SAndroid Build Coastguard Worker 76*61046927SAndroid Build Coastguard Worker Old name New name 77*61046927SAndroid Build Coastguard Worker ------------- ---------------- 78*61046927SAndroid Build Coastguard Worker linux-elf linux 79*61046927SAndroid Build Coastguard Worker linux linux-static 80*61046927SAndroid Build Coastguard Worker linux-386-elf linux-386 81*61046927SAndroid Build Coastguard Worker linux-386 linux-386-static 82*61046927SAndroid Build Coastguard Worker etc. 83*61046927SAndroid Build Coastguard Worker 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard Worker 86*61046927SAndroid Build Coastguard WorkerNew extensions 87*61046927SAndroid Build Coastguard Worker-------------- 88*61046927SAndroid Build Coastguard Worker 89*61046927SAndroid Build Coastguard WorkerGL_ARB_transpose_matrix 90*61046927SAndroid Build Coastguard Worker Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB() 91*61046927SAndroid Build Coastguard Worker functions. 92*61046927SAndroid Build Coastguard Worker 93*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_cube_map 94*61046927SAndroid Build Coastguard Worker For cube-based reflection mapping. 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_add_env 97*61046927SAndroid Build Coastguard Worker Adds GL_ADD texture environment mode. 98*61046927SAndroid Build Coastguard Worker See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt 99*61046927SAndroid Build Coastguard Worker 100*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_lod_bias 101*61046927SAndroid Build Coastguard Worker Allows mipmapped texture blurring and sharpening. 102*61046927SAndroid Build Coastguard Worker 103*61046927SAndroid Build Coastguard WorkerGLX_EXT_visual_rating extension 104*61046927SAndroid Build Coastguard Worker This extension has no effect in stand-alone Mesa (used for DRI). 105*61046927SAndroid Build Coastguard Worker 106*61046927SAndroid Build Coastguard WorkerGL_HP_occlusion_test 107*61046927SAndroid Build Coastguard Worker Used for bounding box occlusion testing (see demos/occlude.c). 108*61046927SAndroid Build Coastguard Worker 109*61046927SAndroid Build Coastguard WorkerGL_SGIX_pixel_texture / GL_SGIS_pixel_texture 110*61046927SAndroid Build Coastguard Worker Lets glDraw/CopyPixels draw a texture coordinate image. 111*61046927SAndroid Build Coastguard Worker 112*61046927SAndroid Build Coastguard WorkerGL_SGI_color_matrix 113*61046927SAndroid Build Coastguard Worker Adds a color matrix and another set of scale and bias parameters 114*61046927SAndroid Build Coastguard Worker to the glDraw/CopyPixels paths. 115*61046927SAndroid Build Coastguard Worker 116*61046927SAndroid Build Coastguard WorkerGL_SGI_color_table 117*61046927SAndroid Build Coastguard Worker Adds additional color tables to the glDraw/Read/CopyPixels paths. 118*61046927SAndroid Build Coastguard Worker 119*61046927SAndroid Build Coastguard WorkerGL_EXT_histogram 120*61046927SAndroid Build Coastguard Worker Compute histograms for glDraw/Read/CopyPixels. 121*61046927SAndroid Build Coastguard Worker 122*61046927SAndroid Build Coastguard WorkerGL_EXT_blend_func_separate 123*61046927SAndroid Build Coastguard Worker This is the same as GL_INGR_blend_func_separate. 124*61046927SAndroid Build Coastguard Worker 125*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_cube_mapping 126*61046927SAndroid Build Coastguard Worker 6-face cube mapping, nicer than sphere mapping 127*61046927SAndroid Build Coastguard Worker 128*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_env_combine 129*61046927SAndroid Build Coastguard Worker For advanced texture environment effects. 130*61046927SAndroid Build Coastguard Worker 131*61046927SAndroid Build Coastguard Worker 132*61046927SAndroid Build Coastguard WorkerDocumentation for all these functions can be found at 133*61046927SAndroid Build Coastguard Workerhttp://oss.sgi.com/projects/ogl-sample/registry/ 134*61046927SAndroid Build Coastguard Worker 135*61046927SAndroid Build Coastguard Worker 136*61046927SAndroid Build Coastguard Worker 137*61046927SAndroid Build Coastguard WorkerGLX_SGI_make_current_read functionality 138*61046927SAndroid Build Coastguard Worker--------------------------------------- 139*61046927SAndroid Build Coastguard Worker 140*61046927SAndroid Build Coastguard WorkerThe functionality of this extension is needed for GLX 1.3 (and required 141*61046927SAndroid Build Coastguard Workerfor the Linux/OpenGL standards base). 142*61046927SAndroid Build Coastguard Worker 143*61046927SAndroid Build Coastguard WorkerImplementing this function required a **DEVICE DRIVER CHANGE**. 144*61046927SAndroid Build Coastguard WorkerThe old SetBuffer() function has been replaced by SetReadBuffer() and 145*61046927SAndroid Build Coastguard WorkerSetDrawBuffer(). All device drivers will have to be updated because 146*61046927SAndroid Build Coastguard Workerof this change. 147*61046927SAndroid Build Coastguard Worker 148*61046927SAndroid Build Coastguard WorkerThe new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa. 149*61046927SAndroid Build Coastguard WorkerThe xdemos/wincopy.c program demonstrates it. 150*61046927SAndroid Build Coastguard Worker 151*61046927SAndroid Build Coastguard Worker 152*61046927SAndroid Build Coastguard Worker 153*61046927SAndroid Build Coastguard WorkerImage-related code changes 154*61046927SAndroid Build Coastguard Worker-------------------------- 155*61046927SAndroid Build Coastguard Worker 156*61046927SAndroid Build Coastguard WorkerThe imaging path code used by glDrawPixels, glTexImage[123]D, 157*61046927SAndroid Build Coastguard WorkerglTexSubImage[123], etc has been rewritten. It's now faster, 158*61046927SAndroid Build Coastguard Workeruses less memory and has several bug fixes. This work was 159*61046927SAndroid Build Coastguard Workeractually started in Mesa 3.1 with the glTexImage paths but has now 160*61046927SAndroid Build Coastguard Workerbeen carried over to glDrawPixels as well. 161*61046927SAndroid Build Coastguard Worker 162*61046927SAndroid Build Coastguard Worker 163*61046927SAndroid Build Coastguard Worker 164*61046927SAndroid Build Coastguard WorkerDevice driver interface changes 165*61046927SAndroid Build Coastguard Worker------------------------------- 166*61046927SAndroid Build Coastguard Worker 167*61046927SAndroid Build Coastguard WorkerAdded new functions for hardware stencil buffer support: 168*61046927SAndroid Build Coastguard Worker WriteStencilSpan 169*61046927SAndroid Build Coastguard Worker ReadStencilSpan 170*61046927SAndroid Build Coastguard Worker WriteStencilPixels 171*61046927SAndroid Build Coastguard Worker ReadStencilPixels 172*61046927SAndroid Build Coastguard Worker 173*61046927SAndroid Build Coastguard Worker 174*61046927SAndroid Build Coastguard WorkerRemoved old depth buffer functions: 175*61046927SAndroid Build Coastguard Worker AllocDepthBuffer 176*61046927SAndroid Build Coastguard Worker DepthTestSpan 177*61046927SAndroid Build Coastguard Worker DepthTestPixels 178*61046927SAndroid Build Coastguard Worker ReadDepthSpanFloat 179*61046927SAndroid Build Coastguard Worker ReadDepthSpanInt 180*61046927SAndroid Build Coastguard Worker 181*61046927SAndroid Build Coastguard Worker 182*61046927SAndroid Build Coastguard WorkerAdded new depth buffer functions: 183*61046927SAndroid Build Coastguard Worker WriteDepthSpan 184*61046927SAndroid Build Coastguard Worker ReadDepthSpan 185*61046927SAndroid Build Coastguard Worker WriteDepthPixels 186*61046927SAndroid Build Coastguard Worker ReadDepthPixels 187*61046927SAndroid Build Coastguard Worker 188*61046927SAndroid Build Coastguard Worker These functions always read/write 32-bit GLuints. This will allow 189*61046927SAndroid Build Coastguard Worker drivers to have anywhere from 0 to 32-bit Z buffers without 190*61046927SAndroid Build Coastguard Worker recompiling for 16 vs 32 bits as was previously needed. 191*61046927SAndroid Build Coastguard Worker 192*61046927SAndroid Build Coastguard Worker 193*61046927SAndroid Build Coastguard WorkerNew texture image functions 194*61046927SAndroid Build Coastguard Worker The entire interface for texture image specification has been updated. 195*61046927SAndroid Build Coastguard Worker With the new functions, it's optional for Mesa to keep an internal copy 196*61046927SAndroid Build Coastguard Worker of all textures. Texture download should be a lot faster when the extra 197*61046927SAndroid Build Coastguard Worker copy isn't made. 198*61046927SAndroid Build Coastguard Worker 199*61046927SAndroid Build Coastguard WorkerMisc changes 200*61046927SAndroid Build Coastguard Worker TexEnv now takes a target argument 201*61046927SAndroid Build Coastguard Worker Removed UseGlobalTexturePalette (use Enable function instead) 202*61046927SAndroid Build Coastguard Worker 203*61046927SAndroid Build Coastguard Worker 204*61046927SAndroid Build Coastguard WorkerAlso added 205*61046927SAndroid Build Coastguard Worker ReadPixels 206*61046927SAndroid Build Coastguard Worker CopyPixels 207*61046927SAndroid Build Coastguard Worker 208*61046927SAndroid Build Coastguard Worker 209*61046927SAndroid Build Coastguard WorkerThe SetBufffer function has been replaced by SetDrawBuffer and 210*61046927SAndroid Build Coastguard WorkerSetReadBuffer functions. This lets core Mesa independently 211*61046927SAndroid Build Coastguard Workerspecify which buffer is to be used for reading and which for 212*61046927SAndroid Build Coastguard Workerdrawing. 213*61046927SAndroid Build Coastguard Worker 214*61046927SAndroid Build Coastguard WorkerThe Clear function's mask parameter has changed. Instead of 215*61046927SAndroid Build Coastguard Workermask being the flags specified by the user to glClear, the 216*61046927SAndroid Build Coastguard Workermask is now a bitmask of the DD_*_BIT flags in dd.h. Now 217*61046927SAndroid Build Coastguard Workermultiple color buffers can be specified for clearing (ala 218*61046927SAndroid Build Coastguard WorkerglDrawBuffers). The driver's Clear function must also 219*61046927SAndroid Build Coastguard Workercheck the glColorMask glIndexMask, and glStencilMask settings 220*61046927SAndroid Build Coastguard Workerand do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa 221*61046927SAndroid Build Coastguard Workerdrivers for examples. 222*61046927SAndroid Build Coastguard Worker 223*61046927SAndroid Build Coastguard Worker 224*61046927SAndroid Build Coastguard WorkerThe depth buffer changes shouldn't be hard to make for existing 225*61046927SAndroid Build Coastguard Workerdrivers. In fact, it should simply the code. Be careful with 226*61046927SAndroid Build Coastguard Workerthe depthBits value passed to gl_create_context(). 1 is a bad 227*61046927SAndroid Build Coastguard Workervalue! It should normally be 0, 16, 24, or 32. 228*61046927SAndroid Build Coastguard Worker 229*61046927SAndroid Build Coastguard Worker 230*61046927SAndroid Build Coastguard Workergl_create_framebuffer() takes new arguments which explicitly tell 231*61046927SAndroid Build Coastguard Workercore Mesa which ancillary buffers (depth, stencil, accum, alpha) 232*61046927SAndroid Build Coastguard Workershould be implemented in software. Mesa hardware drivers should 233*61046927SAndroid Build Coastguard Workercarefully set these flags depending on which buffers are in the 234*61046927SAndroid Build Coastguard Workergraphics card. 235*61046927SAndroid Build Coastguard Worker 236*61046927SAndroid Build Coastguard Worker 237*61046927SAndroid Build Coastguard Worker 238*61046927SAndroid Build Coastguard WorkerInternal constants 239*61046927SAndroid Build Coastguard Worker------------------ 240*61046927SAndroid Build Coastguard Worker 241*61046927SAndroid Build Coastguard WorkerPoint and line size range and granularity limits are now stored 242*61046927SAndroid Build Coastguard Workerin the gl_constants struct, which is the Const member of GLcontext. 243*61046927SAndroid Build Coastguard WorkerThe limits are initialized from values in config.h but may be 244*61046927SAndroid Build Coastguard Workeroverridden by device drivers to reflect the limits of that driver's 245*61046927SAndroid Build Coastguard Workerhardware. 246*61046927SAndroid Build Coastguard Worker 247*61046927SAndroid Build Coastguard WorkerAlso added constants for NumAuxBuffers and SubPixelBits. 248*61046927SAndroid Build Coastguard Worker 249*61046927SAndroid Build Coastguard Worker 250*61046927SAndroid Build Coastguard Worker 251*61046927SAndroid Build Coastguard WorkerOpenGL Conformance 252*61046927SAndroid Build Coastguard Worker------------------ 253*61046927SAndroid Build Coastguard Worker 254*61046927SAndroid Build Coastguard WorkerMesa now passes all the OpenGL 1.1 conformance tests, except for 255*61046927SAndroid Build Coastguard Workerantialiased lines. AA lines fail on some, but not all, the tests. 256*61046927SAndroid Build Coastguard WorkerIn order to fix the remaining failures, a new AA line algorithm will 257*61046927SAndroid Build Coastguard Workerbe needed (which computes coverage values for end-point fragments). 258*61046927SAndroid Build Coastguard WorkerThis will be done for Mesa 3.5/3.6. 259*61046927SAndroid Build Coastguard Worker 260*61046927SAndroid Build Coastguard Worker 261*61046927SAndroid Build Coastguard Worker 262*61046927SAndroid Build Coastguard WorkerOpenGL 1.2 GL_ARB_imaging subset 263*61046927SAndroid Build Coastguard Worker-------------------------------- 264*61046927SAndroid Build Coastguard Worker 265*61046927SAndroid Build Coastguard WorkerMesa 3.3 implements all the features of GL_ARB_imaging except for 266*61046927SAndroid Build Coastguard Workerimage convolution. This will (hopefully) be done for Mesa 3.5/3.6. 267*61046927SAndroid Build Coastguard Worker 268*61046927SAndroid Build Coastguard Worker 269*61046927SAndroid Build Coastguard Worker 270*61046927SAndroid Build Coastguard Worker---------------------------------------------------------------------- 271