From: Felix <fx...@gm...> - 2002-05-18 13:02:03
|
Hi, I updated my DRI tree and recompiled everything. With glxgears, and quake1 things work fine and the framerate has increased again. glxgears went from 190 to 240 :). With quake2 and quake3 the Xserver locks up before anything is drawn. I can kill the X-server with the secure access sysrq key so the kernel is still responding. I get the following messages in my kernel log: May 18 14:40:43 viking kernel: [drm] Setting FIFO size to 128 entries May 18 14:40:43 viking kernel: [drm] Creating pci pool May 18 14:40:43 viking kernel: [drm] Allocating descriptor table memory May 18 14:40:43 viking kernel: [drm] descriptor table: cpu addr: 0xc06ac000, bus addr: 0x006ac000 May 18 14:40:43 viking kernel: [drm] Starting DMA test... May 18 14:40:43 viking kernel: [drm] starting DMA transfer... May 18 14:40:43 viking kernel: [drm] waiting for idle... May 18 14:40:43 viking kernel: [drm] waiting for idle...done May 18 14:40:43 viking kernel: [drm] DMA test succeeded, using asynchronous DMA mode May 18 14:41:47 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:47 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:48 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:48 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:49 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:49 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:50 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:50 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:51 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:51 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:52 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:52 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:53 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:53 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:54 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:54 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:55 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:55 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:56 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:56 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:57 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:57 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed May 18 14:41:57 viking kernel: SysRq : SAK May 18 14:41:57 viking last message repeated 9 times May 18 14:41:57 viking kernel: [drm] mach64_do_wait_for_idle failed! GUI_STAT=0x02000001 May 18 14:41:57 viking kernel: [drm:mach64_do_dma_idle] *ERROR* mach64_do_dma_idle failed Both quake2 and quake3 switch the video mode. Before this used to work even though switching the mode with Ctrl+Alt+"+/-" locked up the X-server. I tried quake2 without fullscreen and it worked. Maybe this behaviour changed with asynchronous DMA? For this test I compiled everything with gcc-2.95.4. I had a different problem after compiling with gcc-3.0. I have to try that again and check for compile errors. The problem was that the X server segfaulted on startup. I'll report more details later. Regards, Felix On Sat, 18 May 2002 05:33:40 -0400 (EDT) Leif Delgass <lde...@re...> wrote: > OK, I finally committed my changes thus far as a checkpoint. I'm reading > BM_GUI_TABLE in the dispatch routine to see when we hit the hardware > pointer and wait once we reach it. So the dispatch is treating the > descriptor table as a ring, and it helps. There's still lots of places to > optimize and probably a fair amount of cruft and bugs lurking, but I > wanted to get this into cvs while things are working. :) One of the main > problems is context switches with the X server. Right now I have a wait > for idle followed by saving the pattern registers (used for buffer aging) > in EnterServer (atidri.c). I'm only restoring the registers if the X > server changes them, but the engine must be idle before they can be > stored. We really need to figure out how to do this better, because > things slow down whenever you move the mouse now. This might be a good > time to look into getting sync working with 2D accel as well, since we'll > need to verify that the solution will work with XAA. > > AGP texturing is working, but the algorithm needs work. The trick is that > for multitexturing, both textures need to be in either card local or AGP > memory. > > I can go into more detail about these changes at Monday's meeting, but > I'll be away for a couple of days and I wanted to get this checked in and > post a quick message for now... > > -- > Leif Delgass > http://www.retinalburn.net > > > _______________________________________________________________ > Hundreds of nodes, one monster rendering program. > Now that's a super model! Visit http://clustering.foundries.sf.net/ > > _______________________________________________ > Dri-devel mailing list > Dri...@li... > https://lists.sourceforge.net/lists/listinfo/dri-devel > > __\|/__ ___ ___ ___ __Tschüß_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___ _____Felix_______\Ä/\ \_____\ \_____\ \______U___just not everything____ fx...@gm... >o<__/ \___/ \___/ at the same time! |