Derzeit profiliere ich mein iOS. Alle Aufrufe von glDrawArrays sind teuer. Hier ist zum Beispiel ein Screenshot des Rendering-Teils eines Partikelsystems:

Wie Sie sehen können, nimmt der glDrawArraysAufruf von dieser Methode 39% der CPU-Zeit in Anspruch. Während andere Anrufe mögen glUniform1iund glBindVertexArrayOESsehr schnell sind. Warum ist nicht glDrawArraysso schnell wie die anderen? Beginnen nicht alle diese Methoden mit gl***kurzen Funktionen, die der Treiberwarteschlange einen Befehl hinzufügen? Warum dauert es glDrawArraysim Vergleich zu allen anderen gl-Anrufen länger, bis ein Anruf zur Warteschlange hinzugefügt wird?
Ist das normal oder bedeutet das, dass ich etwas falsch mache?
Als Antwort auf Doug : Nein, das hat nicht funktioniert. Der Aufruf von glFinish () hat tatsächlich eine Weile gedauert, aber der glDrawArraysAufruf nimmt im Vergleich zu den Statusänderungen (wie) immer noch viel Zeit in Anspruch glBindVertexArrayOES.
