[Mesa-dev] i965 GL_ARB_buffer_storage

Marek Olšák maraeo at gmail.com
Tue Mar 4 07:14:35 PST 2014


In my opinion, MAP_UNSYNCHRONIZED says that you don't have to sync,
which makes MAP_INVALIDATE_* useless, because the invalidate flags are
only useful for avoiding synchronization and you already know you
don't have to do it.

Marek

On Thu, Feb 27, 2014 at 11:52 PM, Eric Anholt <eric at anholt.net> 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".
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list