Gry i konsole
Artykuł
M. Brzostek, R. Stanisławski, Ł. Marek, Środa, 24 grudnia 2014, 23:44

Autorem tej strony oraz opisanej metody pomiaru jest Mateusz Brzostek.

Nowa metoda pomiaru

We wszystkich testach wydajności zastosujemy własną metodę pomiaru płynności animacji. Polega ona na nagrywaniu i analizie obrazu docierającego do wyświetlacza. Pomiar po stronie gracza, a nie systemu operacyjnego czy API graficznego, to jedyny dokładny i pewny sposób na przedstawienie płynności rozgrywki. To narzędzie tej samej klasy co używana przez nas w testach pecetowych kart graficznych metoda FCAT. W odróżnieniu od programów typu Fraps czy MSI Afterburner, które analizują jeden z początkowych etapów przygotowywania obrazu i mogą łatwo wprowadzić przekłamania, badamy końcowy etap procesu wyświetlania, ten sam, który widzi gracz. 

Jak to działa?

Po pierwsze, trzeba przechwycić obraz z konsoli lub peceta. Używamy do tego karty Datapath VisionDVI-DL zamontowanej w oddzielnym komputerze, przeznaczonym wyłącznie do nagrywania obrazu. Nieskompresowany, nieprzetworzony sygnał wideo jest zapisywany na szybkich nośnikach SSD.

W metodzie FCAT nagrywany obraz musi być odpowiednio przygotowany: na wyświetlającym grę komputerze uruchamia się program, który ingeruje w proces renderowania obrazu i oznacza każdą kolejną klatkę odpowiednim kolorem. Oczywiście, na konsolach nie da się uruchamiać własnego oprogramowania, niezaaprobowanego przez firmę kontrolującą daną platformę. Dlatego trzeba sobie poradzić bez kolorowych pasków z boku ekranu. Nasza metoda analizy obrazu jest bardziej skomplikowana od FCAT. Szczegóły na razie zachowamy dla siebie :)

Efektem analizy nagrania jest zapis czasów renderowania poszczególnych klatek (frametime) oraz chwilowej liczby klatek na sekundę. Frametime będziemy prezentować w formie „surowej”: każda zbyt długo renderowana klatka to wyraźny grzbiet na wykresie. Na wykresach przedstawiających liczbę klatek na sekundę czasem będziemy umieszczać chwilową wartość, a czasem średnią z półsekundowego fragmentu rozgrywki.

Weryfikacja

Działanie swojego narzędzia pomiarowego musieliśmy zweryfikować. Najprostszym sposobem było porównanie wyniku pomiaru do wyniku osiągniętego metodą FCAT. Zmierzyliśmy na oba sposoby wydajność w tym samym fragmencie rozgrywki w grze Far Cry 4. Poniżej zamieściliśmy zapis rozgrywki i wyniki pomiarów.

Uwaga: film należy oglądać w rozdzielczości 1920 × 1080 pikseli i w 60 kl./sek. (wybierz 1080p60 z menu ustawień jakości).

Far Cry 4 - FCAT
(Kliknij na nazwę testu w tabelce, aby otworzyć wykres)
klatki na sekundę frametime

 

Far Cry 4 - metoda PCLab.pl
(Kliknij na nazwę testu w tabelce, aby otworzyć wykres)
klatki na sekundę frametime

Nasza metoda daje wyniki identyczne z wynikami niezależnie zweryfikowanej metody FCAT.

Na pewno zauważyliście, że skala na wykresie z liczbą klatek na sekundę kończy się na 60. To nie przypadek. Ponieważ nie możemy użyć narzędzi ingerujących w potok renderowania i wstawiających kolorowe znaczniki kolejności klatek, nasza metoda nie pozwala uwzględnić klatek wyświetlanych w czasie krótszym niż 1/60 sek. Jeśli komputer lub konsola wyświetla więcej niż 60 kl./sek., możemy jedynie stwierdzić, że na pewno było ich 60 lub więcej, ale nie możemy określić, ile dokładnie. Dlatego skala wykresów będzie się kończyć na 60 kl./sek., co rzadko będzie problemem, bo większość konsolowych gier działa w 30 kl./sek. z synchronizacją pionową. Najbardziej interesującym nas scenariuszem jest ten, w którym konsola wyświetla mniej niż 30 kl./sek., a do takiego pomiaru nasza metoda nadaje się doskonale.

Czy rodzaj konsoli lub karty graficznej ma znaczenie?

Oczywiście, że nie. Dzięki analizie obrazu po stronie gracza oceniamy tak samo nowe i stare konsole, karty graficzne AMD i Nvidii. Co więcej, ponieważ nie ingerujemy w żaden sposób w oprogramowanie zainstalowane w urządzeniu, nie musimy mieć konkretnego API graficznego, sterownika, systemu operacyjnego. Gdyby pojawił się na rynku nowy interfejs programowania GPU, w którym podobnie jak w Mantle nie będą działały popularne narzędzia pomiarowe, nie będzie to problemem. Nie musimy mieć deweloperskiej wersji konsoli ani czekać na aktualizację Frapsa czy nakładacza kolorowych pasków – po prostu nagrywamy obraz, analizujemy nagranie i otrzymujemy wyniki.

Nasze programy narzędziowe oraz sama zasada pomiaru nie są związane z Microsoftem, Sony, AMD, Nvidią ani żadnym innym producentem sprzętu. Używamy napisanych przez siebie programów oraz bibliotek i narzędzi open source.

Czy zastąpimy tym narzędziem metodę FCAT?

FCAT ma dużą przewagę nad naszą metodą: ponieważ ingeruje w potok renderowania na mierzonym urządzeniu, poprawnie uwzględnia klatki, które wyświetlały się na ekranie przez bardzo krótki czas. Można mierzyć wydajność przekraczającą 60 kl./sek., można też dokładnie zanalizować regularność wyświetlania klatek przez konfiguracje multi-GPU. Nasza metoda jest uzupełnieniem FCAT, którą wykorzystamy tam, gdzie nie możemy ingerować w oprogramowanie na ocenianym systemie.

To ciągle prototyp

Dowiedliśmy już skuteczności i użyteczności nowej metody pomiaru. Choć jej wiarygodność i dokładność nie budzą wątpliwości, nie jesteśmy całkowicie zadowoleni z wygody testowania i ze sposobu prezentowania wyników. Uznajemy ją za nieporęczny, choć użyteczny prototyp. Wiele kroków procedury trzeba jeszcze wykonywać ręcznie, przez co pomiar płynności gry nie jest tak wygodny i szybki jak wtedy, gdy jest wykonywany Frapsem. Zamierzamy z czasem usprawnić swoje narzędzia, jak również sposób przedstawiania wyników w artykułach. Forma i styl wizualny wykresów mogą się zmienić; możemy też wprowadzić inne metryki niż klatki na sekundę i frametime, jeśli uznamy, że polepszy to czytelność i ułatwi zrozumienie informacji.

Pomiary powyżej 60 kl./sek.

AKTUALIZACJA z 5 stycznia 2015 r.

Jak zapowiadaliśmy, ciągle poszukujemy sposobów na udoskonalenie swojej autorskiej metody pomiaru płynności. Dzięki pewnemu ulepszeniu sprzętu rejestrującego od dziś możemy nagrywać wideo o prędkości 120 kl./s, co pozwoli nam zmierzyć wydajność w grach nawet wtedy, kiedy w ciągu sekundy wyświetla się więcej niż 60 klatek! Górnym limitem jest teraz 120 kl./s albo frametime na poziomie 8,3 ms.

Nagraliśmy krótki film, żeby pokazać nowe możliwości swoich narzędzi. Niestety, YouTube jeszcze nie umie wyświetlać wideo w 120 kl./sek., ale możecie pobrać 5-sekundową próbkę takiego nagrania z naszego dysku Google.

Uwaga: film należy oglądać w rozdzielczości 1920 × 1080 pikseli i w 60 kl./sek. (wybierz 1080p60 z menu ustawień jakości).

Duże wykresy, na których widać więcej szczegółów, możecie zobaczyć tutaj: FPS, frametime.

Co to oznacza?

Sposób mierzenia wydajności przy więcej niż 60 kl./sek. otwiera przed nami nowe możliwości. W grach pecetowych nierzadko w ciągu sekundy wyświetla się ich więcej. Jeśli taka gra wykorzystuje inne połączenie systemu operacyjnego z API niż Windows z DirectX, będziemy mogli bez problemu zmierzyć i porównać wydajność różnych maszyn.

To nie ostatnia aktualizacja naszej metody. Pracujemy nie tylko nad samą techniką pomiaru, ale też nad zwiększeniem czytelności wyników i tym, by móc je przedstawić na wideo.

Spis treści
Ocena artykułu:
Ocen: 97
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook
Ostatnio komentowane