Czym jest V-sync i jak wpływa na gry?
Dzisiejsze gry wideo posiadają mnóstwo opcji graficznych wpływających na wygląd ich oprawy wizualnej czy na liczbę klatek na sekundę podczas rozgrywki. Efekty włączenia wielu z nich są jasne jak słońce, ale niektóre posiadają nazwy, które niejednemu graczowi mówią bardzo niewiele – chociażby V-sync, HBAO+ czy MSAA. W niniejszym artykule postanowiliśmy wyjaśnić, czym takim jest i jak działa właśnie V-sync.
V-sync – co to jest i co powoduje w grach?
V-sync, spotykany też pod nazwami „synchronizacja pionowa” lub „vertical synchronization”, to proces synchronizacji wyświetlania obrazu przez monitor z dopływającymi do niego danymi o obrazie. Innymi słowy, V-sync polega na podporządkowaniu liczby generowanych przez komputer klatek na sekundę do częstotliwości odświeżania monitora. Dzięki niemu karta graficzna stara się nie przekraczać ustalonej wartości klatek na sekundę.
V-sync jest odpowiedzią na problemy wynikające z różnic w liczbie klatek na sekundę generowanych przez kartę graficzną i odbieranych przez monitor. Jeżeli posiadamy bardzo mocną kartę graficzną, jeśli gramy w stare gry lub gdy nasz monitor posiada niską częstotliwość odświeżania, komputer stara się pokazać naszym oczom więcej FPS, niż monitor jest w stanie wyświetlić. Efektem może być na przykład zjawisko tearingu (rozdarcia ekranu), polegające na mieszaniu się obrazów, na przykład tak jak na poniższym filmie. Wyświetlacz, gdy nie może nadążyć za kartą graficzną, wyświetla wówczas dwie klatki na raz.
Problemy V-sync
Niestety, V-sync nie jest rozwiązaniem idealnym. To dlatego, że chociaż rozwiązuje problem rozrywania ekranu, robi to kosztem wydajności, co potrafi mieć ogromne znaczenie szczególnie w grach FPS, wymagających szybkości działania i dobrego refleksu.
Dlaczego V-sync obniża wydajność? W skrócie dlatego, że obniża szybkość generowania klatek przez kartę graficzną, aby dostosować ją do częstotliwości odświeżania monitora oraz dlatego, że synchronizuje generowanie klatek przez GPU z procesem odbierania ich przez monitor. Jak można zauważyć, obydwa te mechanizmy obniżają wydajność GPU. To ważny szczegół, albowiem podczas gdy monitor odświeża się w określonych odstępach czasu, tak jak zegar tyka w określonych odstępach czasu, karta graficzna generuje klatki z szybkością, która jest odwrotnie proporcjonalna do złożoności sceny renderowanej w grze.
Zmuszenie procesora graficznego do synchronizacji tempa wyświetlania klatek z częstotliwością odświeżania monitora sprawia, że monitor nie wyświetla najświeższych klatek wygenerowanych przez GPU, na przykład pokazujących nową pozycję przeciwnika czy celownika. Coś takiego określane jest jako input lag.
Kolejna wada funkcji V-sync objawia się wtedy, gdy za jej sprawą GPU wygeneruje mniej klatek niż częstotliwość odświeżania monitora. Jak wspomniałam, V-sync obniża wydajność karty graficznej. Gdy nagle ta musi wyrenderować skomplikowaną scenę, V-sync może nie nadążyć z podwyższeniem tej wydajności, sprawiając, że GPU wygeneruje tylko 59 fps. Na monitorze o częstotliwości odświeżania na poziomie 60 Hz nie wyświetli się jednak 59 fps, a 45 fps, ponieważ przy takiej częstotliwości interwał synchronizacji wynosi 16,67-milisekundy.
Co gorsza, wydajność kart graficznych, a co za tym idzie liczba FPS, w grach jest zmienna. W związku z tym V-sync potrafi sprawiać, że niektóre klatki są przetrzymywane na ekranie dłużej niż powinny, co może być postrzegane jako stuttering.
Odpowiedź na wady technologii V-sync
Na szczęście, w wielu grach można już korzystać z zaawansowanych wersji synchronizacji pionowej, które rozwiązują niektóre problemy klasycznego V-syncu. Na przykład, NVIDIA opracowała funkcje Adaptive VSync i Fast Sync, a AMD Enhanced Sync.
Najlepszym rozwiązaniem dla problemów funkcji V-Sync są jednak technologie G-sync oraz FreeSync. Warto przy tym pamiętać, że nie obsługują ich wszystkie monitory.