AMD FreeSync i Nvidia G-Sync w praktyce

AMD FreeSync i Nvidia G-Sync to najnowsze metody synchronizacji obrazu w monitorach komputerowych. Obie zmieniają dotychczasowy sposób komunikowania się karty graficznej z monitorem, dzięki czemu mają niemal całkowicie eliminować efekt rozrywania klatek i zacięć. Sprawdziliśmy, jak w praktyce zachowują się wyświetlacze obsługujące te konkurencyjne systemy.

W ostatnim czasie można zauważyć wysyp monitorów do gier z technologiami G-Sync i FreeSync. Otrzymujemy więc sporo pytań jak działają obie technologie i czy faktycznie sprawdzają się w grach. Żeby móc jednak to wyjaśnić to trzeba najpierw przybliżyć zasadę działania monitorów i tego jak powstaje wyświetlany na nich obraz.

Monitory wyświetlają obraz w określonej rozdzielczości i z ustaloną szybkością, a ściślej biorąc – odświeżaniem. Odświeżanie podawane jest w hercach i wskazuje, ile klatek obrazu monitor wyświetla w ciągu sekundy. Większość monitorów LCD pracuje ze stałą częstotliwością 60 Hz. Umożliwiają więc wyświetlenie 60 klatek obrazu w ciągu sekundy.

O tym, co jest wyświetlane na ekranie decyduje karta graficzna, która przygotowuje poszczególne klatki obrazu i wysyła je do monitora. Karty graficzne do generowania obrazu wykorzystują bufory ramek. Obecnie większość kart graficznych do zastosowań „domowych” ma dwa bufory. Pierwszy służy do wyświetlania klatki obrazu na monitorze, a drugi – do przygotowywana kolejnej klatki obrazu. Kiedy klatka z drugiego bufora jest gotowa, automatycznie zostaje przesyłana do pierwszego i wyświetlana na monitorze. Teoretycznie taki sposób przygotowywania poszczególnych klatek gwarantuje, że sygnał wideo będzie przesyłany płynnie. Praktyka pokazuje jednak, że nie zawsze się tak dzieje, bo istotna jest np. szybkość z jaką wysyłane są poszczególne klatki.

To ostatnie zależy od wydajności układu graficznego karty, ilości pamięci i stopnia skomplikowania obrabianej sceny. W efekcie wydajność karty graficznej nigdy nie jest stała i może wahać się od kilku do kilkudziesięciu klatek na sekundę. Karta przesyła więc do monitora obraz z różną szybkością, podczas gdy monitor cały czas odświeża obraz ze stałą szybkością. Tak powstają…

Problemy z synchronizacją obrazu

Monitor wyświetla klatkę obrazu od góry ekranu ku dołowi i potrzebuje na to ok. 16,6 ms (odświeżanie 60 Hz). Karta graficzna, która pracuje z większą szybkością, np. 80 kl./s, wysyła poszczególne klatki obrazu do monitora co 12 milisekund. W efekcie monitor wyświetla przez ten czas aktualną klatkę, po czym zawartość pierwszego bufora się zmienia i monitor, zanim skończy rysować pełną klatkę, wyświetla kolejną. Tak powstaje efekt „tearingu” potocznie nazwany rozrywaniem klatki. W rzeczywistości polega to na wyświetlaniu przez monitor w tym samym czasie niepełnych klatek obrazu. Wiele osób nawet nie zwraca na to uwagi, bo te „usterki” obrazu pojawiały się od zawsze i zdążyliśmy się do tego przyzwyczaić. Efekt rozrywania klatki wyraźnie widać np. podczas szybszych ruchów myszą, gdy na ekranie wyświetlane są poziome elementy jak np. pnie drzew, czy budynki. Krawędzie tych obiektów często nie tworzą linii prostej, tylko w pewnym miejscu ekranu są wyraźnie przesunięte. Efekt ten jest wyraźniejszy gdy różnice pomiędzy poszczególnymi klatkami są większe, czyli podczas szybszych ruchów myszą lub gdy wyświetlane są szybko poruszające się obiekty.

Co jednak gdy karta graficzna działa wolniej niż częstotliwość pracy monitora, tj. nie daje rady odpowiednio szybko przygotować kolejnej klatki i przesłać ją do pierwszego bufora? Wtedy na ekranie pokazywana jest cały czas zawartość pierwszego bufora – ten sam obraz jest wyświetlany od nowa. Dlatego gdy karta graficzna pracuje z szybkością poniżej częstotliwości odświeżania monitora, widoczne są np. zacięcia w płynności odtwarzanych animacji.

Niestety, nawet gdy karta wysyła obraz z szybkością 60 kl./s, nie gwarantuje to odpowiedniej synchronizacji z monitorem. Dzieje się tak bo czas przygotowywania przez kartę każdej z 60 klatek w ciągu sekundy nie jest stały. Częściowym rozwiązaniem tego problemu okazuje się dobrze wszystkim znana (choć rzadko wykorzystywana) metoda synchronizacji pionowej, czyli technologia V-Sync.


Zobacz również