Christoph Bumiller
2009-Oct-14 21:30 UTC
[Nouveau] [PATCH] nv50/gallium: submit user vbufs through the fifo
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 --------------
Reasonably Related Threads
- [PATCH 3/7] nv50: submit user vbo data through the fifo
- [PATCH] nv50/gallium: use SIFC to upload to TIC/TSC
- [LLVMdev] Proposal for GSoC project for improving llvm-test testsuite
- [Bug 46956] New: Selecting 2xAntiAliasing causes Nexuiz to crash "X Error: BadMatch, failed request (X_CreateWindow)"
- [PATCH 1/7] nv50: use SIFC for TIC, TSC upload