[Nouveau] [PATCH] nv50/gallium: submit user vbufs through the fifo

Christoph Bumiller e0425955 at student.tuwien.ac.at
Wed Oct 14 14:30:42 PDT 2009


Mesa sometimes hands us large user buffers where only a few vertices 
are read from
in the drawing calls before they change again.

In such cases, allocating a new buffer from the kernel and copying all 
the data takes much too long, so this patch uses NV50TCL_VERTEX_DATA to 
push vertices on
the FIFO, which speeds up e.g. nexuiz quite a lot.

Additionally it gets rid of the issue that the card uses garbage as 
vertex data, which is probably an issue we should still investigate 
further.
Maybe using memcpy to upload data doesn't invalidate caches on the GPU 
side or doesn't make it wait for the data - uploading stuff with SIFC 
instead of memcpy helps there, but it's still a lot slower than using 
VERTEX_DATA since we'd upload everything.

The blob does it the same way for drawing with 
glVertex/Color/AttribArray(user space pointer) (except it converts 
everything to float).

Maybe someone wants to comment on the implementation here, though.

-------------- next part --------------



More information about the Nouveau mailing list