В описі характеристик відеокарт і моніторів часто згадується підтримка ними технологій синхронізації кадрів, таких як V-Sync, G-Sync, FreeSync, Enhanced Sync, FastSync.
Всі ці технології схожі і виконують одну й ту ж важливу функцію синхронізації кадрів. Але відрізняються вони не тільки назвою. Якщо, збираючи ігровий комп'ютер, ви бажаєте отримати максимально плавну картинку в іграх, потрібно розуміти принцип роботи цих технологій, а також знати основні особливості кожної з них. Це дозволить вибрати оптимальне комп'ютерне "залізо" і в результаті не розчаруватися в ньому.
Навіщо потрібна синхронізація кадрів
Зображення на моніторі сприймається нами як рухоме завдяки зміні кадрів. Цей ефект багатьом з нас знайомий з дитинства, коли ми отримували "рухому картинку", намалювавши на кожній сторінці зошита зображення, які трохи відрізняються одне від одного, і швидко гортаючи їх, як на картинці нижче.
Точно за таким же принципом працює монітор комп'ютера. Чим частіше на ньому відбувається зміна кадрів, тим плавніше рухається зображення.

Для людського зору критичною є межа в 24 кадри в секунду. Якщо комп'ютер не здатний змінювати кадри швидше, зображення втрачає плавність ("смикається"). У динамічних сценах, яких дуже багато в комп'ютерних іграх, комфортна межа частоти зміни кадрів трохи вища. Щоб гра була достатньо "чутливою" і посмикування не заважали ігровому процесу, частота повинна бути не нижче 30-35 кадрів в секунду. Хоча, є люди, які помічають "пригальмовування" картинки навіть на такій частоті зміни кадрів.
В комп'ютері за формування і виведення на екран зображення відповідають, головним чином, два пристрої - відеокарта і монітор. Вони постійно взаємодіють між собою. Відеокарта "малює" кадри, а монітор "показує" їх.
Швидкодію відеокарти в іграх прийнято вимірювати в одиницях, які називаються
FPS (від англ.
Frames per Second, що означає
кадри в секунду). Сучасна ігрова відеокарта здатна генерувати величезну кількість кадрів в секунду. В деяких іграх FPS може досягати 200, 300 і більше. Однак, кінцевий результат залежить не тільки від "потужності" відеокарти, але й від графічної складності створюваних нею кадрів. І оскільки складність сцен в грі постійно змінюється, кожну секунду відеокарта видає різну кількість кадрів.
Монітор теж має свої частотні характеристики. Кожну одиницю часу він певну кількість разів оновлює зображення. Частота оновлення монітора вимірюється в
герцах, скорочено
Гц (1 Гц = 1 раз в секунду). В більшості моніторів частота оновлення завжди стала і становить 60, 75, 85, 100, 120 Гц або більше, в залежності від моделі. В простих "бюджетних" моніторах вона майже завжди становить 60 Гц.
По суті, кожне оновлення зображення монітора - це "доставка" кадру від відеокарти до очей користувача. З якою б швидкістю не малювала кадри відеокарта, результати її роботи "доставляються" користувачу з періодичністю, яка визначається можливостями монітора. Якщо частота монітора складає 60 Гц, формування відеокартою більше 60 кадрів в секунду не має сенсу. Монітор при кожному оновленні виводить кадр, який в цей момент знаходиться в кадровому буфері відеокарти. Надлишкові кадри ніхто не побачить. Відеокарта просто буде формувати їх "даремно", перегріваючись і витрачаючи зайву електроенергію.
Але головною проблемою все ж є інше. Швидкість генерування кадрів відеокартою тільки в рідкісні моменти збігається з частотою оновлення монітора. Тому майже кожен раз при його оновленні в кадровому буфері знаходиться не готовий кадр, а якийсь проміжний результат, який складається з певної частини кадру, створюваного відеокартою в цей момент, а також частини попереднього кадру. І якщо ці кадри сильно відрізняються, зображення, що передається на екран, буде мати помітні дефекти у вигляді смуг, зрізів, розривів, накладень та ін. Це явище називається
тірінг (від англ.
tearing - розрив) і особливо впадає в очі в динамічних ігрових сценах, які включають біг, різкі повороти камери, вибухи та ін., див. приклади нижче.
Згадані проблеми вирішуються шляхом синхронізації швидкості роботи відеокарти і частоти оновлення екрану.
Вертикальна синхронізація (V-Sync, FastSync, Enhanced Sync)
"Найстарішою" технологією синхронізації кадрів є класична
вертикальна синхронізація (англ.
Vertical Sync або скорочено
V-Sync). Вона підтримується практично всіма відеокартами і моніторами. Розумінню принципів її роботи слід приділити особливу увагу, оскільки інші технології синхронізації з'явилися внаслідок її розвитку.
Алгоритм V-Sync передбачає використання двох кадрових буферів і полягає приблизно в наступному.
Кожен кадр формується відеокартою в так званому
вторинному кадровому буфері (back buffer). При готовності кадр копіюється з вторинного в
первинний кадровий буфер (front buffer), заміщуючи собою кадр, що знаходиться там. Монітор оновлює зображення на екрані зі стабільною частотою і при кожному оновленні отримує кадр з первинного буфера.
Копіювання кадрів між буферами відбувається не хаотично, а за суворими правилами:
1. Кадр надходить із вторинної буфера в первинний виключно між оновленнями монітора і тільки в тому випадку, якщо він (кадр) повністю готовий;
2. Відеокарта "чекає" копіювання готового кадру з вторинного буфера в первинний, і тільки після цього приступає до формування наступного кадру.
Завдяки такій схемі, в первинному буфері при кожному оновленні монітора знаходиться на 100% сформований кадр (без розривів і накладень), а швидкість генерування кадрів відеокартою знижується до частоти оновлення екрану.
Однак, двохбуферна схема нормально працює, коли FPS відеокарти вища частоти оновлення екрану, і погано проявляє себе, якщо FPS опускається нижче цього рівня. У такі моменти відбувається наступне.
Припустімо, що частота оновлення монітора складає 60 Гц, а відеокарта в якійсь грі формує кадри зі швидкістю ~ 50 FPS. Монітор виводить на екран перший кадр. Настає момент другого його оновлення, але в первинному кадровому буфері знаходиться все той же кадр, оскільки відеокарта ще не встигла сформувати новий. Монітор оновлюється тим же кадром. І тільки на третьому оновленні він отримає кадр, що відрізняється від перших двох. Крім того, між другим і третім оновленнями відеокарті доведеться "простоювати", поки монітор "забере" готовий кадр. Таким чином, спочатку відеокарта "не встигає" за монітором, а потім їй доводиться чекати звільнення місця у вторинному буфері, необхідного для формування нового кадру. І це все циклічно повторюється.
В результаті при потенційно можливих ~ 50 кадрах в секунду фактична швидкість зміни кадрів на екрані буде всього 30 FPS (половина від частоти оновлення екрану), тобто крок "зрізання" FPS становить 50%.
А як уже говорилося вище, 30 FPS - це нижня межа комфортної плавності картинки, на якій геймери з тренованим оком уже починають помічати посмикування. Ну а якщо в якійсь складній сцені реальна швидкість карти з 50 FPS опуститься нижче 30 FPS (наприклад, до ще терпимих 28-29 FPS), V-Sync відразу ж "зріже" її до "неіграбельних" 15 FPS.
Виходить, що коли швидкість формування кадрів відеокартою стає нижчою частоти оновлення монітора, від класичної вертикальної синхронізації може бути більше шкоди, ніж користі.
Щоб позбавити користувача необхідності "ручного" пошуку оптимального варіанта для кожної гри, компанія NVIDIA розробила технологію
Adaptive V-Sync. Вона автоматично активує вертикальну синхронізацію в іграх, коли FPS відеокарти перевищує частоту оновлення монітора, і вимикає її, коли FPS опускається нижче цього рівня. Adaptive V-Sync підтримується відеокартами GeForce, починаючи з 600-ї серії (архітектура Kepler) і активується в налаштуваннях драйвера відеокарти.
Здавалося б, питання вирішене. Однак, проблеми з V-Sync виникають не тільки при низькому FPS, але й коли швидкість відеокарти надто висока. Коли FPS в рази перевищує частоту оновлення монітора, вертикальна синхронізація "ріже" швидкість відеокарти надто "грубо". Внаслідок нерівномірності періодів роботи і "простоювання" відеокарти виникають мікропосмикування картинки (так званий
статерінг, від анг.
Stuttering - заїкання), а також підвищується
Input Lag (затримка виведення). Останнє проявляється збільшенням затримки реакції гри на дії гравця. Гра стає менш чутливою, "ватною". Чим сильніше FPS перевищує частоту оновлення монітора, тим це помітніше.
Для боротьби із зазначеним явищем була придумана
"потрійна" буферизація. Суть її полягає в тому, що в "двохбуферну" схему додається ще один кадровий буфер. Працює все приблизно так.
Перший кадр знаходиться в первинному буфері, дві третини другого кадру обробляються відеокартою у вторинному буфері, після чого відеокарта приступає до формування останньої третини другого кадру в третьому буфері.
Після оновлення екрану першим кадром, у другий буфер з третього надходить остання третина другого кадру, а перша третина третього кадру починає створюватися в третьому буфері.
Після другого оновлення екрану першим кадром другий кадр копіюється в первинний буфер, а перша третина кадру № 3 переміщається з третього буфера у вторинний. Інші дві третини кадру № 3 формуються в третьому буфері. Коли відбувається перше оновлення екрану другим кадром, всі частини кадру № 3 переносяться у вторинний буфер. Потім все повторюється спочатку.
В такій схемі при високому FPS рівномірність роботи відеокарти страждає менше. Не так помітно підвищується і Input Lag. Коли швидкість роботи відеокарти опускається нижче частоти оновлення монітора, крок "зрізання" FPS становить вже не 50%, а 33%, і кожні два кадри, сформовані відеокартою, виводяться на екран за три його оновлення.
В ситуації з попереднього прикладу, де відеокарта потенційно здатна видати ~ 50 кадрів в секунду, а частота оновлення екрану складає 60 Гц, при трьохбуферній схемі швидкість зміни кадрів в кінцевому підсумку складе 40 FPS. А це вже набагато краще, ніж у випадку з "двохрівневою" буферизацією.
Три буфери - це не межа. Теоретично схему можна вдосконалювати, збільшуючи кількість буферів до 4, 5 чи навіть більше. Однак, в багатобуферних схем є істотний недолік. Вони забирають відчутну кількість пам'яті і обчислювальних ресурсів у відеокарти, а також є складними в реалізації. Як наслідок, навіть "трирівнева" схема вертикальної синхронізації є далеко не у всіх іграх.
Щоб якось поліпшити ситуацію у відеокартах GeForce, починаючи з архітектури Maxwell (900-та серія), з'явилася підтримка так званої технології
FastSync. Компанія AMD в своїх графічних прискорювачах, починаючи з архітектури GCN, реалізувала підтримку аналогічної технології, давши їй назву
Enhanced Sync.
FastSync і Enhanced Sync, по суті, є вдосконаленим варіантом багатобуферної вертикальної синхронізації, реалізованим на рівні драйвера. Вони дозволяють задіяти багатобуферну схему навіть тоді, коли в грі така можливість не передбачена. FastSync і Enhanced Sync активуються в налаштуваннях драйвера відеокарти.
Це може бути корисно
Крім вертикальної синхронізації, для вирішення проблем, викликаних дисбалансом швидкості роботи монітора і відеокарти, можна використовувати ще кілька методів.
1. Якщо в налаштуваннях гри передбачена можливість встановлення максимальної швидкості формування кадрів відеокартою, цей показник можна зробити рівним частоті оновлення монітора, а вертикальну синхронізацію вимкнути. Як і у випадку з використанням V-Sync, FPS після цього не буде підніматися вище потенційних можливостей монітора, однак, коли він опуститься нижче цього рівня, ніякі обмеження діяти не будуть. Відеокарта просто буде видавати той максимум, на який вона здатна (метод дуже схожий на згадану вище технологію Adaptive V-Sync).
2. Якщо в налаштуваннях гри передбачений варіант віконного режиму, можна спробувати активувати його. Гра в такому випадку буде відображатися у вигляді вікна Windows. Якщо розширити це вікно до розмірів екрану, рамок не буде видно. Але в формуванні зображення будуть використовуватися засоби операційної системи Windows, які в деяких випадках проявляють себе краще, ніж проста вертикальна синхронізація.
Ці методи можна використовувати як окремо, так і одночасно, в залежності від того, який варіант виявиться більш комфортним.
Адаптивна синхронізація (G-Sync, Free-Sync)
Технології вертикальної синхронізації, про які йшлося вище, передбачають роботу монітора з незмінною частотою оновлення і одностороннє "підлаштовування" під нього швидкості роботи відеокарти. До монітора при цьому не пред'являється ніяких особливих вимог (можна використовувати будь-який).
Але існують досконаліші способи синхронізації, які передбачають, крім регулювання швидкодії відеокарти, ще й динамічну зміну частоти оновлення монітора. Монітор і відеокарта "взаємопідлаштовуються" один під одного, завдяки чому досягається максимальна синхронність їх роботи при повній відсутності артефактів, посмикувань і без збільшення затримки відгуку гри. Такі схеми носять загальну назву "Адаптивна синхронізація кадрів".
Технологія адаптивної синхронізації, розроблена компанією NVIDIA, називається
G-Sync. Її аналог від AMD -
FreeSync. Обидві працюють за схожим принципом і потребують підтримки не тільки відеокартою, але й монітором.
NVIDIA G-Sync
Підтримка G-Sync з'явилася в 2014 році в відеокартах GeForce 600-ї серії (архітектура Kepler).
Монітор з повною підтримкою G-Sync повинен відповідати суворим вимогам: низький час відгуку екрану, частота оновлення не нижче 144 Гц, підтримка HDR та ін. В такий монітор встановлюється спеціальний апаратний модуль. Він підраховує кадри, які генеруються відеокартою, і динамічно змінює частоту оновлення екрану відповідно до поточної швидкості гри, забезпечуючи повний їх збіг. Діапазон зміни частоти оновлення екрану складає як мінімум 1 - 144 Гц.
Апаратний модуль G-Sync базується на чіпі Intel сімейства Altera Arria GX і містить буферну пам'ять (від 3 чіпів DRAM DDR3L або кращих сукупною ємністю не менше 768 МБ). Вартість тільки самого такого модуля становить 100 - 200 дол. США, тому ціна моніторів на їх основі на порядок вища звичайних.
Але якщо у вас відеокарта від NVIDIA і є фінансова можливість, придбання такого монітора має сенс. З апаратним модулем G-Sync користувач завжди отримує прогнозований результат без всяких "сюрпризів".
Примітно, що в ігрових ноутбуках на основі відеокарт N-Vidia використовується інша схема адаптивної синхронізації, яка отримала назву
Mobile G-Sync. Вона реалізується виключно через інтерфейс embedded DisplayPort (eDP) і не передбачає наявності окремого G-Sync модуля. Це більше програмний, ніж апаратний метод. В його основі лежить складний алгоритм, який з високою точністю прогнозує кількість кадрів, які формуються відеокартою кожну одиницю часу, з урахуванням чого динамічно налаштовує частоту оновлення зображення на дисплеї. Точність збігу швидкості оновлення екрану і FPS відеокарти тут вже не 100%, але вона дуже висока.
За схожим принципом працює і технологія AMD FreeSync.
AMD FreeSync
Технологія FreeSync представлена компанією AMD в 2015 році. Її вдосконалена версія (FreeSync 2) стала частиною стандарту DisplayPort 1.2 (DisplayPort Adaptive-Sync). Як і NVIDIA G-Sync, FreeSync забезпечує динамічну зміну частоти оновлення монітора відповідно до швидкості генерування кадрів відеокартою. Діапазон зміни частоти оновлення у різних моделей моніторів може значно відрізнятися (в межах від 9 до 240 Гц).
Реалізується FreeSync на рівні інтерфейсу і не потребує установки в монітор якогось додаткового апаратного забезпечення. Для її роботи потрібен монітор з інтерфейсом DisplayPort або HDMI і відповідна відеокарта. Завдяки цьому FreeSync-монітори суттєво дешевші, ніж монітори з G-Sync.
Тривалий час FreeSync підтримувалася виключно відеокартами AMD Radeon. Але в 2019 році NVIDIA "здалася" і додала підтримку FreeSync в свої графічні прискорювачі, починаючи з архітектури Pascal (GeForce 1000-ї серії і новіші).
З огляду на вказане, FreeSync здається кращим варіантом, ніж G-Sync. Однак, все не так однозначно.
Оскільки реалізація FreeSync повністю віддана на відкуп виробникам моніторів, при їх виготовленні вони не зобов'язані дотримуватися якихось суворо уніфікованих умов, сформульованих виробниками відеокарт. В кінцевому підсумку користувач може отримати не зовсім той (або зовсім не той) результат, на який розраховує. Діапазон зміни частоти оновлення монітора може виявитися надто "вузьким" для того, щоб давати необхідний ефект плавності. Можуть виникнути проблеми сумісності монітора з відеокартою, особливо, якщо це GeForce, тощо.
Деяким FreeSync-моніторам компанія NVIDIA присвоює категорію "
G-Sync Compatible" (список
див. тут). Це означає, що вони хоч і не містять апаратний модуль G-Sync, однак за технічними параметрами задовольняють вимоги NVIDIA і їх можна гарантовано використовувати з відеокартами GeForce, які підтримують FreeSync. Такі монітори навіть "прописуються" в драйвері NVidia, завдяки чому адаптивна синхронізація кадрів автоматично активується при їх підключенні до комп'ютера (точно так само, як це відбувається на моніторах з повноцінним G-Sync).
Якщо FreeSync-монітор не є "G-Sync Compatible", адаптивну синхронізацію кадрів в налаштуваннях драйвера можна ввімкнути "вручну". Однак, в цьому випадку є ймовірність, що технологія буде працювати з обмеженнями або перебоями.
Як показує практика, FreeSync можна ввімкнути навіть на тих комп'ютерах, дискретні відеокарти яких її не підтримують. Це можливо в тому випадку, коли крім основного графічного процесора, в комп'ютері є додаткова відеокарта Radeon, яка підтримує FreeSync. Вона може бути як дискретною, так і інтегрованою в центральний процесор (наприклад,
Ryzen 5 2400G або
Ryzen 5 3400G з вбудованим Radeon Vega 11). Монітор потрібно підключити до виходу відеокарти з підтримкою FreeSync і в налаштуваннях її драйвера активувати цю технологію. Потім в налаштуваннях драйвера основної відеокарти вибрати її в якості пріоритетного графічного прискорювача для кожної встановленої на комп'ютері гри.
Така схема додає в систему додаткові затримки і, звичайно ж, не є офіційно рекомендованою хоча б кимось з виробників комп'ютерного "заліза". Але вона працює і для когось може виявитися цілком нормальним варіантом.
Таким чином, технологія FreeSync хоча і є безкоштовною й більш універсальною, ніж G-Sync, гарантій повної її працездатності в кожному конкретному випадку немає. Певною мірою це лотерея.
Перед придбанням FreeSync-монітора потрібно ретельно вивчити його характеристики, поцікавитися питанням сумісності з використовуваною відеокартою, оцінити ймовірність збігу діапазону частоти оновлення екрану з швидкодією графічного прискорювача, почитати відгуки, подивитися огляди (звичайно ж, якщо їх вдасться знайти).
Підводячи підсумок
Можна з впевненістю сказати, що в ігровому комп'ютері синхронізація кадрів - річ потрібна і дуже корисна.
Якщо дозволяють фінансові можливості, при підборі комп'ютерного "заліза" краще орієнтуватися на підтримку ним адаптивної синхронізації (G-Sync, FreeSync). Для тих, хто віддає перевагу відеокартам GeForce, преміальним варіантом стане монітор з апаратним модулем "G-Sync". Більш універсальним і оптимальним по співвідношенню "ціна / результат" буде монітор категорії "GSync Compatible". Він влаштує всіх - як геймерів, які віддають перевагу графічним прискорювачам GeForce, так і власників відеокарт Radeon. І перші, і другі можуть також сміливо дивитися в бік звичайних (не "G-Sync Compatible") моніторів з підтримкою FreeSync. Однак, тут є певний ризик не отримати очікуваний ефект плавності.
Геймерам, які не мають можливості або не бажають витрачатися на "продвинутий" монітор, бажано хоча б придбати відеокарту, яка підтримує FastSync або Enhanced Sync.
Якщо і це не можна зробити, доведеться задовольнятися можливостями звичайної вертикальної синхронізації. При грамотному підході майже завжди можна домогтися достатньої плавності геймінгу. Однак, потрібно бути готовим до "ручного" налаштування комп'ютера і експериментального пошуку оптимального варіанту для кожної конкретної гри.