glDeleteBuffers mais lento que glBufferData

Estou tendo um problema de desempenho no meu jogo iOS / Android, onde vários VBOs precisam ser atualizados de vez em quando. Depois de fazer o perfil do meu jogo, verifica-se que glDeleteBuffers () leva até 7ms por atualização do VBO. Isso, claro, resulta em um soluço quando os quadros normalmente levam apenas 4 ms para renderizar.

Aqui está a parte em que atualizo meu 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);
}

onde offset é uma variável de instância é basicamente o tamanho do novo VBO, que é bastante variável. vboID fala por si mesmo, eu acho;)

questionAnswers(1)

yourAnswerToTheQuestion