[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