Hi Vladimir,

On Mon, 21 Feb 2005, John Clemens wrote:

give it a go on my fanless 9600se (RV350 AP).

How much memory do you have ? What kind of CPU and motherboard ?

Duron 1.8G, 256MB ddr, old(ish) via km266 motherboard in a shuttle sk41g. Gentoo. The card has 128Mb ram.


- glxinfo states r300 DRI is enabled. (AGP4x, NO-TCL)
- glxgears gives me about 250fps with drm debug=1, ~625fps without debug
 on.

should I be concerned that these fps are too low? others seem to be reporting around 1000..


- tuxracer runs ok at 640x480 fullscreen
- ice textures look psychadelicly blue
- at 1280x1024, (and somewhat at 800x600 windowed), i get these
errors:
[drm:radeon_cp_dispatch_swap] *ERROR* Engine timed out before swap buffer blit

...

The swap buffer blit is just a copy - for example a copy from back buffer to front buffer. Since the engine timed out before swap buffer blit it means that the commands before it were at fault. Which is puzzling as you point out that everything works in 640x480.

Just to elaborate: 640x480 runs fine. at 800x600 windowed, it plays fine, but if a scene gets more complicated i see some jerkyness.. i.e., the scene freezes for a second or two and then jumps ahead, and i get a few messages in the log. At 1280x1024, this happens all the time, so it appears the game is locked, and I get a stream of those messages in the log file. alt-F switching to the console works, and switching back i get about 2 seconds more of movement, and then soft-lock again (persumably because the card re-inits on VC switch). I can switch to the VC and kill it and all's fine. Judging from what you're saying, the card isn't locked, it just isn't able to draw a full scene before it times out.


Who is responsible for drawing to this buffer? r300, mesa or x? I just grabbed the CVS trees and did a make, I think mesa by default might be compiled with -O -g, would it be better to recomile it with just -O2?

I wonder whether the lockup detection logic is at fault - we simply wait a fixed amount of time for the engine to become idle.

Perhaps it would be better to actually monitor the CP engine progress, for example by looking for changes in current ring pointer (i.e. wait and check whether the value changed). If the ring pointer does not change declare a lockup.

What does everyone think ?

Seems reasonable. What's the downside if you if you swap a half-draw buffer to the fore and then start drawing a new one? tearing?


john.c

--
John Clemens                      http://www.deater.net/john
john at deater.net      "I Hate Quotes" -- Samuel L. Clemens


------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to