2011-02-05 16 views
6

Mi chiedevo se si consiglia di eliminare tutte le chiamate opengl ridondanti.Effettuare chiamate OpenGL ridondanti

Per esempio, dovrei fare qualcosa di simile (avvolto in una funzione):

if(foobuffer != boundbuffer) { 
    glBindBuffer(GL_BAR_BUFFER, foobuffer); 
    boundbuffer = foobuffer; 
} 

O è il driver facendo automaticamente queste cose e questo è in realtà un ridondante reduntant-Check?

risposta

5

Probabilmente dovresti evitarlo. Here (in particolare 22.040, sarà necessario scorrere verso il basso la pagina poiché non vi è alcun ancoraggio per esso), si noti che le chiamate ridondanti sono in genere pratiche sbagliate anche se alcune implementazioni tentano di minimizzare l'impatto.

Strumenti come gDEBugger possono essere utilizzati per rintracciare dove si stanno effettuando chiamate ridondanti, anche se si è in una posizione in cui non si è sicuri di quanto si possa fare nel codice base.

3

Ho appena eliminato molte chiamate di questo tipo da un'applicazione Android, quindi posso dirti in prima persona che è importante su quella piattaforma (su quella specifica versione del sistema operativo e hardware). Ho aumentato il framerate di alcuni fps, direi un profitto del 5-10%.