Ho cercato di eseguire alcune ottimizzazioni delle prestazioni di OpenGL ES nel tentativo di aumentare il numero di triangoli al secondo che sono in grado di eseguire il rendering nella mia applicazione iPhone, ma ho colpito un muro di mattoni. Ho provato a convertire i miei tipi di dati OpenGL ES da fisso a virgola mobile (per Apple's recommendation), intercalando i miei oggetti buffer vertici e riducendo al minimo le modifiche in stato di disegno, ma nessuna di queste modifiche ha fatto la differenza nella velocità di rendering. Non importa cosa, non riesco a spingere la mia applicazione oltre 320.000 triangoli/s su un iPhone 3G con sistema operativo 3.0. Secondo this benchmark, dovrei riuscire a colpire 687.000 triangoli/s su questo hardware con l'ombreggiatura uniforme che sto usando.Che cosa significa la statistica di Tiler Utilization nello strumento iPhone OpenGL ES?
Nei miei test, quando eseguo lo strumento di performance OpenGL ES in Strumenti contro il dispositivo in esecuzione, vedo la statistica "Utilizzo del piastrellista" che raggiunge quasi il 100% quando si esegue il rendering del mio benchmark, tuttavia "Utilità di rendering" è solo arrivare a circa il 30%. Questo potrebbe fornire un indizio su quale sia il collo di bottiglia nel processo di visualizzazione, ma non so cosa significano questi valori e non ho trovato alcuna documentazione su di essi. Qualcuno ha una buona descrizione di cosa significano questa e le altre statistiche nello strumento per iPhone OpenGL ES? So che PowerVR MBX Lite nell'iPhone 3G è un tile-based deferred renderer, ma non sono sicuro di quale sarebbe la differenza tra Renderer e Tiler in quell'architettura.
Se aiuta in qualche modo, il codice sorgente (con licenza BSD) a questa applicazione is available se si desidera scaricarlo e testarlo da soli. Nella configurazione corrente, avvia un piccolo benchmark ogni volta che carichi una nuova struttura molecolare e genera i triangoli/s sulla console.
Quanto sono grandi i triangoli? Penso che una di queste statistiche sia più su # di pixel, e l'altra su # di triangoli. i numeri di utilizzo relativi cambiano se si riduce lo zoom in modo che lo schermo sia meno pieno? –
Varia, a seconda del modello che carico, ma tende ad essere piuttosto piccolo. Non importa il livello di zoom sul modello, i numeri sembrano rimanere gli stessi. Inoltre, ho provato a ridurre le dimensioni della vista OpenGL a metà di ciò che è ora, senza alcun effetto, il che sembrava escludere una limitazione della velocità di riempimento. –