So I'm looking through the AGP stuff, still learning...
and it seems that there's a whole lot of redundancy in the current API.

If I'm understanding the sequence properly, generally programs do the
following:
1. open /dev/agpgart
2. ioctl(ACQUIRE)
3. ioctl(INFO)     to determine amountof memory for AGP
4. mmap the device
5. ioctl(SETUP)    to set the AGP mode
6. ioctl(ALLOCATE) a chunk o memory, specifying offset in aperture
7. ioctl(BIND)     that same chunk o memory

The allocate and bind parts seem to be useless, since the program has
to call mmap() anyway [right?] 

Seems to me that programs could perfectly well just mmap the whole chunk of
memory at once and do what they like to it.
The agpgart driver could then automatically update the GATT table
(which I still havent fully figured out, admittedly)
The allocate and bind calls could just be implicitly done through the
mmap call.
What am I missing?

Just the "physical" address return, which could perfectly easily be done
through an agp_allocate() call that would otherwise do nothing, I think.
 ?


_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to