[Dri-devel] Marbleblast & UT2003.
Hello all, I thought I should send out an e-mail reporting on some changes with bugs that I initially reported on this list. With the DRI trunk and a Radeon 8500, I'm happy to say that Marbleblast now plays pretty much flawlessly. In fact, where I was getting strange rendering issues with the FireGL drivers from ATI, the DRI drivers rendering everything perfectly. The only thing I've noticed that's still lacking is an option in the game to enable stencil shadows, which doesn't seem to do anything. Is this supported with the DRI? Also, there are still pretty significant rendering errors with the latest patch for UT2003 (Patch 2199). You can see a screen shot at http://memory.visualtech.com/shot.png On the plus side, I'm no longer getting the computer lockups I was originally getting after "playing" the game for a few minutes. Adam --- This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. The most comprehensive and flexible code editor you can use. Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. www.slickedit.com/sourceforge ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
Adam K Kirchhoff wrote: Program received signal SIGSEGV, Segmentation fault. r200UpdateTextureEnv (ctx=0x8391a38, unit=0) at r200_texstate.c:739 739const GLenum format = tObj->Image[tObj->BaseLevel]->Format; (gdb) bt #0 r200UpdateTextureEnv (ctx=0x8391a38, unit=0) at r200_texstate.c:739 #1 0x40cc5419 in disable_tex (ctx=0x8391a38, unit=0) at r200_texstate.c:1401 I finally got Marble Blast and was able to reproduce this. Unfortunatly, this was caused by some of my recent changes. :( The problem is that in if texture unit 1 is enabled and texture unit 0 is disabled, disable_tex will call r200UpdateTextureEnv to put it into a "pass through" mode. This is apparently as close as the r200 can get to disabling a texture unit. When the unit is disabled, texUnit->_Current will be NULL. Therefore, tObj will also be NULL. In any case, here is a patch against the trunk that should fix the problem. I verified the fix by playing a few levels of Marble Blast. Cute game. It reminds me of Super Monkey Ball 2, but it's not quite as annoying. :) This won't need to be applied to the mesa-4-0-4 branch as the problem was never introduced there. Index: lib/GL/mesa/src/drv/r200/r200_texstate.c === RCS file: /cvsroot/dri/xc/xc/lib/GL/mesa/src/drv/r200/r200_texstate.c,v retrieving revision 1.11 diff -u -d -r1.11 r200_texstate.c --- lib/GL/mesa/src/drv/r200/r200_texstate.c7 Feb 2003 20:07:03 - 1.11 +++ lib/GL/mesa/src/drv/r200/r200_texstate.c13 Feb 2003 23:27:49 - @@ -748,16 +748,18 @@ { r200ContextPtr rmesa = R200_CONTEXT(ctx); const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; - const struct gl_texture_object *tObj = texUnit->_Current; - const GLenum format = tObj->Image[tObj->BaseLevel]->Format; GLuint color_combine, alpha_combine; GLuint color_scale = rmesa->hw.pix[unit].cmd[PIX_PP_TXCBLEND2]; GLuint alpha_scale = rmesa->hw.pix[unit].cmd[PIX_PP_TXABLEND2]; + /* texUnit->_Current can be NULL if and only if the texture unit is +* not actually enabled. +*/ + assert( (texUnit->_ReallyEnabled == 0) + || (texUnit->_Current != NULL) ); if ( R200_DEBUG & DEBUG_TEXTURE ) { - fprintf( stderr, "%s( %p, %d ) format=%s\n", __FUNCTION__, - ctx, unit, _mesa_lookup_enum_by_nr( format ) ); + fprintf( stderr, "%s( %p, %d )\n", __FUNCTION__, ctx, unit ); } /* Set the texture environment state. Isn't this nice and clean? @@ -775,6 +777,8 @@ alpha_combine = r200_alpha_combine[unit][R200_DISABLE]; } else { + const struct gl_texture_object *tObj = texUnit->_Current; + const GLenum format = tObj->Image[tObj->BaseLevel]->Format; GLuint color_arg[3], alpha_arg[3]; GLuint i, numColorArgs = 0, numAlphaArgs = 0; GLuint RGBshift = texUnit->CombineScaleShiftRGB; @@ -1064,6 +1068,10 @@ case GL_DOT3_RGB_EXT: case GL_DOT3_RGBA_EXT: + /* The EXT version of the DOT3 extension does not support the +* scale factor, but the ARB version (and the version in OpenGL +* 1.3) does. +*/ RGBshift = 0; Ashift = 0; /* FALLTHROUGH */ @@ -1188,9 +1196,7 @@ } /* Step 3: - * Apply the scale factor. The EXT version of the DOT3 extension does - * not support the scale factor, but the ARB version (and the version in - * OpenGL 1.3) does. + * Apply the scale factor. */ color_scale &= ~R200_TXC_SCALE_MASK; alpha_scale &= ~R200_TXA_SCALE_MASK;
Re: [Dri-devel] MarbleBlast
On Wed, 5 Feb 2003, Ian Romanick wrote: > Adam K Kirchhoff wrote: > > So there's this really great game from Garagegames called > > MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher > > or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the > > ATI FireGL drivers, but segfaults when trying to use the opensource > > drivers: > > > > Program received signal SIGFPE, Arithmetic exception. > > [Switching to Thread 16384 (LWP 2053)] > > 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > > /usr/X11R6/lib/modules/dri/r200_dri.so > > (gdb) bt > > #0 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > > /usr/X11R6/lib/modules/dri/r200_dri.so > > #1 0x40c9f7e7 in check_os_sse_support () at common_x86.c:191 > > This is a FAQ x 1,000,000. This is not a crash or anything bad. This > is the driver trying to detect if you CPU supports the SSE instruction > set. Type 'continue' and move on. :) So I've been told :-) > Is there a demo version of this game available? If so, it would be > useful for testing. http://www.garagegames.com/pg/demo.php?id=3 Have fun :-) It's quite an addictive little game. Adam --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
On Wed, 2003-02-05 at 22:58, Adam K Kirchhoff wrote: > Hello all, > > So there's this really great game from Garagegames called > MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher > or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the > ATI FireGL drivers, but segfaults when trying to use the opensource > drivers: > > Program received signal SIGFPE, Arithmetic exception. > [Switching to Thread 16384 (LWP 2053)] > 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > /usr/X11R6/lib/modules/dri/r200_dri.so This is meant to happen. Its testing if FPE works. What you want to do is ignore the FPU exceptions in gdb, then run it and get the real segfault > --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
> > Program received signal SIGFPE, Arithmetic exception. > > [Switching to Thread 16384 (LWP 2053)] > > 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > > This is expected, just press 'c' to continue. Look at the name of the > function -- it's deliberately trying to raise an exception. D'oh.. Thanks Keith and Leif. Can't believe I messed that up... Anyway, here's the important output: (gdb) c Continuing. [New Thread 32769 (LWP 1136)] [New Thread 16386 (LWP 1137)] [New Thread 32771 (LWP 1138)] [New Thread 49156 (LWP 1139)] Program received signal SIGSEGV, Segmentation fault. r200UpdateTextureEnv (ctx=0x8391a38, unit=0) at r200_texstate.c:739 739const GLenum format = tObj->Image[tObj->BaseLevel]->Format; (gdb) bt #0 r200UpdateTextureEnv (ctx=0x8391a38, unit=0) at r200_texstate.c:739 #1 0x40cc5419 in disable_tex (ctx=0x8391a38, unit=0) at r200_texstate.c:1401 #2 0x40cc5966 in r200UpdateTextureUnit (ctx=0x8391a38, unit=0) at r200_texstate.c:1644 #3 0x40cc598a in r200UpdateTextureState (ctx=0x8391a38) at r200_texstate.c:1656 #4 0x40caa521 in r200ValidateState (ctx=0x8391a38) at r200_state.c:2036 #5 0x40cc8c42 in r200NotifyBegin (ctx=0x8391a38, p=5) at r200_vtxfmt.c:918 #6 0x40c771d7 in _tnl_Begin (mode=5) at t_imm_api.c:215 #7 0x40c77301 in _tnl_hard_begin (ctx=0x8391a38, p=5) at t_imm_api.c:245 #8 0x40c7517a in fallback_drawelements (ctx=0x8391a38, mode=5, count=9, indices=0x850ea10) at t_array_api.c:65 #9 0x40c7572f in _tnl_DrawElements (mode=5, count=9, type=5123, indices=0x4091ec3c) at t_array_api.c:336 I'll gladly test what I can. Adam --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
Adam K Kirchhoff wrote: So there's this really great game from Garagegames called MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the ATI FireGL drivers, but segfaults when trying to use the opensource drivers: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 16384 (LWP 2053)] 0x40c9fa70 in _mesa_test_os_sse_exception_support () from /usr/X11R6/lib/modules/dri/r200_dri.so (gdb) bt #0 0x40c9fa70 in _mesa_test_os_sse_exception_support () from /usr/X11R6/lib/modules/dri/r200_dri.so #1 0x40c9f7e7 in check_os_sse_support () at common_x86.c:191 This is a FAQ x 1,000,000. This is not a crash or anything bad. This is the driver trying to detect if you CPU supports the SSE instruction set. Type 'continue' and move on. :) Is there a demo version of this game available? If so, it would be useful for testing. --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
Adam K Kirchhoff wrote: Hello all, So there's this really great game from Garagegames called MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the ATI FireGL drivers, but segfaults when trying to use the opensource drivers: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 16384 (LWP 2053)] 0x40c9fa70 in _mesa_test_os_sse_exception_support () from This is expected, just press 'c' to continue. Look at the name of the function -- it's deliberately trying to raise an exception. Keith --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
Re: [Dri-devel] MarbleBlast
You need to continue past this exception to get to the segfault. This is just Mesa testing for SSE. On Wed, 5 Feb 2003, Adam K Kirchhoff wrote: > > Hello all, > > So there's this really great game from Garagegames called > MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher > or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the > ATI FireGL drivers, but segfaults when trying to use the opensource > drivers: > > Program received signal SIGFPE, Arithmetic exception. > [Switching to Thread 16384 (LWP 2053)] > 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > /usr/X11R6/lib/modules/dri/r200_dri.so > (gdb) bt > #0 0x40c9fa70 in _mesa_test_os_sse_exception_support () from > /usr/X11R6/lib/modules/dri/r200_dri.so > #1 0x40c9f7e7 in check_os_sse_support () at common_x86.c:191 > #2 0x40c9f96d in _mesa_init_all_x86_transform_asm () at common_x86.c:275 > #3 0x40c1b557 in _math_init () at m_xform.c:218 > #4 0x40bada66 in one_time_init (ctx=0x8391a38) at context.c:564 > #5 0x40bafee0 in _mesa_initialize_context (ctx=0x8391a38, > visual=0xbfffbc40, share_list=0x0, > driver_ctx=0x838e908, direct=1) at context.c:1663 > #6 0x40bb083f in _mesa_create_context (visual=0xbfffbc40, share_list=0x0, > driver_ctx=0x838e908, direct=1) > at context.c:1900 > #7 0x40ca483f in r200CreateContext (glVisual=0xbfffbc40, > driContextPriv=0x838d350, sharedContextPrivate=0x0) > at r200_context.c:252 > #8 0x40b9ca94 in driCreateContext (dpy=0x8381a50, vis=0x838ce20, > sharedPrivate=0x0, pctx=0x838e0d4) > at dri_util.c:852 > #9 0x40b53a07 in CreateContext (dpy=0x8381a50, vis=0x838ce20, > shareList=0x0, allowDirect=1, contextID=0) > at glxcmds.c:184 > #10 0x40b53b19 in glXCreateContext (dpy=0x8381a50, vis=0x838ce20, > shareList=0x0, allowDirect=1) at glxcmds.c:221 > #11 0x4004cab9 in X11_GL_CreateContext () from /usr/lib/libSDL-1.2.so.0 > #12 0x4005086d in X11_CheckMouseMode () from /usr/lib/libSDL-1.2.so.0 > #13 0x40050b9a in X11_CheckMouseMode () from /usr/lib/libSDL-1.2.so.0 > #14 0x4004690d in SDL_SetVideoMode () from /usr/lib/libSDL-1.2.so.0 > > Any ideas what might be causing this? > > Adam > > > > > --- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > ___ > Dri-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/dri-devel > -- Leif Delgass http://www.retinalburn.net --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
[Dri-devel] MarbleBlast
Hello all, So there's this really great game from Garagegames called MarbleBlast, which they've ported to Linux. Game requires TNT2 and higher or Radeon 8500 and higher. It plays just fine on my Radeon 8500 using the ATI FireGL drivers, but segfaults when trying to use the opensource drivers: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 16384 (LWP 2053)] 0x40c9fa70 in _mesa_test_os_sse_exception_support () from /usr/X11R6/lib/modules/dri/r200_dri.so (gdb) bt #0 0x40c9fa70 in _mesa_test_os_sse_exception_support () from /usr/X11R6/lib/modules/dri/r200_dri.so #1 0x40c9f7e7 in check_os_sse_support () at common_x86.c:191 #2 0x40c9f96d in _mesa_init_all_x86_transform_asm () at common_x86.c:275 #3 0x40c1b557 in _math_init () at m_xform.c:218 #4 0x40bada66 in one_time_init (ctx=0x8391a38) at context.c:564 #5 0x40bafee0 in _mesa_initialize_context (ctx=0x8391a38, visual=0xbfffbc40, share_list=0x0, driver_ctx=0x838e908, direct=1) at context.c:1663 #6 0x40bb083f in _mesa_create_context (visual=0xbfffbc40, share_list=0x0, driver_ctx=0x838e908, direct=1) at context.c:1900 #7 0x40ca483f in r200CreateContext (glVisual=0xbfffbc40, driContextPriv=0x838d350, sharedContextPrivate=0x0) at r200_context.c:252 #8 0x40b9ca94 in driCreateContext (dpy=0x8381a50, vis=0x838ce20, sharedPrivate=0x0, pctx=0x838e0d4) at dri_util.c:852 #9 0x40b53a07 in CreateContext (dpy=0x8381a50, vis=0x838ce20, shareList=0x0, allowDirect=1, contextID=0) at glxcmds.c:184 #10 0x40b53b19 in glXCreateContext (dpy=0x8381a50, vis=0x838ce20, shareList=0x0, allowDirect=1) at glxcmds.c:221 #11 0x4004cab9 in X11_GL_CreateContext () from /usr/lib/libSDL-1.2.so.0 #12 0x4005086d in X11_CheckMouseMode () from /usr/lib/libSDL-1.2.so.0 #13 0x40050b9a in X11_CheckMouseMode () from /usr/lib/libSDL-1.2.so.0 #14 0x4004690d in SDL_SetVideoMode () from /usr/lib/libSDL-1.2.so.0 Any ideas what might be causing this? Adam --- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com ___ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel