[Mesa-dev] i965 GL_ARB_buffer_storage
Kenneth Graunke
kenneth at whitecape.org
Thu Mar 13 21:23:49 PDT 2014
On 02/27/2014 02:52 PM, Eric Anholt wrote:
> One thing I noticed while working on this was that we only reallocate buffer
> storage for INVALIDATE_BUFFER_BIT when UNSYNCHRONIZED_BIT is unset. The
> ARB_mbr spec says that the contents "may be discarded", not "must be
> discarded". However, while writing the glamor code I happened to type this
> for the wraparound case:
>
> glamor_priv->vb = glMapBufferRange(GL_ARRAY_BUFFER,
> 0, size,
> GL_MAP_WRITE_BIT |
> GL_MAP_INVALIDATE_BUFFER_BIT |
> GL_MAP_UNSYNCHRONIZED_BIT |
> GL_MAP_PERSISTENT_BIT |
> GL_MAP_COHERENT_BIT);
>
> intending that the buffer storage get reallocated, and that we not worry about
> any synchronization after that. My code would have been broken on the i965
> driver. I'm wondering if this is the intended behavior of the spec, or if we
> want to treat the "may" as a "must".
I don't understand. Your code here sets GL_MAP_INVALIDATE_BUFFER_BIT
and GL_MAP_UNSYNCHRONIZED_BIT, which would have reallocated the storage,
as you intended. Was this a mispaste - you originally lacked the
GL_MAP_UNSYNCHRONIZED_BIT, were surprised, and eventually added it?
I've had several branches to throw out the storage when
GL_MAP_INVALIDATE_BUFFER_BIT was present, regardless of whether
UNSYNCHRONIZED_BIT was set. I think it's a great idea. I just couldn't
find any applications that hit that case, so I couldn't demonstrate an
improvement.
Of course, as Jose pointed out, there's no point in reallocating the
storage if it isn't busy.
--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140313/33897538/attachment.pgp>
More information about the mesa-dev
mailing list