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