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 <[EMAIL PROTECTED]> 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
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/dri-devel
>
>
__\|/__ ___ ___ ___
__Tsch��_______\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_____Felix_______\�/\ \_____\ \_____\ \______U___just not everything____
[EMAIL PROTECTED] >o<__/ \___/ \___/ at the same time!
_______________________________________________________________
Hundreds of nodes, one monster rendering program.
Now that's a super model! Visit http://clustering.foundries.sf.net/
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel