On Thu, 17 Mar 2005 18:50:50 -0500
Daniel Phillips <[EMAIL PROTECTED]> wrote:

> Just for reference, how about describing the mga approach here?

It uses always indirect DMA for all commands.

a DMA transfere looks like this:
(Disclaimer: i do not fully understand how the matrox DMA
system works. I'm quite sure i missed quite a lot of it)

* Set up secondary DMA transfere buffer.
* Set up primary DMA buffer to read from the secondary buffer(s).
* Write PRIMEND (end of primary buffer) to start transfere.

The data written in the primary DMA buffer are 
register + value pairs which will be loaded into the GPU
and then trigger further processing (eg running a 2 stage
DMA). 
The thing that makes it ugly for me is, that every transefer
is based either on whole lines or whole pixel. This has the
disadvantage that if my user space program has a picture to
draw, that i needs to be split at line ends and that the
lines are may not cross page boundaries under any circumstances
unless the pages are continous.

For more information, please have a look at
http://attila.kinali.ch/mga_dma-Ville_Syrjala.tar.bz2
which is a kernel module written by Ville SyrjÃlà ([EMAIL PROTECTED])
to test the DMA capabilities of matrox cards.

                                Attila Kinali
-- 
éãåããéãåã
_______________________________________________
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