[Mesa-dev] Restrictions on redefine_user_buffer()

Marek Olšák maraeo at gmail.com
Thu Mar 10 15:03:33 PST 2011

On Thu, Mar 10, 2011 at 11:45 PM, Thomas Hellstrom <thellstrom at vmware.com>wrote:

> Hi,
> I've been working a bit on optimizing uploads of non-vbo vertex arrays on
> the svga device.
> Since we have no knowledge of the vertex array size before a draw call and
> the vertex array may change values in between subsequent draw calls it's
> pretty pointless to upload the whole array to gpu memory. I basically want
> to upload only the vertices affected by each draw call.

This is the same optimization r300g and r600g already have.

> Here's where redefine_user_buffer() comes in, but to be able to use it for
> this optimization we must require that a subsequent draw call referencing
> the user buffer must not access any data outside [offset, offset+size-1]. A
> stronger restriction than the comment in the p_context.h header file.

The problem is we don't have any other info about user buffers in st/mesa
than the minimum and maximum index. We pass that info to both
redefine_user_buffer and draw_vbo. Whether you use redefine_user_buffer or
pipe_draw_info is up to you. The Radeon drivers chose the latter.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110311/fbed3ce7/attachment.htm>

More information about the mesa-dev mailing list