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 мс, при 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 и Main Thread

При 120fps main thread должен подготовить кадр за 4–5 мс, чтобы оставить время GPU на рендеринг. Любая синхронная операция на main thread — чтение из базы данных, парсинг JSON, загрузка изображений — создаёт статтер. Выносите все тяжёлые операции в фоновые потоки, используйте асинхронные API и пулы потоков. В iOS DispatchQueue с qualityOfService .userInteractive должен быть зарезервирован только для критичного кода рендеринга.

Компонент120fps бюджет60fps бюджет
CPU (main thread)4 мс8 мс
GPU рендеринг4 мс8 мс
Композит0.3 мс0.7 мс
VSync ожидание0–2 мс0–5 мс

120fps vs 60fps

Сравнение 120fps и 60fps не сводится к удвоению плавности. Разница воспринимается по-разному в зависимости от типа контента. Для скроллинга и анимаций UI 120fps даёт субъективно более «отзывчивый» интерфейс. Для игр преимущество 120fps проявляется в снижении motion blur и более точном трекинге быстрых объектов.

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

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

Тестирование 120fps требует специального подхода: стандартные 60fps-метрики не показывают проблемы frame pacing при 120 Гц. Используйте high-speed камеру (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 в Developer Options.

Почему 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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