Wszystko o FSR 3.0 Frame Generation, co chciałeś wiedzieć, ale bałeś się zapytać
AMD niemal rok temu zapowiedziało, że dostarczą odpowiedź na wtedy już dostępny DLSS 3.0 Frame Generation. Odpowiedzią tą miał być FSR 3.0 Frame Generation i w końcu się go doczekaliśmy – działa na każdej współczesnej karcie, więc sprawdziliśmy, jak się spisuje w praktyce.
Co to jest FSR 3.0 i jak działa?
Zacznijmy jednak od podstaw. W przeciwieństwie do technologii DLSS 3.0, którą można nazwać funkcją sprzętową (do pracy wykorzystuje dedykowane jednostki Tensor), zaprezentowany właśnie AMD FSR 3.0 jest w 100% funkcją softwearową i za jej wykonywanie odpowiadają zunifikowane jednostki cieniujące, w które wyposażone są nawet bardzo stare karty. Tutaj ujawnia się pierwsza i bardzo duża zaleta FSR 3.0 – będzie działać na niemal każdej jeszcze dziś działającej karcie (nadającej się do grania), podczas gdy DLSS 3.0 Frame Generation obecnie działa tylko na kartach z serii RTX 4000.
W listopadzie 2022 o FSR 3.0 dowiedzieliśmy się po raz pierwszy, po czym nastąpiła bardzo długa cisza po stronie AMD.
Schemat działania jest zasadniczo identyczny, co w odpowiedniku FSR 3.0 u NVIDII – sztuczka polega na wygenerowaniu przez kartę klatki obrazu pomiędzy tymi generowanymi natywnie przez silnik gry. Zatem po każdej klatce w pocie czoła wytworzonej przez jednostki cieniujące, następuje klatka stworzona już bez udziału samej gry. O tym, jak wygląda, decyduje karta graficzna na podstawie tego, co wie o klatce poprzedzającej i następującej (też tworzonej przez silnik gry). Aby całość przebiegała płynnie, to wyświetlanie klatek na monitor jest przesunięte w czasie, podczas gdy silnik generuje już kolejną klatkę. Dzięki temu, kiedy na ekran faktycznie trafia wcześniej wygenerowana klatka, sterownik ma już informacje o kolejnej i na podstawie zebranych tym sposobem dwóch klatek generuje obraz pośredni.
Zasada działania u podstaw jest identyczna, co w DLSS, choć wykonaniem zajmują się inne jednostki.
Automatycznie ta druga z realnie wygenerowanych klatek jest następnie używana w roli „pierwszej” przy tworzeniu kolejnej pośredniej klatki i tak w kółko. Największa różnica polega na wykorzystaniu do tego celu tych samych jednostek, które obliczają też te prawdziwe klatki, zatem można by się spodziewać, że FSR 3.0 znacznie bardziej wpłynie na bazową wydajność, choć tutaj od razu zdradzimy, że jest wprost przeciwnie.
FSR 3.0 nie sprawia, że gra działa szybciej, ale czyni animację płynniejszą – to istotna różnica
Upraszczając to zagadnienie już tak bardzo, jak to tylko możliwe – karta graficzna „domyśla się” (a w zasadzie to oblicza), jak powinna wyglądać klatka pomiędzy dwoma faktycznie wytworzonymi przez silnik gry i taką klatkę generuje, tym samym (w idealnych warunkach) efektywnie podwajając ilość wyświetlanych klatek w każdej sekundzie, co gracz postrzega jako dwukrotnie płynniejszą animację.
Jakość klatek generowanych przez FSR 3.0 – czy rdzenie Tensor robią to lepiej?
Skoro już wiemy, co się dzieje, to sprawdźmy, jaki jest efekt pracy modułu FSR 3 Async, odpowiedzialnego za generowanie klatek. Do testów posłużyła nam obecnie jedyna gra oficjalnie wspierająca obie techniki generowania klatek, czyli bardzo świeży tytuł Immortals of Aveum – przy okazji pierwsza duża gra wykorzystująca silnik Unreal Engine 5. Poniżej kilka przykładów porównania klatek wyciągniętych z nagrań (te są nieco niżej), co do których mamy pewność, że zostały wygenerowane przez akceleratory przepływu optycznego. Kluczowa uwaga – porównania dokonaliśmy łącząc obie techniki z upscalowaniem w trybie Jakość (odpowiednio DLSS Super Resolution i FSR 2.1).
Szybko poruszająca się ręka bohatera nie jest idealnie czyszczona przez FSR w klatce pośredniej, co na żywo wygląda jak lekki "powidok".
Różnice w działaniu obu technik występują i nie da się odmówić technice DLSS 3.0 Frame Generation ogólnie wyższej jakości generowanych klatek, przy czym jednocześnie różnice te są stanowczo zbyt małe, aby wyłapać je podczas realnej animacji gołym okiem. Obie techniki nie radzą sobie z ekstremalnie szybkim ruchem kamery (podczas którego i tak zasadniczo nie oczekujemy czegokolwiek sensownego widzieć na ekranie) oraz z nagłą zmianą kadru (choć tu ponownie potrzeba nadludzkiej spostrzegawczości, aby wychwycić tę jedną złą klatkę spośród 120 wyświetlanych na sekundę). W obu przypadkach wymagane jest również, aby przed aktywacją FG karta była w stanie dostarczyć przynajmniej 40-50 FSP (a najlepiej 60-80 FPS), ponieważ poniżej tej wartości różnice pomiędzy kolejnymi klatkami robią się już zbyt duże, aby algorytm skutecznie domyślał się klatki pośredniej.
FSR 3.0 gorzej radzi sobie z cieniami - to w sumie największa zaleta DLSS 3.0 Frame Generation, choć ponownie - w ruchu jest to ledwie widoczne.
Niemniej DLSS 3.0 Frame Generation ma obecnie (i to podkreślamy, zakładając, że taki stan rzeczy ulegnie zmianie w najbliższych miesiącach) jedną istotną przewagę nad FSR 3.0 Frame Generation – działa z każdym obrazem źródłowym, w znaczeniu, że klatki możemy dorabiać do renderingu poddanego nie tylko technice DLSS Super Resolution bądź DLAA, ale np. FSR 2.1 albo klasycznemu TAA . W tej kwestii FSR 3.0 FG ogranicza nas na ten moment do wykorzystywania FSR 2.1 Super Resolution, które z tej okazji doczekało się również trybu Native AA, który przetwarza obraz algorytmami FSR, biorąc za źródłową rozdzielczość naszego monitora (czyli podobnie, co wspomniane DLAA od NVIDII, tylko że nadal obarczone bolączkami samego mechanizmu AMD).
FSR 3.0 FG w Immortals of Aveum pozostawia znacznie bardziej widoczną poświatę za postaciami w ruchu, niż ma to miejsce z wykorzystaniem DLSS 3.0 FG.
Ostatnia, ale stanowczo nie najmniej istotna kwestia, która pozostaje, to interfejs w grze, który początkowo był bardzo źle traktowany przez generator klatek od NVIDII i dopiero od niedawna artefakty z nim związane są trudniej dostrzegalne (a w takim Immortals of Aveum zupełnie niewidoczne). Tymczasem FSR 3.0 FG już w obecnej, bardzo wczesnej formie, nie ma z tym absolutnie żadnego problemu, co wręcz sugeruje jakoby elementy interfejsu gry nie były brane pod uwagę podczas generowania nowej klatki i były przeklejane z poprzedniej (każdorazowo posiadają dane właśnie poprzedzającej klatki). To w sumie duża zaleta FSR 3.0, jako że na interfejs dość często patrzymy (po to jest :P).
Na powyższym schemacie znajdujemy potwierdzenie naszych obserwacji - dane o UI dla generowanych klatek brane są bezpośrednio z klatki poprzedzającej.
FSR 3.0 Frame Generation wypada zatem nieco gorzej w kwestii obsługi cieniowania na generowanych klatkach, a dodatkowo pozostawia bardziej widoczny powidok na konturze ruszających się obiektów/postaci. Obie te różnice są dostrzegalne, jeżeli wiemy, na co patrzeć i się na tym skupimy, ale podczas faktycznej gry niemal całkowicie się zacierają. Jednocześnie od strony technicznej FSR 3.0 jest wolny od problemów z wyświetlaniem interfejsu, co w niektórych grach jest nadal ogromną bolączką DLSS 3.0 Frame Generation. Całość można podsumować stwierdzeniem, że FSR 3.0 Frame Generation, mimo iż technicznie oferuje gorszą jakość generowanych klatek, to w praktyce jest trudne do rozróżnienia w tej kwestii względem DLSS 3.0 Frame Generation, a z uwagi na obsługę interfejsu może mieć tutaj nawet subiektywnie przewagę.
Porównaniej jakości generowania klatek przez FSR 3.0 i DLSS 3.0 (Immortals of Aveum)
Oczywiście obie te techniki są obarczone tymi samymi problemami, związanymi z fundamentalnymi założeniami działania generatora klatek, które najbardziej uwydatniają się w grach trzecioosobowych (zatem nie doskwierają aż tak w grach, takich jak Immortals of Aveum). Mowa o wyraźnych artefaktach wokół naszej postaci, która zawsze stanowi oś obrotu kamery. Jeżeli odpowiednio szybko będziemy ruszać myszką, to również bardziej kontrastowe elementy sceny zaczną "dziwnie wyglądać" za sprawą artefaktów na co drugiej klatce (tej generowanej przez FSR/DLSS). Dobrze to widać również na Radeonach w Forspoken z aktywnym FSR 3.0 (to drugi tytuł, który otrzymał aktualizację z obsługą tej funkcji).
Tutaj szybkie obracanie kamery zbliżonej do postaci daje artefakty w praktycznie całej scenie, włącznie z renderowaniem fragmentu postaci przy lewej krawędzi kadru...
FSR 3.0 nie lubi się z adaptacyjnym odświeżaniem
Jeżeli tak, jak my, przywykliście już do obrazu wolnego od rozrywania oraz pozbawionego mikroprzycięć związanych z działaniem klasycznej synchronizacji poziomej, to z używaniem FSR 3.0 na razie zaczekajcie. Tak się bowiem składa, że w teraz dostępnej formie jego aktywowanie dezaktywuje synchronizację klatek z odświeżaniem i pozostaje nam tylko właśnie klasyczna synchronizacja i to pod warunkiem, że nie mamy zbyt szybkiego monitora… Już wyjaśniamy.
FSR 3.0 obecnie dobrze działa tylko, jeżeli z jego pomocą jesteśmy w stanie dobić do limitu odświeżania naszego monitora i aktywujemy statyczną synchronizację poziomą…
Mechanizm generowania klatek od AMD zupełnie nie radzi sobie w sytuacji, w której nie ma z góry narzuconego czasu, w jakim mają się pojawiać klatki (a to właśnie zapewnia klasyczna synchronizacja). W efekcie wygenerowane klatki potrafią się wyświetlać przez dosłownie 0.5 ms (dobrze czytacie – pół milisekundy!), stanowiąc na ekranie (bez aktywnego VS) dosłownie centymetrowej wysokości pasek rozrywający ekran na łącznie trzy części oraz wprowadzający między każdą klatką kilkumilisekundowe przycięcie. W takim układzie licznik FPS pokazuje, powiedzmy, 115 FPS, a my czujemy, jakbyśmy grali w 60 FPS ze spadkami do 20 FPS – efekt odwrotny od zamierzonego (no ale dobrze wygląda na wykresach wydajności ;)).
Narzędzie CapFrameX ładnie podsumowuje (na kołowym wykresie), jaki fragment testu był płynny... Jeżeli gramy (jak powyżej) bez sztywnej synchronizacji odświeżania, to nie wygląda to dobrze dla FSR 3.0.
Faktem jest, że przy korzystaniu z generatora klatek (dowolnego) przebieg czasu generowania kolejnych klatek powinien być w kształcie delikatnego zygzaka (niewyczuwalnego dla oka), ale to, co obecnie oferuje FSR 3.0 bez aktywnej synchronizacji zwyczajnie nie nadaje się do użytku i pozostaje korzystać ze wspomnianej synchronizacji poziomej. Tutaj jednak pojawia się druga strona problemu – karta z aktywnym FG musi generować stale więcej FPS, niż wynosi odświeżanie naszego monitora, aby nie gubić tej synchronizacji, a jednocześnie my tego nadmiaru i tak nie zauważymy. Innymi słowy, aby móc rozsądnie korzystać z FSR 3.0 Frame Generation (z uwagi na frame pacing) musimy pogodzić się z limitowaniem jego możliwości, zwykle przez to osiągając ostatecznie niższy FPS od tego, który oferuje rozwiązanie NVIDII.
Porównanie działania FSR 3.0 Frame Generation z aktywnym V-Sync i bez niego (Forspoken)
Na powyższym filmie, poza łatwymi do zauważenia artefaktami obrazu (tutaj zaznaczamy - FSR 3.0 FG w tej grze wykorzystuje starszą wersję generatora - efekt jest wyraźnie gorszy niż w Immortals of Aveum, które już dostało nowszą implementację!) bardzo dobrze widać dlaczego FPS zablokowany przez V-Sync (nawet jeżeli nie jest to stałe 120 FPS) daje wrażenie dużo płynniejszej gry, niż potencjalnie wyższy FPS bez takiej blokady. Na końcu filmu też dodatkowo umieściliśmy porównanie graficzne tego, jak FSR 3.0 FG radzi sobie z bardzo nagłymi zmianami na ekranie (eksplozje) - jeżeli grając odniesiecie wrażenie, że wybuchy stały się jakieś takie mniej czytelne, to tutaj możecie (w zwolnionym tempie) dowiedzieć się dlaczego.
Ogromną zaletą jest właśnie wydajność FSR 3.0
Tak się bowiem składa, że w obu tytułach, które obecnie obsługują FSR 3.0 FG, technika ta dosyć dosłownie dwukrotnie podnosi ilość FPS wskazywanych podczas pomiarów (tutaj, z powodów opisanych wyżej, nawet nie nazwiemy tego podnoszeniem płynności…), podczas gdy DLSS 3.0 taka sztuczka udaje się bodajże tylko w Microsoft Flight Simulator w scenariuszach w 100% limitowanych przez procesor (a obie gry z obsługą FSR 3.0 zdecydowanie ogranicza GPU). Trudno nam powiedzieć, z czego wynika ta rozbieżność, ale FSR 3.0 FG jest realnie 20-30% szybsze od DLSS 3.0 FG.
Porównanie wydajności FSR 3.0 FG vs DLSS 3.0 FG - Immortals of Aveum (Ultra detale)
[FPS], więcej = lepiej, monitor 4K 120 Hz
NVIDIA GeForce RTX 4090 [FSR 3.0 Q + FG] | 131 57 |
NVIDIA GeForce RTX 4090 [DLSS 3.0 Q + FG] | 122 92 |
NVIDIA GeForce RTX 4090 [FSR 3.0 Q + FG + VS 120 Hz] | 119 90 |
AMD Radeon RX 7900 XTX [FSR 3.0 Q + FG] | 119 45 |
AMD Radeon RX 7900 XT [FSR 3.0 Q + FG + VS 120 Hz] | 116 73 |
NVIDIA GeForce RTX 4090 [Natywny rendering] | 57 45 |
AMD Radeon RX 7900 XTX [Natywny rendering] | 49 38 |
Legenda | / średni FPS / 1% Low FPS |
Niestety, co widać na wykresach, trudno to nazwać zwycięstwem, do czasu aż AMD nie rozwiąże problemu adaptacyjnej synchronizacji i/lub zgrania klatek w czasie (frame pacingu). Obecnie praktycznie w każdej sytuacji (konfiguracji odświeżania oraz wydajności) DLSS 3.0 FG zaoferuje lepsze doznania – stabilniejszą i/lub szybszą animację, a nawet jeżeli w tej kwestii obie techniki się zrównają, to DLSS 3.0 pozwoli dowolnie przebierać w upscalerach obrazu lub używać natywnej rozdzielczości. Od tego jest jednak jeden, ale jakże to obecnie istotny wyjątek, którym jest sytuacja, w której nie posiadamy najnowszej karty graficznej z serii RTX 4000… Tak oto prezentuje się działanie obu technik na karcie graficznej NVIDIA GeForce RTX 3060:
Porównanie wydajności FSR 3.0 FG vs DLSS 3.0 FG - Immortals of Aveum (Wysokie detale)
[FPS], więcej = lepiej, RTX 3060 12 GB, monitor 1440p 120 Hz
FSR Q + FG | 82 31 |
FSR Q + FG + VS 60 Hz | 59 42 |
DLSS Q | 46 35 |
Natywny rendering | 33 24 |
DLSS Q + FG | 0* 0* |
Legenda | średni FPS 1% Low FPS *nie dla psa kiełbasa |
Owszem, FSR 3.0 tutaj również wymaga odpowiedniego dobrania ustawień, aby faktycznie coś wnieść (te 31 FPS 1% Low w najwyższym słupku realnie odczuwa się bardziej jak 15 FPS...), ale jak już się to zrobi, to wnosi dużo więcej niż DLSS 2 Super Resolution oraz zupełnie niedostępne DLSS 3.0 Frame Generation (a to przecież karta nadal dostępna w sklepach i dość często jeszcze wybierana!). Jeżeli zatem posiadacie karty z poprzedniej lub nawet jeszcze wcześniejszej generacji (albo ogólnie preferujecie karty bez GPU NVIDII), to stanowczo powinniście kibicować FSR 3.0. Podsumowując - FSR 3.0 FG oferuje większy wzrost FPS wyrzucanych na ekran od DLSS 3 Frame Generation i działa na wszystkich współczesnych kartach.
FSR 3.0 FG w odpowiednich warunkach tylko minimalnie zwiększa opóźnienia
Ostatnia kwestia to temat faktycznego czasu reakcji gry na nasze komendy, czyli tego, jak grę czujemy w kwestii sterowania. W tym przypadku tradycyjne podniesienie FPS sprawia, że gra szybciej dostarcza nam świeżych informacji i szybciej reaguje na nasz input (np. ruch myszką). W przypadku korzystania z generatora klatek niestety nic takiego się nie dzieje i pomimo iż obraz wydaje się znacznie płynniejszy, to gra w najlepszym przypadku reaguje dokładnie tak samo szybko. Dlatego też technika ta nie tylko nic nie wnosi dla graczy e-sportowych, ale wręcz będzie im przeszkadzać.
Pomiar opóźnienia (od kliknięcia do reakcji piksela) - Radeon RX 7900 XTX
[ms] - mniej = lepiej, [FPS] - więcej = lepiej, 4K Ultra (VS 144 Hz).
FSR 3 Quality + FG + Anti-Lag | 93 ms 120 FPS |
FSR 3 Native AA + Anti-Lag+ | 105 ms 42 FPS |
FSR 3 Quality | 113 ms 66 FPS |
FSR 3 Quality + FG | 119 ms 119 FPS |
Natywny rendering | 125 ms 49 FPS |
FSR 3 Quality + FG + Anti-Lag+ | 125 ms 119 FPS |
FSR 3 Native AA + Anti-Lag | 126 ms 41 FPS |
FSR 3 Native AA | 132 ms 41 FPS |
FSR 3 Native AA + FG | 139 ms 75 FPS |
Legenda | / pomiar czasu reakcji sygnał-foton / średni FPS |
Tutaj obszernych pomiarów nie wykonywaliśmy z uwagi na limitacje sprzętu, ale udało nam się ustalić dwie rzeczy. Pierwsza to fakt, że FSR 3.0 FG dokłada do łącznego czasu reakcji około 25% czasu potrzebnego na wytworzenie natywnej klatki. Jeżeli zatem nasze opóźnienie (mierzone aparatem w naszym przypadku) wynosi 132 ms przy 41 FPS bez Frame Generation, to po aktywacji FSR 3.0 FG uzyskamy 75 FPS przy finalnym opóźnieniu na poziomie 139 ms (6,25 ms to 25% czasu, jaki zajmuje wytworzenie klatki przy 40 FPS). To wyśmienity wynik i w zasadzie lepszy od tego, co osiąga NVIDIA z aktywnym Reflex (tam opóźnienia są bliżej 50% czasu klatki). Jednocześnie, jak widać, w realnej sytuacji ten wzrost nawet w tak niekorzystnych warunkach (niskiego FPS) nie przekracza 5% w skali całego input lag, zatem tylko najbardziej wrażliwi gracze w ogóle to odczują. Co nie zmienia też faktu, że natywnie osiągnięte 75 FPS przełożyłoby się na już wyraźną poprawę czasu reakcji i tego żaden Frame Generation nie zaoferuje.
Drugi fakt to obecnie negatywny wpływ działania AMD AntiLag+ przy aktywnym FSR Frame Generation. O ile zwyczajny AntiLag obniża czas reakcji o jakieś 5-10%, tak aktywowanie jego wzmocnionej wersji „z plusem” daje dokładnie odwrotny efekt. Tu podejrzewamy problem w sterownikach, który możliwe, że jest łatany w chwili, gdy te słowa piszemy. Niemniej w przyszłości temat będziemy dalej monitorować. Wnioski ogólnie są takie, że FSR Frame Generation nie zwiększa w odczuwalny sposób opóźnień, co dla tego typu technologii uznajemy za dobry wynik.
Gdyby nie patrzeć na wszystkie problemy, to FSR 3.0 Frame Generation ma ogromny potencjał
Pora podsumować nasze testy, które przyznamy, że mieliśmy nadzieję wykonać w większej liczbie gier, ale na to przyjdzie nam jeszcze poczekać (AMD zapowiedziało stosowne aktualizacje do kilku dużych tytułów). Technologia AMD FSR od samego początku zgarnia nasze uznanie za sam fakt bycia powszechnie dostępną dla każdego użytkownika PC (i konsoli). Oznacza to, że mogą z niej korzystać również osoby, które nadal siedzą na jeszcze przecież dobrych kartach z poprzedniej generacji (albo i jeszcze starszych). FSR 3.0 Frame Generation tę cechę podtrzymuje i chwała za to AMD.
FSR 3.0 Frame Generation to technologia, na którą długo czekaliśmy i w sumie chyba lepiej było wykazać jeszcze odrobinę więcej cierpliwości, aby AMD faktycznie ją dopracowało
Nie będziemy jednak przesadnie słodzić pisząc, że to sam cud, miód i orzeszki. Technologia ta z całą pewnością ma ogromny potencjał i w wielu aspektach już teraz wypada lepiej od konkurenta (choćby wydajności lub tego, jak radzi sobie z interfejsem gry). Niestety w obecnej formie zdecydowanie cierpi na zbyt wiele „chorób wieku dziecięcego”, aby z czystym sumieniem polecić ją każdemu. Nam zajęło całe popołudnie odkrycie ustawień, które na naszym komputerze i monitorze oferowały faktycznie realny zysk płynności i przyjemności z gry. Tymczasem technologia konkurencji zwyczajnie działa zawsze, dając mniejszy lub większy zysk. Dopóki FSR 3.0 do tego etapu nie dotrze, co w szczególności będzie wymagało obsługi FreeSync/G-SYNC, to pozostanie tylko technologiczną ciekawostką – nawet jeżeli bardzo dobrze rokującą.
Lista gier, do których ma trafić w najbliższym czasie FSR 3.0, jest już całkiem pokaźna, a do tego praktycznie każda gra na UE5 powinna być z nim kompatybilna.
Na koniec jeszcze szybka wzmianka o AMD Fluid Motion Frames (AFMF) – funkcji dostępnej z poziomu sterownika, ale tylko w Radeonach RX 6000 i RX 7000. Pozwala ona w praktycznie każdej grze (DX 11/12) interpolować ilość klatek na zasadzie ZBLIŻONEJ do FSR 3.0 (z tą różnicą, że interpolowana jest cała klatka, razem z interfejsem i bez informacji z silnika gry). Nie testowaliśmy tego dokładnie, gdyż obecnie jest to oficjalnie tylko „podgląd technologiczny” (dajcie znać w komentarzach, czy mimo wszystko chcielibyście takie testy zobaczyć), ale niesie ze sobą faktycznie jeszcze większy potencjał niż samo FSR 3.0, jako że nie wymaga ingerencji w grę. Oby tylko nie skończyło jak AMD RSR – czyli technika w sumie porzucona na etapie FSR 1.0, która tak samo z poziomu sterownika oferuje z kolei upscaling.
Grę Immortals of Aveum na potrzeby przeprowadzenia testów otrzymaliśmy od przedstawicielstwa firmy AMD.
Komentarze
13Czemu nie zestawicie radeona z odpowiadającym mu powiedzmy 4070 TI?