On 8/25/06, Jon Smirl <[EMAIL PROTECTED]> wrote:

That is going to be hard to program. GART memory is easy to use, just
ask the kernel for a chunk of it. It will appear to the app as
contiguous memory since the kernel GART driver will set up the page
tables in the app.

Will it appear contiguous to the GPU also?  If so, then good.

I was only offering to make scatter-gather simpler.

Now the app does something with it. The kernel graphics driver has to
turn the GART region address into internal GPU address space. But the
drivers are smart and mapped the GART region to the same address in
internal space as it is in GART space. So you just copy the address
into the GPU command. Worst case you add a fixed offset to it.

So, this translation is done for both CPU and GPU?

Nobody but the kernel GART driver had to deal with the pages being
scattered everywhere.

Cool.

You have to ask the kernel GART driver to allocate the RAM for you
since it needs to be marked non-pagable and non-cachable.  Normal app
memory is both pagable and cachable.

Access to this memory is not that bad since it has a MTRR set for
write combining. You mostly write to it and not read from it.

There will be some reads, now and then (for the shared pointers, for
instance), but they're rare.  In this case, we waste only hundreds of
cycles instead of thousands.  :)
_______________________________________________
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