On Mon, Apr 08, 2002 at 04:08:44PM -0700, Ian Romanick wrote: > 1. dribench002.dm_67 hung on the texthrash.cfg setting. The X server > could be killed, but not restarted. System had to be rebooted. In this > case, the ultramax.cfg setting was not tested.
I am now able to reliably reproduce this hang on my hardware. I will include instructions for producing it and some brief analysis that I have done. To do this test and collect useful data, you will have to edit lib/GL/mesa/src/drv/mga/mgacontext.h and remove the line #define MGA_DEBUG 0 This should be line 266. I am testing using v1.31 of Quake 3, and can cause the hang using the 'four' demo. To use this demo with v1.31, you must do the following: cd /usr/local/games/quake3/baseq3/ unzip pak6.pk3 four.dm_66 mkdir demos mv four.dm_66 demos/four.dm_67 I then created a simple cfg file to repeatedly play the demo in a loop: timedemo 1 set demoloop "demo four; set nextdemo vstr demoloop: vstr demoloop The following configuration file (I call it "ultramax_stencilshadows.cfg") was also used: set com_hunkMegs "80" set com_maxfps "0" set com_blood "1" set r_allowExtensions "1" set r_ext_compressed_textures "0" set r_ext_gamma_control "1" set r_ext_multitexture "1" set r_ext_compiled_vertex_array "1" set r_ext_texture_env_add "1" set r_texturebits "0" set r_colorbits "0" set r_stereo "0" set r_depthbits "0" set r_overBrightBits "1" set r_fullscreen "1" set r_ignoreFastPath "0" set r_finish "0" set r_swapInterval "0" set r_facePlaneCull "1" set r_railWidth "16" set r_railCoreWidth "6" set r_railSegmentLength "32" set r_primitives "0" set cg_brassTime "2500" set cg_drawCrosshair "4" set cg_drawCrosshairNames "1" set cg_marks "1" set r_picmip "0" set r_roundImagesDown "0" set r_detailtextures "1" set r_simpleMipMaps "0" set r_textureMode "GL_LINEAR_MIPMAP_LINEAR" set r_stencilbits "8" set cg_shadows "2" set r_vertexLight "0" set r_dynamiclight "1" set r_dlightBacks "0" set r_subdivisions "1" set r_lodCurveError "2000" set r_lodbias "0" set r_flares "1" set r_fastsky "0" set r_drawSun "1" The X server was run in 640x480 w/24-bit color (you *must* use 24-bit). My card is only a 16MB card, so setting the X server to this low resolution is a must. BEFORE YOU RUN THIS TEST, BACK-UP YOUR q3config.cfg! I *STRONGLY* suggest that this test be run from a remote login (i.e., using ssh or telnet). Your display WILL HANG, and you will HAVE TO REBOOT. Sorry for all the yelling. I just don't want anyone to miss this stuff. :) To start the test, put the two .cfg files in ~/.q3a/baseq3/. Then do the following. cd /usr/local/games/quake3 gdb quake3.x86 >From the gdb prompt, do: (gdb) r +exec ultramax_stencilshadows.cfg +exec fourloop.cfg > quake.out 2>&1 When gdb stops on the SSE detection signal, do the following: (gdb) set MGA_DEBUG 0x10 (gdb) continue Eventually, Quake should terminate and your screen will hang. X will be at ~98% CPU. You can kill X, but you won't be able to restart it. Reboot time! I am including the last 100 or so lines of the quake.out file that I generated. As always, I can try other things if some master of G400 hardware has any suggestions. :) --- BEGIN quake.out --- dma_buffer now: buf idx: 12 size: 65536 used: 0 addr 0x478da000 finished getbuffer FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDBlendFunc FLUSH_BATCH in mgaDDUpdateHwState FLUSH_BATCH in mgaDDEnable FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDUpdateHwState FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDUpdateHwState FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDBlendFunc FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 52 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 52 dma_buffer now: buf idx: 52 size: 65536 used: 0 addr 0x47b5a000 finished getbuffer FLUSH_BATCH in mgaDDEnable FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDUpdateHwState FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDUpdateHwState FLUSH_BATCH in mgaDDBindTexture FLUSH_BATCH in mgaDDEnable FLUSH_BATCH in mgaDDBlendFunc FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDEnable FLUSH_BATCH in mgaDDStencilFunc FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 14 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 14 dma_buffer now: buf idx: 14 size: 65536 used: 0 addr 0x478fa000 finished getbuffer FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 23 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 23 dma_buffer now: buf idx: 23 size: 65536 used: 0 addr 0x4798a000 finished getbuffer FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 42 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 42 dma_buffer now: buf idx: 42 size: 65536 used: 0 addr 0x47aba000 finished getbuffer FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 115 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 115 dma_buffer now: buf idx: 115 size: 65536 used: 0 addr 0x47f4a000 finished getbuffer FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 30 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 30 dma_buffer now: buf idx: 30 size: 65536 used: 0 addr 0x479fa000 finished getbuffer FLUSH_BATCH in mgaDDCullFaceFrontFace FLUSH_BATCH in mgaDDStencilOp FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode 0 sz 65536 idx 20 count 1 drmDMA (get) returns size[0] 0x10000 idx[0] 20 dma_buffer now: buf idx: 20 size: 65536 used: 0 addr 0x4795a000 finished getbuffer FLUSH_BATCH in mgaDDColorMask FLUSH_BATCH in mgaDDStencilFunc FLUSH_BATCH in mgaDDEnable FLUSH_BATCH in mgaDDBlendFunc FLUSH_BATCH in mgaDDDepthMask FLUSH_BATCH in mgaDDUpdateHwState Getting dma buffer drmDMA (get) ctx 4 count 1 size 0x10000 retcode -11 sz 0 idx 0 count 0 flushmga_get_buffer_ioctl: flush ret=-16 --- END quake.out --- -- Tell that to the Marines! _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel