On Mon, 2011-01-31 at 11:48 -0800, Christoph Bumiller wrote: > On 31.01.2011 19:46, Marek Olšák wrote: > > With this manager, the drivers don't have to deal with user buffers when > > they are bound as vertex buffers. They only get real hardware buffers. > > Please do *not* take away my user buffers and put user vertex arrays at the > mercy of a state tracker ! > In the DrawArrays case I usually use util/translate and interleave them > letting it write directly into my command buffer for immediate mode vertex > data submission.
Christoph, Is there any reason for not wanting to the same optimization for non-user buffers? If the buffers are small and used only once, wouldn't you still want to write them directly into the command buffer? Because eliminating user buffers does not imply eliminating these optimization opportunities -- the driver can still know how big a buffer is, and the state tracker can set a flag such as PIPE_USAGE_ONCE to help the pipe driver figure out this is a fire and forget buffer. Perhaps we can have a PIPE_CAP for distinguishing the drivers that can inline small buffers, vs those who can and prefer them batched up in big vbos. And lets not forget the user arrays are a deprecated feature of GL. Applications will have to create a vbo even if all they wanna do is a draw a textured quad, therefore small vbos are worthwhile to optimize regardless. I'm not saying we must get rid of user buffers now, but I can't help feeling that it is odd that while recent versions of GL/DX APIs are eliminating index/vertex buffers in user memory, Gallium is optimizing for them... Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev