Was bedeutet die Tiler-Nutzungsstatistik im iPhone OpenGL ES-Instrument?
Ich habe versucht, einige OpenGL ES-Leistungsoptimierungen durchzuführen, um die Anzahl der Dreiecke pro Sekunde zu erhöhen, die ich in meiner iPhone-Anwendung rendern kann, aber ich bin auf eine Mauer gestoßen. Ich habe versucht, meine OpenGL ES - Datentypen von Festkomma in Gleitkomma umzuwandeln (perApples Empfehlung), Verschachteln meiner Vertex-Pufferobjekte und Minimieren von Änderungen im Zeichnungsstatus, aber keine dieser Änderungen hat die Rendergeschwindigkeit verändert. Egal was passiert, ich kann meine Anwendung auf einem iPhone 3G mit dem Betriebssystem 3.0 scheinbar nicht auf über 320.000 Dreiecke / s bringen. Gemäßdieser BenchmarkIch sollte in der Lage sein, mit der von mir verwendeten glatten Schattierung 687.000 Dreiecke / s auf dieser Hardware zu erreichen.
Wenn ich in meinen Tests das OpenGL ES-Leistungstool in Instruments auf dem ausgeführten Gerät ausführe, wird beim Rendern meines Benchmarks die Statistik "Tiler-Auslastung" auf nahezu 100% gesetzt, während die "Renderer-Auslastung" nur etwa 30 beträgt %. Dies kann einen Hinweis darauf geben, was der Engpass im Anzeigeprozess ist, aber ich weiß nicht, was diese Werte bedeuten, und ich habe keine Dokumentation dazu gefunden. Hat jemand eine gute Beschreibung, wofür diese und die anderen Statistiken im iPhone OpenGL ES-Instrument stehen? Ich weiß, dass der PowerVR MBX Lite im iPhone 3G einkachelbasierter verzögerter Renderer, aber ich bin nicht sicher, was der Unterschied zwischen dem Renderer und dem Tiler in dieser Architektur sein würde.
Wenn es in irgendeiner Weise hilft, den (BSD-lizenzierten) Quellcode für diese Anwendungist verfügbar wenn Sie es selbst herunterladen und testen möchten. In der aktuellen Konfiguration wird jedes Mal, wenn Sie eine neue Molekülstruktur laden, ein kleiner Benchmark gestartet und die Dreiecke / n an die Konsole ausgegeben.