mentre eseguo alcuni test per un piccolo progetto per iPhone/iPad su cui sto lavorando, ho osservato che c'è una grande penalizzazione delle prestazioni della CPU nel disegnare wireframe usando glDrawElements con GL_LINES .glDrawElements con GL_LINES forza gleRunVertexSubmitARM? (o: perché il disegno di wireframe è lento su iOS?)
È lo scenario:
- un modello con 640 vertici (4 galleggianti per posizione, 3 carri per normali, senza problemi di allineamento ... tutti su 4 byte frontiere)
- 3840 indici (unsigned short)
- sia vertici e indici usano VBOs (senza VAO)
- modello sopra disegnata con glDrawElements con GL_TRIANGLES funziona bene
Poi:
- stesso modello con 640 vertici
- 2560 indicizza
- VBOs e non VAO
- disegnato con glDrawElements con GL_LINES innesca continue chiamate a gleRunVertexSubmitARM, l'utilizzo della CPU cielo razzi ...
In entrambi i casi i modelli guardano come previsto e senza glErrors intorno ...
Sembra che il problema dipenda dal dispositivo. Lo trovo su un iPhone 3GS e iPhone 4, NON su un iPad 2 né sui simulatori. Su una CPU frame-time iPad 2 = 1ms e nessuna chiamata a gleRunVertexSubmitARM, su una CPU frame-time iPhone 4 = 12ms e chiamate continue a gleRunVertexSubmitARM.
Qualcuno può spiegare questo comportamento o indicare quali errori potrei fare?
Qualsiasi intuizione è molto apprezzata. Grazie in anticipo,
Francesco