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)
