Quote Originally Posted by twippe View Post
The gpu I am testing on is Adreno 320 (it supports GLES 3 but I am targeting lower devices so I use on GLES 2), I've just looked into related resources (https://developer.qualcomm.com/softw...-gpu-sdk/tools), did not found annything relevant
Check out:

* Qualcomm Adreno OpenGL ES Developer Guide (May 1, 2015)

and search for references to "vertex buffer object" and "buffer object" in general.

Here's an interesting snippet:

Quote Originally Posted by Adreno OpenGL ES Developer Guide
9.1.23 Optimize vertex buffer object updates

If needing to modify Vertex Buffer Object contents on-the-fly when rendering a frame, be sure to
batch all the VBO updates (glBufferSubData calls) before issuing any draw calls that use the
modified VBO region. If using multiple VBOs, batch the updates for all the VBOs first, and then
issue all the draw calls.
Failure to follow these recommendations can cause the driver to maintain multiple copies of an
entire VBO, which results in reduced performance.
So in this case (BufferSubData) it sounds like they're saying that instead of implicit synchronization (draw thread blocks), they're going to ghost the buffer object (aka resource renaming) if the buffer object is referenced by a draw call still in-flight.