diff options
Diffstat (limited to 'xc/extras/Mesa')
28 files changed, 159 insertions, 20 deletions
diff --git a/xc/extras/Mesa/docs/RELNOTES-4.0.2 b/xc/extras/Mesa/docs/RELNOTES-4.0.2 index 7b0b58ee3..6f878f474 100644 --- a/xc/extras/Mesa/docs/RELNOTES-4.0.2 +++ b/xc/extras/Mesa/docs/RELNOTES-4.0.2 @@ -47,3 +47,4 @@ D3D needs updating ---------------------------------------------------------------------- +$Id: RELNOTES-4.0.2,v 1.3 2002/10/22 23:38:06 alanh Exp $ diff --git a/xc/extras/Mesa/docs/VERSIONS b/xc/extras/Mesa/docs/VERSIONS index 7259f7557..f8e904140 100644 --- a/xc/extras/Mesa/docs/VERSIONS +++ b/xc/extras/Mesa/docs/VERSIONS @@ -980,3 +980,32 @@ Mesa Version History - 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 diff --git a/xc/extras/Mesa/include/GL/glxext.h b/xc/extras/Mesa/include/GL/glxext.h index 54620bd4e..aa899546a 100644 --- a/xc/extras/Mesa/include/GL/glxext.h +++ b/xc/extras/Mesa/include/GL/glxext.h @@ -260,6 +260,9 @@ extern "C" { #ifndef GLX_MESA_release_buffers #endif +#ifndef GLX_MESA_agp_offset +#endif + #ifndef GLX_MESA_set_3dfx_mode #define GLX_3DFX_WINDOW_MODE_MESA 0x1 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 @@ -568,6 +571,14 @@ extern Bool glXSet3DfxModeMESA (int); typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); #endif +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLuint glXGetAGPOffsetMESA (const GLvoid *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLuint ( * PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *); +#endif + #ifndef GLX_SGIX_visual_select_group #define GLX_SGIX_visual_select_group 1 #endif diff --git a/xc/extras/Mesa/include/GL/osmesa.h b/xc/extras/Mesa/include/GL/osmesa.h index d3edffee2..cf827a702 100644 --- a/xc/extras/Mesa/include/GL/osmesa.h +++ b/xc/extras/Mesa/include/GL/osmesa.h @@ -1,4 +1,3 @@ - /* * Mesa 3-D graphics library * Version: 4.0.3 diff --git a/xc/extras/Mesa/include/dmesadxe.h b/xc/extras/Mesa/include/dmesadxe.h index 262cd8815..e57d4241d 100644 --- a/xc/extras/Mesa/include/dmesadxe.h +++ b/xc/extras/Mesa/include/dmesadxe.h @@ -1,5 +1,5 @@ /*
- * Dynamic module support v1.1 for Mesa 4.0.3
+ * Dynamic module support v1.1 for Mesa 4.0.4
*
* Copyright (C) 2002 - Borca Daniel
* Email : dborca@yahoo.com
diff --git a/xc/extras/Mesa/src/OSmesa/osmesa.c b/xc/extras/Mesa/src/OSmesa/osmesa.c index 4ab2d4ca2..0735e2d64 100644 --- a/xc/extras/Mesa/src/OSmesa/osmesa.c +++ b/xc/extras/Mesa/src/OSmesa/osmesa.c @@ -1,4 +1,3 @@ - /* * Mesa 3-D graphics library * Version: 4.0.3 diff --git a/xc/extras/Mesa/src/X/fakeglx.c b/xc/extras/Mesa/src/X/fakeglx.c index 0ffd0596a..4bb3e86f3 100644 --- a/xc/extras/Mesa/src/X/fakeglx.c +++ b/xc/extras/Mesa/src/X/fakeglx.c @@ -2642,9 +2642,11 @@ struct _glxapi_table *_mesa_GetGLXDispatchTable(void) /*** GLX_MESA_set_3dfx_mode ***/ glx.Set3DfxModeMESA = Fake_glXSet3DfxModeMESA; - /*** GLX AGP memory allocation ***/ + /*** GLX_NV_vertex_array_range ***/ glx.AllocateMemoryNV = Fake_glXAllocateMemoryNV; glx.FreeMemoryNV = Fake_glXFreeMemoryNV; + + /*** GLX_MESA_agp_offset ***/ glx.GetAGPOffsetMESA = Fake_glXGetAGPOffsetMESA; return &glx; diff --git a/xc/extras/Mesa/src/X/glxapi.h b/xc/extras/Mesa/src/X/glxapi.h index 417f6987e..590479dd4 100644 --- a/xc/extras/Mesa/src/X/glxapi.h +++ b/xc/extras/Mesa/src/X/glxapi.h @@ -195,12 +195,14 @@ struct _glxapi_table { /*** GLX_MESA_set_3dfx_mode ***/ Bool (*Set3DfxModeMESA)(int mode); - /*** GLX AGP functions ***/ + /*** GLX_NV_vertex_array_range ***/ void * (*AllocateMemoryNV)( GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority ); void (*FreeMemoryNV)( GLvoid *pointer ); + + /*** GLX_MESA_agp_offset ***/ GLuint (*GetAGPOffsetMESA)( const GLvoid *pointer ); }; diff --git a/xc/extras/Mesa/src/X/realglx.c b/xc/extras/Mesa/src/X/realglx.c index 8e018ac45..ba172c974 100644 --- a/xc/extras/Mesa/src/X/realglx.c +++ b/xc/extras/Mesa/src/X/realglx.c @@ -169,9 +169,12 @@ _real_GetGLXDispatchTable(void) /*** GLX_MESA_set_3dfx_mode ***/ glx.Set3DfxModeMESA = _real_glXSet3DfxModeMESA; - /*** GLX AGP memory allocation ***/ + /*** GLX_NV_vertex_array_range ***/ glx.AllocateMemoryNV = _real_glXAllocateMemoryNV; glx.FreeMemoryNV = _real_glXFreeMemoryNV; + /*** GLX_MESA_agp_offset ***/ + glx.GetAGPOffsetMESA = _real_glXGetAGPOffsetMESA; + return &glx; } diff --git a/xc/extras/Mesa/src/X/realglx.h b/xc/extras/Mesa/src/X/realglx.h index db863427b..05a3f339d 100644 --- a/xc/extras/Mesa/src/X/realglx.h +++ b/xc/extras/Mesa/src/X/realglx.h @@ -324,7 +324,7 @@ _real_glXFreeMemoryNV( GLvoid *pointer ); #ifdef GLX_MESA_agp_offset extern GLuint -_real_glXGetAGPOffset( const GLvoid *pointer ); +_real_glXGetAGPOffsetMESA( const GLvoid *pointer ); #endif diff --git a/xc/extras/Mesa/src/X86/assyntax.h b/xc/extras/Mesa/src/X86/assyntax.h index 0fb0315ac..2aabbe4f8 100644 --- a/xc/extras/Mesa/src/X86/assyntax.h +++ b/xc/extras/Mesa/src/X86/assyntax.h @@ -23,6 +23,7 @@ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ +/* $XFree86: xc/extras/Mesa/src/X86/assyntax.h,v 1.12 2002/09/09 21:30:02 dawes Exp $ */ /* * assyntax.h diff --git a/xc/extras/Mesa/src/X86/common_x86_asm.S b/xc/extras/Mesa/src/X86/common_x86_asm.S index 841463acc..a3d26e62d 100644 --- a/xc/extras/Mesa/src/X86/common_x86_asm.S +++ b/xc/extras/Mesa/src/X86/common_x86_asm.S @@ -22,6 +22,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/* $XFree86: xc/extras/Mesa/src/X86/common_x86_asm.S,v 1.13 2002/09/09 21:52:14 dawes Exp $ */ /* * Check extended CPU capabilities. Now justs returns the raw CPUID diff --git a/xc/extras/Mesa/src/X86/mmx.h b/xc/extras/Mesa/src/X86/mmx.h index 0c2682bca..96e086d2e 100644 --- a/xc/extras/Mesa/src/X86/mmx.h +++ b/xc/extras/Mesa/src/X86/mmx.h @@ -1,3 +1,4 @@ +/* $Id: mmx.h,v 1.7 2002/10/22 23:38:09 alanh Exp $ */ /* * Mesa 3-D graphics library diff --git a/xc/extras/Mesa/src/X86/x86_cliptest.S b/xc/extras/Mesa/src/X86/x86_cliptest.S index d022f9b96..03bcce679 100644 --- a/xc/extras/Mesa/src/X86/x86_cliptest.S +++ b/xc/extras/Mesa/src/X86/x86_cliptest.S @@ -22,6 +22,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/* $XFree86: xc/extras/Mesa/src/X86/x86_cliptest.S,v 1.4 2002/03/05 20:27:24 dawes Exp $ */ /* * NOTE: Avoid using spaces in between '(' ')' and arguments, especially diff --git a/xc/extras/Mesa/src/X86/x86_vertex.S b/xc/extras/Mesa/src/X86/x86_vertex.S index 699e829c2..b69c52fb2 100644 --- a/xc/extras/Mesa/src/X86/x86_vertex.S +++ b/xc/extras/Mesa/src/X86/x86_vertex.S @@ -1,3 +1,5 @@ +/* $XFree86: xc/extras/Mesa/src/X86/x86_vertex.S,v 1.2 2002/03/05 20:27:24 dawes Exp $ */ + #include "matypes.h" diff --git a/xc/extras/Mesa/src/attrib.c b/xc/extras/Mesa/src/attrib.c index 636c33ee5..0f74019c2 100644 --- a/xc/extras/Mesa/src/attrib.c +++ b/xc/extras/Mesa/src/attrib.c @@ -942,12 +942,16 @@ _mesa_PopAttrib(void) point = (const struct gl_point_attrib *) attr->data; _mesa_PointSize(point->Size); _mesa_set_enable(ctx, GL_POINT_SMOOTH, point->SmoothFlag); - _mesa_PointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, - point->Params); - _mesa_PointParameterfEXT(GL_POINT_SIZE_MIN_EXT, point->MinSize); - _mesa_PointParameterfEXT(GL_POINT_SIZE_MAX_EXT, point->MaxSize); - _mesa_PointParameterfEXT(GL_POINT_FADE_THRESHOLD_SIZE_EXT, - point->Threshold); + if (ctx->Extensions.EXT_point_parameters) { + _mesa_PointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, + point->Params); + _mesa_PointParameterfEXT(GL_POINT_SIZE_MIN_EXT, + point->MinSize); + _mesa_PointParameterfEXT(GL_POINT_SIZE_MAX_EXT, + point->MaxSize); + _mesa_PointParameterfEXT(GL_POINT_FADE_THRESHOLD_SIZE_EXT, + point->Threshold); + } } break; case GL_POLYGON_BIT: diff --git a/xc/extras/Mesa/src/context.c b/xc/extras/Mesa/src/context.c index 35d3a9d78..14e4ceac5 100644 --- a/xc/extras/Mesa/src/context.c +++ b/xc/extras/Mesa/src/context.c @@ -1,3 +1,4 @@ +/* $Id: context.c,v 1.29 2002/10/22 23:38:07 alanh Exp $ */ /* * Mesa 3-D graphics library @@ -1302,7 +1303,10 @@ init_attrib_groups( GLcontext *ctx ) ctx->NoDither = getenv("MESA_NO_DITHER") ? GL_TRUE : GL_FALSE; if (ctx->NoDither) { if (getenv("MESA_DEBUG")) { + /* XXX This causes an OSMesa build problem on Solaris 2.6 */ +#ifndef SVR4 fprintf(stderr, "MESA_NO_DITHER set - dithering disabled\n"); +#endif } ctx->Color.DitherFlag = GL_FALSE; } diff --git a/xc/extras/Mesa/src/dd.h b/xc/extras/Mesa/src/dd.h index b0b9dba24..2bf833730 100644 --- a/xc/extras/Mesa/src/dd.h +++ b/xc/extras/Mesa/src/dd.h @@ -1,4 +1,3 @@ - /* * Mesa 3-D graphics library * Version: 4.0.3 diff --git a/xc/extras/Mesa/src/glheader.h b/xc/extras/Mesa/src/glheader.h index 78f618949..62fba6e00 100644 --- a/xc/extras/Mesa/src/glheader.h +++ b/xc/extras/Mesa/src/glheader.h @@ -22,6 +22,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/* $XFree86: xc/extras/Mesa/src/glheader.h,v 1.18 2002/09/09 21:29:38 dawes Exp $ */ #ifndef GLHEADER_H @@ -45,7 +46,7 @@ -#ifdef XFree86LOADER +#ifdef XFree86Module #include "xf86_ansic.h" #else #include <assert.h> diff --git a/xc/extras/Mesa/src/glthread.h b/xc/extras/Mesa/src/glthread.h index 3b72a42f4..3bcee3b29 100644 --- a/xc/extras/Mesa/src/glthread.h +++ b/xc/extras/Mesa/src/glthread.h @@ -22,7 +22,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - +/* $XFree86: xc/extras/Mesa/src/glthread.h,v 1.4 2002/02/22 19:25:32 dawes Exp $ */ /* * Thread support for gl dispatch. diff --git a/xc/extras/Mesa/src/mmath.c b/xc/extras/Mesa/src/mmath.c index 585d0d793..78afabdfa 100644 --- a/xc/extras/Mesa/src/mmath.c +++ b/xc/extras/Mesa/src/mmath.c @@ -1,4 +1,4 @@ - +/* $XFree86: xc/extras/Mesa/src/mmath.c,v 1.6 2002/02/22 19:25:36 dawes Exp $ */ /* * Mesa 3-D graphics library * Version: 3.5 diff --git a/xc/extras/Mesa/src/points.c b/xc/extras/Mesa/src/points.c index 1f731730c..12ca20689 100644 --- a/xc/extras/Mesa/src/points.c +++ b/xc/extras/Mesa/src/points.c @@ -1,4 +1,3 @@ - /* * Mesa 3-D graphics library * Version: 3.5 diff --git a/xc/extras/Mesa/src/swrast/s_texture.c b/xc/extras/Mesa/src/swrast/s_texture.c index c6cd5186f..06c6c02e8 100644 --- a/xc/extras/Mesa/src/swrast/s_texture.c +++ b/xc/extras/Mesa/src/swrast/s_texture.c @@ -97,6 +97,7 @@ U = 1.0F - (S - (GLfloat) flr); /* flr is odd */ \ else \ U = S - (GLfloat) flr; /* flr is even */ \ + U = (U * SIZE) - 0.5; \ I0 = IFLOOR(U); \ I1 = I0 + 1; \ if (I0 < 0) \ diff --git a/xc/extras/Mesa/src/swrast_setup/NOTES b/xc/extras/Mesa/src/swrast_setup/NOTES new file mode 100644 index 000000000..c6cb4ab34 --- /dev/null +++ b/xc/extras/Mesa/src/swrast_setup/NOTES @@ -0,0 +1,65 @@ +INTRODUCTION + +A helper module which provides glue to bind the software rasterizer to +the software t&l module. The main task of this module is to build +swrast vertices from the t&l vertex_buffer structs, and to use them to +perform triangle setup functions not implemented in the software +rasterizer. + +The module implements a full set of functions to plug into the +t_vb_render.c driver interface (tnl->Driver.Render.*). + +There are strong advantages to decoupling the software rasterizer from +the t&l module, primarily allowing hardware drivers better control +over fallbacks, the removal of implicit knowledge about the software +rasterizer in the t&l module, allowing the two modules to evolve +independently and allowing either to be substituted with equivalent +functionality from another codebase. + +This module implements triangle/quad setup for offset, unfilled and +twoside-lit triangles. The software rasterizer doesn't handle these +primitives directly. + +Hardware rasterization drivers typically use this module in situations +where no hardware rasterization is possible, ie during total +fallbacks. + +STATE + +To create and destroy the module: + + GLboolean _swsetup_CreateContext( GLcontext *ctx ); + void _swsetup_DestroyContext( GLcontext *ctx ); + +The module is not active by default, and must be installed by calling +_swrast_Wakeup(). This function installs internal swrast_setup +functions into all the tnl->Driver.Render driver hooks, thus taking +over the task of rasterization entirely: + + void _swrast_Wakeup( GLcontext *ctx ); + + +This module tracks state changes internally and maintains derived +values based on the current state. For this to work, the driver +ensure the following funciton is called whenever the state changes and +the swsetup module is 'awake': + + void _swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ); + +There is no explicit call to put the swsetup module to sleep. Simply +install other function pointers into all the tnl->Driver.Render.* +hooks, and (optionally) cease calling _swsetup_InvalidateState(). + +DRIVER INTERFACE + +The module offers a minimal driver interface: + + void (*Start)( GLcontext *ctx ); + void (*Finish)( GLcontext *ctx ); + +These are called before and after the completion of all swrast drawing +activity. As swrast doesn't call callbacks during triangle, line or +point rasterization, these are necessary to provide locking hooks for +some drivers. They may otherwise be left null. + + diff --git a/xc/extras/Mesa/src/teximage.c b/xc/extras/Mesa/src/teximage.c index 176edb876..68395bcd5 100644 --- a/xc/extras/Mesa/src/teximage.c +++ b/xc/extras/Mesa/src/teximage.c @@ -214,7 +214,10 @@ _mesa_base_tex_format( GLcontext *ctx, GLint format ) case GL_COLOR_INDEX8_EXT: case GL_COLOR_INDEX12_EXT: case GL_COLOR_INDEX16_EXT: - return GL_COLOR_INDEX; + if (ctx->Extensions.EXT_paletted_texture) + return GL_COLOR_INDEX; + else + return -1; case GL_DEPTH_COMPONENT: case GL_DEPTH_COMPONENT16_SGIX: case GL_DEPTH_COMPONENT24_SGIX: diff --git a/xc/extras/Mesa/src/texobj.c b/xc/extras/Mesa/src/texobj.c index 1b0e583a2..68eb1d8a0 100644 --- a/xc/extras/Mesa/src/texobj.c +++ b/xc/extras/Mesa/src/texobj.c @@ -555,27 +555,38 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *texName) if (delObj == unit->Current1D) { unit->Current1D = ctx->Shared->Default1D; ctx->Shared->Default1D->RefCount++; + delObj->RefCount--; if (delObj == unit->_Current) unit->_Current = unit->Current1D; } else if (delObj == unit->Current2D) { unit->Current2D = ctx->Shared->Default2D; ctx->Shared->Default2D->RefCount++; + delObj->RefCount--; if (delObj == unit->_Current) unit->_Current = unit->Current2D; } else if (delObj == unit->Current3D) { unit->Current3D = ctx->Shared->Default3D; ctx->Shared->Default3D->RefCount++; + delObj->RefCount--; if (delObj == unit->_Current) unit->_Current = unit->Current3D; } else if (delObj == unit->CurrentCubeMap) { unit->CurrentCubeMap = ctx->Shared->DefaultCubeMap; ctx->Shared->DefaultCubeMap->RefCount++; + delObj->RefCount--; if (delObj == unit->_Current) unit->_Current = unit->CurrentCubeMap; } + else if (delObj == unit->CurrentRect) { + unit->CurrentRect = ctx->Shared->DefaultRect; + ctx->Shared->DefaultRect->RefCount++; + delObj->RefCount--; + if (delObj == unit->_Current) + unit->_Current = unit->CurrentRect; + } } ctx->NewState |= _NEW_TEXTURE; diff --git a/xc/extras/Mesa/src/texutil_tmp.h b/xc/extras/Mesa/src/texutil_tmp.h index 5c5e4862b..8669a2da8 100644 --- a/xc/extras/Mesa/src/texutil_tmp.h +++ b/xc/extras/Mesa/src/texutil_tmp.h @@ -1,4 +1,3 @@ - /* * Mesa 3-D graphics library * Version: 4.0.4 diff --git a/xc/extras/Mesa/src/varray.h b/xc/extras/Mesa/src/varray.h index 8b078fc20..d7f496d08 100644 --- a/xc/extras/Mesa/src/varray.h +++ b/xc/extras/Mesa/src/varray.h @@ -1,3 +1,4 @@ +/* $Id: varray.h,v 1.12 2002/10/22 23:38:08 alanh Exp $ */ /* * Mesa 3-D graphics library |