Co oznacza statystyka wykorzystania kafla w urządzeniu iPhone OpenGL ES?
Próbowałem przeprowadzić niektóre optymalizacje wydajności w OpenGL ES, próbując zwiększyć liczbę trójkątów na sekundę, które mogę renderować w aplikacji na iPhone'a, ale trafiłem na ścianę z cegieł. Próbowałem przekonwertować moje typy danych OpenGL ES z ustalonego na zmiennoprzecinkowy (naZalecenie Apple), przeplatanie moich obiektów bufora wierzchołków i minimalizowanie zmian w stanie rysowania, ale żadna z tych zmian nie zmieniła szybkości renderowania. Bez względu na wszystko, nie mogę wypchnąć mojej aplikacji powyżej 320 000 trójkątów / s na iPhone 3G z systemem operacyjnym 3.0. Wedługten punkt odniesienia, Powinienem być w stanie uzyskać 68 000 trójkątów / s na tym sprzęcie przy użyciu gładkiego cieniowania, którego używam.
W moim teście, kiedy uruchamiam narzędzie wydajności OpenGL ES w Instruments przeciwko działającemu urządzeniu, widzę statystykę „Tiler Utilization” osiągającą prawie 100% podczas renderowania mojego benchmarku, jednak „Renderer Utilization” osiąga tylko około 30% %. Może to być wskazówką co do wąskiego gardła w procesie wyświetlania, ale nie wiem, co oznaczają te wartości i nie znalazłem na nich żadnej dokumentacji. Czy ktoś ma dobry opis tego, co oznaczają te i inne statystyki w instrumencie iPhone OpenGL ES? Wiem, że PowerVR MBX Lite w iPhone 3G toodroczony renderer oparty na kafelkach, ale nie jestem pewien, jaka byłaby różnica między Rendererem a Glazurnikiem w tej architekturze.
Jeśli to w jakikolwiek sposób pomaga, kod źródłowy (licencjonowany przez BSD) do tej aplikacjijest dostępny jeśli chcesz pobrać i przetestować go samodzielnie. W obecnej konfiguracji uruchamia on mały benchmark za każdym razem, gdy ładujesz nową strukturę molekularną i wysyła trójkąty / s do konsoli.