On Tuesday 19 March 2002 10:31, you wrote:

> yes, i compiled and installed it yesterday,
> no problems compiling or anything, but am still having some problems.

> all the gl demos i try only shows the first
> frame(except one, Mesaimage which works ok, but it doesn't really do
> anyhing except show a pixmap i think), then it locks up hard and i have to
> reset the computer. The first frame looks great though =)

Yep. I feared that, I just had chance to test the code on my notebook, so I 
hardcoded some timeout value. Everything we need to dig out the problem is in 
s3v_dma.c, so try things in this order (just one at a time...)

* solution a) increase S3V_UDELAY to 1000 (1 is safe on Virge/MX, not so sure 
on DX, VX, etc.). Recompile and try.

* solution b) we have a task queud in the timer task queue [s3v_dma_task], 
which function is s3v_dma_check. In this function we issue a reset after we 
have checked DMA buffer reading completion for 40 times. To see how many 
times is (in average) taking on your machine, comment out the s3v_do_reset 
after the line "if (times>40) {". Then uncomment printk(KERN_ERR "*** buf 
completed after %i... ... ...
Now run a program (it should not lock this time [it it does try in 
conjunction with solution a]) and check the values printed: look for the 
highest of the values (especially when running games like tuxracer or 
quake2), and substitute it to the '40' I have hardcoded. The lower the value 
the better the feeling.

*** The point is that sometimes Virge DMA engine stalls and you would have to 
*** wait for ever for buffer completion, it will stop somewhere in the middle 
*** of a buffer and won't go on until you reset. Maybe there is a better *** 
*** solution for that. Any suggestion is welcome ; )

pseudo-soultion c) turn on S3V_DEBUG and send be the debug, so I will try to 
find a best solution.

Note: if your machine is locking hard, it could be necessary to add an 
udelay(1000) after printk in S3v_DEBUG, so we have some chance debug is being 
written before lock happens. Good luck.

> only thing in the log is 'and !s3v_dma_is_ready: -BAD-'
> but that doesn't seem to affect anything, as it is also shown when i run
> glxinfo.

That is normal. It just says that your DMA engine has been reset, when 
s3v_dma was not ready. This will always happen the first time (at least on my 
Virge/MX) since the write pointer of DMA is already a bit further of read 
pointer (or viceversa?) [even if nothing has been written to card!], so when 
you reset the pointer for the first time the code will just warn you, that 
you issued a reset cmd when card was not ready (wp != rp).

> i attached some logs if that helps

Logs seem ok. Could you tell me give more infos on your machine? (2mb virge 
dx, + ...)

>> Linux 2.4.9-13smp

Are you running it on a SMP!? I am not sure my code is SMP-proof ; (
Could you try a more recent kernel? I am not a bleeding-edge geek, but I had 
some problem with my code too with linux-2.4.x (x>11). It runs fine with 
2.4.18.

>> Option "texbuffer_size" "16384"

If you are running demos with many texs, reserve a bit more memory to them.

If you are able to keep your so alive when running a gl app, could you please 
send me a copy of "cat /proc/dri/0/*" >& dri.log (while gl app is executing)

Vale,
- max


_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to