glDeleteBuffers más lento que glBufferData

Tengo un pequeño problema de rendimiento en mi juego de iOS / Android, en el que varios VBO deben actualizarse de vez en cuando. Después de perfilar mi juego, resulta que glDeleteBuffers () toma hasta 7 ms por actualización de VBO. Por supuesto, esto resulta en un problema cuando las tramas normalmente toman solo 4 ms en renderizarse.

Aquí está la parte donde actualizo mi VBO:

Chunk* chunk;
pthread_join(constructionThread, (void**)&chunk);
building = false;

if (vboID)
{
    //takes 7 milliseconds
    glDeleteBuffers(1, &vboID); 
    vboID = 0;
}
if (offset)
{
    glGenBuffers(1, &vboID);
    glBindBuffer(GL_ARRAY_BUFFER, vboID);

    //takes about 1-2 milliseconds, which is acceptable
    glBufferData(GL_ARRAY_BUFFER, offset * 4, constructionBuffer, GL_STATIC_DRAW);
}

donde offset es una variable de instancia es básicamente el tamaño del nuevo VBO, que es bastante variable. vboid habla por sí mismo, supongo;)

Respuestas a la pregunta(1)

Su respuesta a la pregunta