120fps v mobilním vývoji — co to je, vlastnosti ProMotion a optimalizace

Autor: IT Sectr Publikováno: 2026-04-01 Doba čtení: 8 min

120fps — snímková frekvence 120 snímků za sekundu, dostupná na displejích s obnovovací frekvencí 120 Hz, kde každý snímek trvá 8,3 ms. Podle Apple WWDC 2023 Session ProMotion automaticky přepíná frekvenci od 24 do 120 Hz pro rovnováhu plynulosti a spotřeby energie. 8,3 ms — to je dvakrát méně než standardní rozpočet, což vyžaduje vážnou optimalizaci renderování.

Hlavní body

  • 120fps — snímková frekvence 120 snímků za sekundu s rozpočtem renderování 8,3 ms na snímek
  • ProMotion — technologie Apple s dynamickou frekvencí od 24 do 120 Hz
  • LTPO displeje — panely s nízkoteplotním polykrystalickým oxidem, podporující 1–120 Hz
  • Frame pacing — rovnoměrnost výstupu snímků, kritická při 120fps
  • Optimalizace pro 120fps vyžaduje dvakrát efektivnější kód než pro 60fps

Co je 120fps

120fps — dvojnásobná snímková frekvence oproti standardu, při které displej obnovuje obraz 120krát za sekundu. Každý snímek má časový rozpočet 8,33 ms — polovinu oproti 60fps. To znamená, že GPU a CPU musí zpracovávat grafiku dvakrát rychleji a všechny algoritmy pracující v 16,7 ms se při 120fps vejdou pouze za podmínky dvojnásobné účinnosti.

Prvním mobilním zařízením s 120 Hz displejem byl Razer Phone (2017) s IGZO panelem od Sharp. Apple zavedl 120 Hz v iPadu Pro (2017) pod názvem ProMotion a v iPhone — až v roce 2021 v iPhone 13 Pro. Na Androidu se 120 Hz stalo masovým od roku 2020: Samsung Galaxy S20, OnePlus 8 Pro, Xiaomi Mi 10. Dnes je 90–120 Hz standardem pro vlajkové lodě a technologie LTPO umožňuje dynamickou změnu frekvence.

Vnímání 120fps uživatelem se od 60fps liší ne tolik absencí trhání, ale pocitem okamžité odezvy — kurzor, scrollování, animace sledují prst s minimálním zpožděním. Tento pocit je často popisován jako „tekutý" nebo „olejový" displej. Po používání 120 Hz je návrat k 60 Hz subjektivně vnímán jako zpomalení, i když objektivně nedochází k vynechávání snímků.

Jak fungují 120 Hz displeje

120 Hz displej fyzicky obnovuje pixely 120krát za sekundu a odesílá signál po sběrnici MIPI DSI/DPI s dvojnásobnou frekvencí. Každý pixel dostává novou hodnotu jasu každých 8,3 ms. U OLED panelů to znamená, že doba emise každého subpixelu se zkracuje, což vyžaduje jasnější podsvícení pro zachování stejného jasu obrazu.

Technologie LTPO

LTPO (Low-Temperature Polycrystalline Oxide) — technologie výroby OLED displejů kombinující LTPS (vysoká rychlost přepínání) a IGZO (nízká spotřeba energie ve statickém stavu). LTPO umožňuje displeji dynamicky měnit obnovovací frekvenci od 1 do 120 Hz bez dodatečných nákladů na energii. V režimu Always-On Display frekvence klesá na 1 Hz, při scrollování stoupá na 120 Hz. To přináší úsporu až 30 % energie ve srovnání s displeji pracujícími neustále na 120 Hz.

Frame Pacing při 120fps

Frame pacing — rovnoměrnost intervalů mezi snímky, nejdůležitější parametr při 120fps. Zatímco při 60fps je rozdíl 2–3 ms mezi snímky nepostřehnutelný, při 120fps představuje stejný absolutní rozdíl 25 % doby trvání snímku a je vnímán jako trhání. Pro plynulé 120fps musí každý snímek spadat do 8,3 ms ±1 ms. Nástroje jako FrameRate v Xcode Instruments ukazují nejen průměrné FPS, ale také histogram intervalů pro hodnocení frame pacingu.

swift
// iOS — detekce 120 Hz displeje přes CADisplayLink
func checkDisplayRefreshRate() {
    let link = CADisplayLink(target: self,
                                  selector: #selector(step))
    if let preferredRate = link?.preferredFrameRateRange {
        print("Max. frekvence: \( preferredRate.maximum) Hz")
    }
}

ProMotion v iOS

ProMotion — ochranná známka Apple pro displeje s adaptivní obnovovací frekvencí až 120 Hz. Poprvé představen v iPadu Pro 10,5 (2017), poté se objevil v iPhone 13 Pro (2021) a MacBooku Pro (2021). ProMotion není jen 120 Hz — je to inteligentní řízení frekvence: systém analyzuje typ obsahu a přepíná frekvenci pro optimální rovnováhu výkonu a spotřeby energie.

Režimy činnosti ProMotion

ProMotion podporuje čtyři režimy: 24 Hz pro statický obsah a video 24fps, 30 Hz pro video 30fps, 60 Hz pro navigaci v UI a 120 Hz pro scrollování a hry. Přepínání mezi režimy probíhá během jednoho snímku (8,3 ms) a je pro uživatele nepostřehnutelné. Vývojář může ovlivnit výběr frekvence pomocí preferredFrameRateRange v CADisplayLink, ale konečné rozhodnutí činí systém na základě analýzy obsahu.

API pro vývojáře

Apple poskytuje API pro práci s ProMotion od iOS 15. CADisplayLink.preferredFrameRateRange umožňuje nastavit preferovaný rozsah frekvence. UIScene.ActivationConditions může ovlivnit frekvenci při přechodech mezi scénami. Pro renderování Metal musí být CAMetalLayer.displaySyncEnabled true pro synchronizaci s ProMotion. Pokud aplikace není optimalizována pro 120fps, iOS ji automaticky přepne na 60 Hz, což je vidět v Xcode v sekci GPU Report.

swift
// iOS — požadavek 120fps pro herní režim
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)

Optimalizace pro 120fps

Optimalizace pro 120fps — není jen dvojnásobné zrychlení kódu, ale přehodnocení architektury renderování. Operace, které se vešly do 16,7 ms při 60fps, musí být nyní provedeny za 8,3 ms. To ovlivňuje všechny fáze pipeline: přípravu CPU, renderování GPU a systémová volání.

Snižení draw calls pro 120fps

Při 120fps musí být počet draw calls na snímek dvakrát menší než při 60fps, aby bylo zachováno stejné zatížení GPU. Zatímco při 60fps je povoleno 400 draw calls, při 120fps — ne více než 200. Používejte texturové atlasy, spojování meshů a GPU-instancing pro snížení volání renderování. Na Metal používejte Indirect Command Buffers, na Vulkan — Secondary Command Buffers pro paralelní zápis příkazů.

Shadery — další kritický faktor. Složité pixel shadery s mnoha vzorky textur a matematickými operacemi mohou snadno překročit rozpočet 8,3 ms. Používejte shadery s nízkou přesností (half místo float), snižte počet instrukcí a vzorků textur. Na mobilních GPU (Apple A17, Snapdragon 8 Gen 3) trvá každý vzorek textury 2–4 cykly a při 120fps se to může stát úzkým hrdlem.

CPU a Main Thread

Při 120fps musí main thread připravit snímek za 4–5 ms, aby ponechal čas GPU pro renderování. Jakákoli synchronní operace na main thread — čtení z databáze, parsování JSON, načítání obrázků — vytváří trhání. Přesuňte všechny těžké operace do vláken na pozadí, používejte asynchronní API a fondy vláken. V iOS by DispatchQueue s qualityOfService .userInteractive měla být vyhrazena pouze pro kritický kód renderování.

KomponentaRozpočet 120fpsRozpočet 60fps
CPU (main thread)4 ms8 ms
Renderování GPU4 ms8 ms
Kompozit0,3 ms0,7 ms
Čekání na VSync0–2 ms0–5 ms

120fps vs 60fps

Srovnání 120fps a 60fps se neomezuje na zdvojnásobení plynulosti. Rozdíl je vnímán různě v závislosti na typu obsahu. Pro scrollování a UI animace poskytuje 120fps subjektivně „odezívější" rozhraní. Pro hry se výhoda 120fps projevuje ve snížení rozmazání pohybu a přesnějším sledování rychlých objektů.

Spotřeba energie — hlavní kompromis. 120fps spotřebovává o 30–50 % více energie než 60fps při stejném jasu displeje. To znamená, že na baterii 4000 mAh vybíjí hodina hraní při 120fps baterii přibližně o 25–30 % rychleji. LTPO displeje problém částečně řeší snížením frekvence ve statických scénách na 1 Hz, ale při aktivním používání (scrollování, hry) frekvence zůstává na maximu.

Volba mezi 60fps a 120fps závisí na prioritách vývojáře. Pro sociální sítě, messengery a zpravodajské aplikace nepřináší 120fps významnou výhodu — základní interakce (čtení, zadávání textu) z superplynulosti netěží. Pro hry, mapy, grafické editory a aplikace s intenzivní animací se 120fps stává konkurenční výhodou a znakem kvality.

Testování 120fps vyžaduje speciální přístup: standardní metriky 60fps neukazují problémy frame pacingu při 120 Hz. Používejte vysokorychlostní kameru (120+ fps) pro záznam skutečného chování obrazovky nebo vestavěné nástroje platformy — Xcode Metal Capture pro iOS a AGI (Android GPU Inspector) pro Android. Tyto nástroje ukazují přesný čas každého snímku včetně čekání na VSync a pomáhají odhalit mikro-trhání.

Často kladené otázky

Je 120fps vždy lepší než 60fps?

Ne vždy. 120fps vyžaduje dvakrát více energie a výpočetních zdrojů. Pro statický obsah a jednoduché UI stačí 60fps. Výhoda 120fps je patrná v dynamických scénách: scrollování, hry, přechodové animace.

Jak zkontrolovat, že aplikace běží na 120fps?

Použijte Xcode Instruments (šablonu Core Animation) nebo Android Studio Profiler. V iOS zkontrolujte CADisplayLink.timestamp — interval mezi voláními by měl být přibližně 8,3 ms. V Androidu zapněte Show refresh rate v Developer Options.

Proč 120fps vybíjí baterii rychleji?

Displej obnovuje pixely dvakrát častěji, GPU provádí dvakrát více renderovacích operací, CPU zpracovává dvakrát více snímků. Každá operace spotřebovává energii. LTPO displeje snižují frekvenci ve statickém stavu, ale při aktivním používání spotřeba energie roste úměrně s frekvencí.

Může aplikace běžet na 120fps na Androidu?

Ano. Od Androidu 11 systém podporuje různé obnovovací frekvence. Vývojář může požádat o 120 Hz prostřednictvím WindowManager.setPreferredRefreshRate. Nicméně ne všechna zařízení stabilně udržují 120fps — je nutná optimalizace GPU renderování.

Postřehne běžný uživatel rozdíl mezi 60 a 120fps?

Ve slepém testu většina uživatelů postřehne rozdíl při scrollování a animacích. Pro běžné použití (sociální sítě, video, messengery) je však rozdíl subjektivně malý. Po přivyknutí na 120 Hz je návrat k 60 Hz pociťován jako zpomalení.

Shrnutí

  • 120fps — snímková frekvence s rozpočtem 8,3 ms pro superplynulou animaci
  • ProMotion — adaptivní technologie Apple s rozsahem 24–120 Hz
  • LTPO displeje dynamicky mění frekvenci od 1 do 120 Hz pro úsporu energie
  • Frame pacing je kritický při 120fps — nerovnoměrnost 2–3 ms je již patrná
  • Draw calls při 120fps by neměly přesáhnout 200 na snímek
  • Spotřeba energie 120fps je o 30–50 % vyšší než 60fps
  • Volba 120fps je odůvodněná pro hry, mapy a aplikace s intenzivní animací

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také