artykuły

FCAT, czyli Frame Capture Analysis Tool. Narzędzie do bezbłędnego mierzenia wydajności kart graficznych i procesorów

FRAPS? Od dzisiaj do testów kart graficznych i procesorów tylko FCAT!

314
25 stycznia 2014, 08:08 Łukasz Marek

„CrossFire? Naprawimy to!”

Pewnie zauważyliście, że obok nazwy CrossFire na wykresach i w tytułach stron widnieją dwie tajemnicze litery FP. Chodzi o funkcję Frame Pacing, ale żeby wszystko stało się jasne, musimy cofnąć się o rok.

Pierwsze pogłoski o metodzie FCAT pojawiły się w internecie na przełomie stycznia i lutego ubiegłego roku. Nie było wiadomo wiele oprócz tego, że jest to zupełnie nowa metoda pomiarów, która pozwoli w całkowicie odmienny sposób spojrzeć na suche wyniki przedstawiające średnią liczbę klatek na sekundę w grach. Wykresy zamieszczone na kilku poprzednich stronach pozwalają z całą pewnością stwierdzić, że sama liczba klatek na sekundę mówi niewiele, a bez dodatkowych informacji w postaci czasu renderowania kolejnych klatek oraz danych o tym, co faktycznie pojawiło się na ekranie, nie można oceniać poszczególnych kart graficznych czy konfiguracji multi-GPU. Pod koniec marca kilka zagranicznych witryn piszących o sprzęcie komputerowym po raz pierwszy zaprezentowało metodę FCAT, jednocześnie przyznając, że zrobiono to z dużą pomocą Nvidii. Inżynierowie z Santa Clara wraz z dziennikarzami wiedzieli, że AMD ma bardzo poważne problemy z renderowaniem klatek w różnych odstępach czasu, ale wcześniej nie było żadnej obiektywnej możliwości udowodnienia tego.

Aż pojawił się FCAT i zobaczyliśmy wykresy podobne do tego:


Kliknij, aby powiększyć

Ten rezultat uzyskaliśmy z użyciem dwóch Radeonów R9 280X, symulując działanie sterowników AMD właśnie z marca 2013 roku przez wyłączenie funkcji Frame Pacing. Dokładnie tak wyglądały wykresy na stronach wszystkich wortali, które w owym czasie miały możliwość przetestowania metody FCAT.

Reakcja AMD

Po tych pierwszych artykułach dotarło do nas dodatkowo kilka ciekawostek – nie wprost od AMD, ale pośrednio przez różnych dziennikarzy. W witrynie Anandtech pojawił się obszerny artykuł na temat tego, co AMD ma do powiedzenia w sprawie mikrozacięć generowanych przez karty graficzne tej marki (nawet wtedy, gdy w komputerze działa pojedyncza!). I okazało się, że...

...firma AMD w ogóle nie wiedziała, że ma problem z mikrozacięciami. Trochę rozjaśnimy: inżynierowie AMD wiedzieli, że klatki na sekundę nie są wyświetlane przez ich GPU w odpowiednich odstępach czasu, ale jednocześnie błędnie założyli, że konkurencja ma ten sam problem i nie da się tego naprawić, ponieważ mikrozacięcia zależne są między innymi od programu czy systemu. 

Problem w tym, że to była pomyłka na dwóch frontach. Nvidia przyznała po początkowych testach FCAT-em, że już dawno stosuje w swoich kartach graficznych rozwiązanie sprzętowe przeznaczone do eliminowania mikrozacięć (na tyle, na ile to możliwe). Oficjalnie dowiedzieliśmy się od przedstawiciela firmy, że:

Frame metering has been an integral part of NVIDIA GeForce GPUs for generations, previously FRAPs was unable to fully show frame rendering and this is why FCAT was introduced – to give a true representation of gameplay. Thanks to FCAT our competition have now begun playing closer attention to frame rendering and this is of benefit to all gamers.

To między innymi dlatego Nvidia wykonała bardzo dużą część pracy przy metodzie FCAT: firma wiedziała, że uporała się z problemem na odpowiednim poziomie już wcześniej, a konkurencja nabija puste klatki na sekundę w benchmarkach, które nie mają pełnego wglądu w to, co się dzieje z poszczególnymi klatkami obrazu w trakcie całego potoku renderującego – aż do wyświetlenia na ekranie monitora.

AMD praktycznie już w momencie, gdy pojawiły się pierwsze wyniki testów wykonanych przy użyciu metody FCAT, rozpoczęło pracę nad nowymi sterownikami, które miały zawierać funkcję Frame Pacing dla konfiguracji multi-GPU. To miało być lekarstwo na wszystkie problemy firmy związane z nierównym czasem renderowania poszczególnych klatek oraz masowym produkowaniem zbędnych, co wprawdzie pomaga osiągnąć wyższą średnią w pomiarach FRAPS-em, ale jak udowadnia FCAT, psuje ogólne wrażenie płynności gry.

Zapowiedziano zmiany, które wraz z nowymi sterownikami nadejdą, jak to określiło AMD, wkrótce.

Catalyst 13.8 beta 1 – pierwszy sterownik z funkcją Frame Pacing

Napisanie działającego sterownika Catalyst 13.8 beta 1 zajęło AMD prawie sześć miesięcy. Pierwsza wersja sterowników z funkcją Frame Pacing pojawiła się dopiero w sierpniu 2013 roku. To każe sądzić, że Nvidia wraz z garstką dziennikarzy zmusiła AMD za pomocą FCAT-a do intensywnej pracy nad sterownikami, a AMD nie miało odpowiednich mocy przerobowych. 

Początkowo AMD przyznało: działają tylko gry pisane pod DirectX w wersji 10 i 11. W grach napisanych pod DX9 oraz OpenGL Frame Pacing nie będzie działać.

Ten sam przekaz dostaliśmy w sprawie Eyefinity: w dowolnej konfiguracji Eyefinity funkcja Frame Pacing nie działała, a to właśnie w przypadku Eyefinity, czyli konfiguracji kilku monitorów, prawdopodobnie najbardziej przydałaby się dodatkowa moc właściwie funkcjonującego CrossFire.

Catalyst 13.12 – sytuacja na dzisiaj

Jak wygląda sytuacja dzisiaj? Od zapowiedzi poprawienia CrossFire minął prawie rok. Funkcja Frame Pacing jest, ale wciąż nie działa ani w grach DX9, ani OpenGL, ani tym bardziej w konfiguracjach Eyefinity. Na zagranicznych forach, na których nie brakuje posiadaczy konfiguracji multi-GPU i wielomonitorowych, widać, że bardzo duża część użytkowników ma żal do AMD za to, że zwyczajnie pozostawiło ich na lodzie. 

Na następnej stronie przedstawiamy wyniki uzyskane przy włączonej i wyłączonej funkcji Frame Pacing, czyli co AMD serwowało w konfiguracjach CrossFire przez dobrych kilka lat, zanim FCAT wskazał, gdzie jest błąd.

Catalyst 14.1 – przyszłość

Warto wspomnieć, że na przełomie stycznia i lutego mają się pojawić kolejne sterowniki AMD, Catalyst 14.1 beta, które wprowadzą obsługę Frame Pacing w konfiguracjach Eyefinity oraz Dual Graphics (połączenie APU z zewnętrzną kartą graficzną). Wtedy możecie się spodziewać dalszych artykułów ;)

13