Daniel Phillips wrote:
On Wednesday 02 February 2005 14:06, Timothy Miller wrote:

There's one single DMA engine. It has a ring buffer control and a
queue for indirect requests. The indirect queue has priority over
ring buffer. It processes requests in the order it receives them. Requests amount to an address, length, and internal target.


Succinct description, and exactly what I'd imagined.

Some future, improved version needs to be able to handle interleaved texture and geometry DMA, otherwise the render pipeline will drain every time a texture loads.

Well, you do have a point that it might be good to suspend data movement so that more rendering can be done... but usually, you're not uploading textures so far in advance that you aren't going to have to wait on the upload anyhow. Furthermore, you'd often want to download something which you've just rendered to, necessitating a flush of the pipeline and no drawing until the download is done.


Yes, it's possible to schedule things more efficiently, and interleaving different operations would indeed help with that, but I'd guess that the majority of cases would have end up being sequential anyhow.

It won't be fun trying to make sure that you're not currently in the process of using a texture when you decide to swap it out. It's much simple just to wait for the pipeline to flush before doing memory management. And wait on the memory management before you do rendering again.
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to