Some things 3d drivers might want in a generic api:

memory management of arbitrary, hierarchical objects.  a driver will
want to allocate memory for framebuffer, texture, pixmap, cursor, etc. 
some of that memory will be AGP/dma'able, some of that memory will be on
the card, etc.

locking primitives, to ensure a working state on SMP machines, and also
for cards which need synchronized access to resources like MMIO region
and framebuffer.  also some sync is needed for cards w/ a video chip.

texture management.  synchronization, spilling from framebuffer -> AGP
memory, etc

userspace high-level geometry primitives which break down high-level
commands into lower-level triangle formation

Reply via email to