120fps у мобільній розробці — що це, особливості ProMotion та оптимізація

Автор: IT Sectr Опубліковано: 2026-04-01 Час читання: 8 хв

120fps — частота 120 кадрів на секунду, доступна на дисплеях з герцовкою 120 Гц, де кожен кадр займає 8.3 мс. За даними Apple WWDC 2023 Session, ProMotion автоматично перемикає частоту від 24 до 120 Гц для балансу плавності та енергоспоживання. 8.3 мс — це вдвічі менше стандартного бюджету, що вимагає серйозної оптимізації рендерингу.

Головне

  • 120fps — частота 120 кадрів на секунду з бюджетом рендерингу 8.3 мс на кадр
  • ProMotion — технологія Apple з динамічною частотою від 24 до 120 Гц
  • LTPO-дисплеї — панелі з низькотемпературним полікристалічним оксидом, що підтримують 1–120 Гц
  • Frame pacing — рівомірність виведення кадрів, критична при 120fps
  • Оптимізація під 120fps вимагає вдвічі більш ефективного коду, ніж під 60fps

Що таке 120fps

120fps — подвоєна відносно стандарту частота кадрів, при якій дисплей оновлює зображення 120 разів на секунду. Кожен кадр має бюджет часу 8.33 мс — вдвічі менше, ніж при 60fps. Це означає, що GPU та CPU повинні обробляти графіку вдвічі швидше, а всі алгоритми, що працюють за 16.7 мс при 60fps, при 120fps укладаються тільки за умови вдвічі більшої ефективності.

Першим мобільним пристроєм з 120 Гц дисплеєм став Razer Phone (2017) з IGZO-панеллю Sharp. Apple впровадила 120 Гц в iPad Pro (2017) під назвою ProMotion, а в iPhone — тільки в 2021 році в iPhone 13 Pro. На Android 120 Гц стали масовими з 2020 року: Samsung Galaxy S20, OnePlus 8 Pro, Xiaomi Mi 10. Сьогодні 90–120 Гц — стандарт для флагманських пристроїв, а LTPO-технологія дозволяє динамічно змінювати частоту.

Сприйняття 120fps користувачем відрізняється від 60fps не стільки відсутністю ривків, скільки відчуттям миттєвої відповіді — курсор, скролінг, анімації слідують за пальцем з мінімальною затримкою. Це відчуття часто описують як «рідкий» або «олійний» екран. Після використання 120 Гц повернення до 60 Гц суб'єктивно сприймається як уповільнення, навіть якщо об'єктивних пропусків кадрів немає.

Як працюють 120 Гц дисплеї

120 Гц дисплей фізично оновлює пікселі 120 разів на секунду, відправляючи сигнал по шині MIPI DSI/DPI з подвоєною частотою. Кожен піксель отримує нове значення яскравості кожні 8.3 мс. Для OLED-панелей це означає, що час емісії кожного субпікселя скорочується, що вимагає яскравішого підсвічування для збереження тієї самої яскравості зображення.

LTPO-технологія

LTPO (Low-Temperature Polycrystalline Oxide) — технологія виробництва OLED-дисплеїв, що об'єднує LTPS (висока швидкість перемикання) та IGZO (низьке енергоспоживання в статиці). LTPO дозволяє дисплею динамічно змінювати частоту оновлення від 1 до 120 Гц без додаткових витрат енергії. В режимі Always-On Display частота падає до 1 Гц, при скролінгу підімається до 120 Гц. Це дає економію до 30% енергії порівняно з дисплеями, що працюють постійно на 120 Гц.

Frame Pacing при 120fps

Frame pacing — рівномірність інтервалів між кадрами, найважливіший параметр при 120fps. Якщо при 60fps різниця між кадрами в 2–3 мс непомітна, то при 120fps та сама абсолютна різниця становить 25% від тривалості кадра і сприймається як ривок. Для плавного 120fps кожен кадр повинен укладатися в 8.3 мс ±1 мс. Інструменти на кшталт FrameRate в Xcode Instruments показують не лише середній FPS, але й гістограму інтервалів для оцінки frame pacing.

swift
// iOS — виявлення 120 Гц дисплея через CADisplayLink
func checkDisplayRefreshRate() {
    let link = CADisplayLink(target: self,
                                  selector: #selector(step))
    if let preferredRate = link?.preferredFrameRateRange {
        print("Макс. частота: \(preferredRate.maximum) Гц")
    }
}

ProMotion в iOS

ProMotion — торгова марка Apple для дисплеїв з адаптивною частотою оновлення до 120 Гц. Вперше представлена в iPad Pro 10.5 (2017), потім з'явилася в iPhone 13 Pro (2021) та MacBook Pro (2021). ProMotion — це не просто 120 Гц, це інтелектуальне керування частотою: система аналізує тип контенту та перемикає частоту для оптимального балансу продуктивності та енергоспоживання.

Режими роботи ProMotion

ProMotion підтримує чотири режими: 24 Гц для статичного контенту та відео 24fps, 30 Гц для відео 30fps, 60 Гц для UI-навігації та 120 Гц для скролінгу та ігор. Перемикання між режимами відбувається за один кадр (8.3 мс) та непомітне для користувача. Розробник може вплинути на вибір частоти через preferredFrameRateRange в CADisplayLink, але кінцеве рішення приймає система на основі аналізу контенту.

API для розробників

Apple надає API для роботи з ProMotion починаючи з iOS 15. CADisplayLink.preferredFrameRateRange дозволяє задати бажаний діапазон частот. UIScene.ActivationConditions може впливати на частоту при переході між сценами. Для Metal-рендерингу CAMetalLayer.displaySyncEnabled повинен бути true для синхронізації з ProMotion. Якщо додаток не оптимізований під 120fps, iOS автоматично перемикає його на 60 Гц, що видно в Xcode в розділі GPU Report.

swift
// iOS — запит 120fps для ігрового режиму
let displayLink = CADisplayLink(
    target: self,
    selector: #selector(gameLoop)
)
if #available(iOS 15.0, *) {
    displayLink?.preferredFrameRateRange =
        CAFrameRateRange(minimum: 80,
                          maximum: 120,
                          preferred: 120)
}
displayLink?.add(to: .current,
                    forMode: .default)

Оптимізація під 120fps

Оптимізація під 120fps — це не просто прискорення коду вдвічі, а перегляд архітектури рендерингу. Операції, які укладалися в 16.7 мс при 60fps, тепер повинні виконуватися за 8.3 мс. Це затрагує всі етапи конвєєра: CPU-підготовку, GPU-рендеринг та системні виклики.

Зниження draw calls для 120fps

При 120fps кількість draw calls на кадр повинна бути вдвічі меншою, ніж при 60fps, для збереження тієї самої завантаження GPU. Якщо при 60fps допустимо 400 draw calls, то при 120fps — не більше 200. Використовуйте текстурні атласи, об'єднання мешів та GPU-інстансування для зменшення викликів малювання. На Metal використовуйте Indirect Command Buffers, на Vulkan — Secondary Command Buffers для паралельного запису команд.

Shaders — ще один критичний фактор. Складні піксельні шейдери з багатьома текстурними вибірками та математичними операціями можуть легко перевищити бюджет 8.3 мс. Використовуйте шейдери з низькою точністю (half замість float), зменшуйте кількість інструкцій та текстурних вибірок. На мобільних GPU (Apple A17, Snapdragon 8 Gen 3) кожна текстурна вибірка займає 2–4 цикли, і при 120fps це може стати вузьким місцем.

CPU та головний потік

При 120fps головний потік повинен підготувати кадр за 4–5 мс, щоб залишити час GPU на рендеринг. Будь-яка синхронна операція на головному потоці — читання з бази даних, парсинг JSON, завантаження зображень — створює ривки. Виносьте всі важкі операції в фонові потоки, використовуйте асинхронні API та пули потоків. В iOS DispatchQueue з qualityOfService .userInteractive повинен бути зарезервований лише для критичного коду рендерингу.

КомпонентБюджет 120fpsБюджет 60fps
CPU (головний потік)4 мс8 мс
GPU рендеринг4 мс8 мс
Композиція0.3 мс0.7 мс
Очікування VSync0–2 мс0–5 мс

120fps vs 60fps

Порівняння 120fps та 60fps не зводиться лише до подвоєння плавності. Різниця сприймається по-різному в залежності від типу контенту. Для скролінгу та анімацій UI 120fps дає суб'єктивно більш «чуткий» інтерфейс. Для ігор перевага 120fps проявляється в зниженні розмиття руху та більш точному відстеженні швидких об'єктів.

Енергоспоживання — головний компроміс. 120fps споживає на 30–50% більше енергії, ніж 60fps, при тій самій яскравості дисплея. Це означає, що на акумуляторі 4000 мАг година гри при 120fps розряджає батарею приблизно на 25–30% швидше. LTPO-дисплеї частково вирішують проблему, знижуючи частоту в статичних сценах до 1 Гц, але при активному використанні (скролінг, ігри) частота залишається на максимумі.

Вибір між 60fps та 120fps залежить від пріоритетів розробника. Для соціальних мереж, месенджерів та новинних додатків 120fps не дає значної переваги — основна взаємодія (читання, введення тексту) не виграє від надплавності. Для ігор, карт, графічних редакторів та додатків з інтенсивною анімацією 120fps стає конкурентною перевагою та маркером якості.

Тестування 120fps вимагає спеціального підходу: стандартні 60fps-метрики не показують проблеми frame pacing при 120 Гц. Використовуйте високошвидкісну камеру (120+ fps) для запису реальної поведінки екрану або вбудовані засоби платформи — Xcode Metal Capture для iOS та AGI (Android GPU Inspector) для Android. Ці інструменти показують точний час кожного кадра, включаючи очікування VSync, і допомагають виявити мікроривки.

Часті запитання

Чи завжди 120fps краще, ніж 60fps?

Не завжди. 120fps вимагає вдвічі більше енергії та обчислювальних ресурсів. Для статичного контенту та простих UI 60fps достатьо. Перевага 120fps помітна в динамічних сценах: скролінг, ігри, анімації переходів.

Як перевірити, що додаток працює в 120fps?

Використовуйте Xcode Instruments (шаблон Core Animation) або Android Studio Profiler. В iOS перевірте CADisplayLink.timestamp — інтервал між викликами повинен бути близько 8.3 мс. В Android увімкніть Show refresh rate в параметрах розробника.

Чому 120fps швидше розряджає батарею?

Дисплей оновлює пікселі вдвічі частіше, GPU виконує вдвічі більше операцій рендерингу, а CPU обробляє вдвічі більше кадрів. Кожна операція споживає енергію. LTPO-дисплеї знижують частоту в статиці, але при активному використанні енергоспоживання зростає пропорційно до частоти.

Чи може додаток працювати в 120fps на Android?

Так. Починаючи з Android 11, система підтримує різні частоти оновлення. Розробник може запитати 120 Гц через WindowManager.setPreferredRefreshRate. Однак не всі пристрої стабільно утримують 120fps — необхідна оптимізація GPU-рендерингу.

Чи помітить звичайний користувач різницю між 60 та 120fps?

В сліпому тесті більшість користувачів помічають різницю під час скролінгу та анімацій. Однак для повсякденного використання (соцмережі, відео, месенджери) різниця суб'єктивно мала. Після звикання до 120 Гц повернення до 60 Гц відчувається як уповільнення.

Підсумки

  • 120fps — частота кадрів з бюджетом 8.3 мс для надплавної анімації
  • ProMotion — адаптивна технологія Apple з діапазоном 24–120 Гц
  • LTPO-дисплеї динамічно змінюють частоту від 1 до 120 Гц для економії енергії
  • Frame pacing критичний при 120fps — нерівномірність в 2–3 мс вже помітна
  • Draw calls при 120fps не повинні перевищувати 200 на кадр
  • Енергоспоживання при 120fps на 30–50% вище, ніж при 60fps
  • Вибір 120fps виправданий для ігор, карт та додатків з інтенсивною анімацією

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також