From: Roland S. <sr...@vm...> - 2009-04-29 00:43:09
|
On 28.04.2009 19:46, martin krastev wrote: > Thank you, Roland, for the prompt reply. > > 'R200_DEBUG=fall' did not reveal any sw fallbacks, so my inital > assumption of a potential TCL such occuring appears to be wrong. On > the other hand, 'R200_DEBUG=all' showed something interesting. > 'R200_DEBUG=all' reports that the number of r200AllocDmaRegion() > invocations scales with the value of draw_iterations from the draw > snippet. > > Now, given that we are dealing with a single, supposedly static vertex > buffer here, i find this number-of-draws-proportial DMA handling quite > curious. What am i missing? Nothing... The problem is the driver isn't really supporting VBO. Those are pretty much fake, hence vertices have to be retransmitted. This has to do with the memory management (there is none). Should hopefully get better some day. I think though this is indeed the problem. I sort of forgot about this (and can't remember all the details), but R200 PCI indeed seemed to perform quite badly due to slow dma for some odd reason (so switching agp mode with a agp card doesn't make much of a difference, but as soon as you use pci gart it gets a large hit), in scenarios using lots of vertices. So those fake vbos aren't too bad with agp (though presumably it's not ideal neither) but really suboptimal with pci. A 10 times hit sounds huge, but I guess if you're really completely limited by vertex throughput it isn't out of the question. Roland |