[Mesa-dev] [PATCH] r600g: Various patches
Mathias Fröhlich
Mathias.Froehlich at gmx.net
Sun Jun 12 23:41:19 PDT 2011
Good Morning,
On Monday, June 13, 2011 00:39:51 Marek Olšák wrote:
> 2011/6/12 Mathias Fröhlich <Mathias.Froehlich at gmx.net>:
> > There is the implementation of glBufferData which detaches itself from
> > the underlying pipe_resource by unreferencing the old one and creating a
> > new one.
>
> I was looking into this issue and realized glBufferData is a special
> case, it adds the _NEW_BUFFER_OBJECT flag to dirty states, so we can
> check for it and rebind vertex arrays accordingly in that particular
> context. This approach may still fail with multiple contexts, because
> AFAIK the other contexts won't get that flag.
Well, that kind of dirtying is what I expected to happen for this higher level
case.
For the multiple context case, I wonder what is exactly guaranteeed by the
API.
May be it is sufficient to set the _NEW_BUFFER_OBJECT flag on every current
context change to be safe? At least for context changes where bo's could be
shared...
And for the mutiple thread case where a shared buffer object is shared between
multiple context just active in their own threads, may be the API OpenGL
guarantee is sufficiently sloppy to see the the new data in an other thread
somehow later?
Does anybody know the exact details of the standard what needs to happen in
this case?
Greetings
Mathias
More information about the mesa-dev
mailing list