[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