[Mesa-dev] Restrictions on redefine_user_buffer()
Thomas Hellstrom
thellstrom at vmware.com
Thu Mar 10 23:11:01 PST 2011
On 03/11/2011 12:03 AM, Marek Olšák wrote:
> On Thu, Mar 10, 2011 at 11:45 PM, Thomas Hellstrom
> <thellstrom at vmware.com <mailto: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.
>
> Marek
Hi,
The problem I see is that we can't really use redefine_user_buffers()
for this unless we put a restriction on subsequent draw calls to not use
data outside the bounds given by redefine_user_buffers. I'm thinking in
terms of possible other users of that interface than the mesa state tracker.
I'll take a look into pipe_draw_info, though.
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110311/8e77bd91/attachment.htm>
More information about the mesa-dev
mailing list