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 <e...@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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev