Ich habe auf meine GearVR App Performance-Probleme (bezogen auf Unity entwickelt 5.4), so habe ich beschlossen, ein kleines Experiment zu tun, und die möglichst einfache Szene einrichten Leistung zu studieren:Leistungsproblem auf GearVR/Unity
- Eine statische Ebene
- Eine statische Würfel
- Beide mit dem gleichen Material mobile unbeleuchteten Shader mit 8X8 unicolor Textur
- Ein gebackenes gerichtetes Licht
- Standard schnellste Qualitätseinstellungen
- Standard-Player-Einstellungen für VR speichern aktiviert und Multi-Threaded-Rendering aktiviert
Auf meinem PC, wenn ich am Profiler ich das folgende Profil erhalten aussehen:
über das, was Sie würde erwarten: nahe 4000 FPS.
Jedoch, wenn ich meine genau die gleiche Szene zu bauen und es auf meinem Galaxy S6 (mit ETC2 GLES 3.0 Texturkomprimierung) laufen lasse, erhalte ich dieses Profil:
Es ist nun nach unten über 60FPS zu gegangen ist. WTF? Wenn ich ein bisschen mehr in die Details aussehen sehe ich, dass die überwiegende Mehrheit der CPU-Auslastung Zeit für die GPU verbringt warten:
Und dann, wenn ich auf der GPU Nutzung aussehen sehe ich, dass es verbringt 99% seiner Zeit Anwendung GUITexture.draw:
Das Problem ist, ... es gibt keine freaking GUI Textur in meiner sehr einfachen Szene! Ich verstehe nichts davon. Könnte mir jemand erklären, was passiert und wie der extreme Leistungsunterschied zwischen PC und Handy reduziert werden kann?