Hello, Please find a new version to handle invalid buffer handles.
Allow to handle this kind of case: genBuffer(&pbo); DeleteBuffer(pbo); BindBuffer(pbo) TexSubImage2D(user_memory_pointer); // Data transfer will be synchronous There are various subtely to handle multi threaded shared context. In order to keep the code sane, I've considered a buffer invalid when it is deleted by a context even it is still bound to others contexts. It will force a synchronous transfer which is always safe. Gregory Hainaut (3): mesa/glthread: track buffer creation/destruction mesa/glthread: add tracking of PBO binding mapi/glthread: generate asynchronous code for PBO transfer src/mapi/glapi/gen/ARB_direct_state_access.xml | 18 +-- src/mapi/glapi/gen/ARB_robustness.xml | 2 +- src/mapi/glapi/gen/gl_API.dtd | 10 +- src/mapi/glapi/gen/gl_API.xml | 32 +++--- src/mapi/glapi/gen/gl_marshal.py | 23 +++- src/mapi/glapi/gen/marshal_XML.py | 19 +++- src/mesa/main/glthread.h | 10 ++ src/mesa/main/marshal.c | 149 ++++++++++++++++++++++++- src/mesa/main/marshal.h | 24 ++++ src/mesa/main/mtypes.h | 5 + src/mesa/main/shared.c | 4 + 11 files changed, 257 insertions(+), 39 deletions(-) -- 2.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev