120fps i mobilutveckling — vad är det, ProMotion-funktioner och optimering

Författare: IT Sectr Publicerad: 2026-04-01 Lästid: 8 min

120fps — en bildfrekvens på 120 bilder per sekund, tillgänglig på skärmar med 120 Hz uppdateringsfrekvens, där varje bild tar 8,3 ms. Enligt Apple WWDC 2023 Session växlar ProMotion automatiskt frekvensen från 24 till 120 Hz för balans mellan mjukhet och strömförbrukning. 8,3 ms — detta är hälften av standardbudgeten, vilket kräver seriös optimering av rendering.

Huvudpunkter

  • 120fps — bildfrekvens på 120 bilder per sekund med renderingsbudget på 8,3 ms per bild
  • ProMotion — Apple-teknik med dynamisk frekvens från 24 till 120 Hz
  • LTPO-skärmar — paneler med lågtemperatur polykristallin oxid, stödjer 1–120 Hz
  • Frame pacing — jämnhet i bildutmatning, kritisk vid 120fps
  • Optimering för 120fps kräver dubbelt så effektiv kod som för 60fps

Vad är 120fps

120fps — dubbel bildfrekvens jämfört med standarden, där skärmen uppdaterar bilden 120 gånger per sekund. Varje bild har en tidsbudget på 8,33 ms — hälften av 60fps. Det innebär att GPU och CPU måste bearbeta grafiken dubbelt så snabbt, och alla algoritmer som fungerar på 16,7 ms vid 60fps hinner vid 120fps endast med dubbel effektivitet.

Den första mobila enheten med 120 Hz skärm var Razer Phone (2017) med IGZO-panel från Sharp. Apple introducerade 120 Hz i iPad Pro (2017) under namnet ProMotion, och i iPhone — först 2021 i iPhone 13 Pro. På Android blev 120 Hz massivt från 2020: Samsung Galaxy S20, OnePlus 8 Pro, Xiaomi Mi 10. Idag är 90–120 Hz standard för flaggskeppsenheter och LTPO-teknik möjliggör dynamisk frekvensändring.

Upplevelsen av 120fps skiljer sig från 60fps inte så mycket genom frånvaro av ryck, utan genom känslan av omedelbar respons — markören, scrollning, animationer följer fingret med minimal fördröjning. Denna känsla beskrivs ofta som en „flytande" eller „oljig" skärm. Efter att ha använt 120 Hz upplevs återgång till 60 Hz subjektivt som en fördröjning, även om det objektivt inte finns några uteblivna bilder.

Hur fungerar 120 Hz skärmar

En 120 Hz skärm uppdaterar fysiskt pixlarna 120 gånger per sekund och skickar signal via MIPI DSI/DPI-bussen med dubbel frekvens. Varje pixel får ett nytt ljusstyrkevärde var 8,3 ms. För OLED-paneler innebär detta att emissionstiden för varje subpixel förkortas, vilket kräver starkare bakgrundsbelysning för att bibehålla samma bildljusstyrka.

LTPO-teknik

LTPO (Low-Temperature Polycrystalline Oxide) — en teknik för tillverkning av OLED-skärmar som kombinerar LTPS (hög växlingshastighet) och IGZO (låg strömförbrukning i statiskt tillstånd). LTPO gör det möjligt för skärmen att dynamiskt ändra uppdateringsfrekvensen från 1 till 120 Hz utan extra energikostnad. I Always-On Display-läge sjunker frekvensen till 1 Hz, vid scrollning stiger den till 120 Hz. Detta ger en besparing på upp till 30% energi jämfört med skärmar som ständigt arbetar på 120 Hz.

Frame Pacing vid 120fps

Frame pacing — jämnheten i intervall mellan bilder, den viktigaste parametern vid 120fps. Om en skillnad på 2–3 ms mellan bilder vid 60fps är omärkbar, utgör samma absoluta skillnad vid 120fps 25% av bildens varaktighet och upplevs som ryck. För mjuka 120fps måste varje bild ligga inom 8,3 ms ±1 ms. Verktyg som FrameRate i Xcode Instruments visar inte bara genomsnittlig FPS utan även ett histogram över intervall för att bedöma frame pacing.

swift
// iOS — detektering av 120 Hz skärm via CADisplayLink
func checkDisplayRefreshRate() {
    let link = CADisplayLink(target: self,
                                  selector: #selector(step))
    if let preferredRate = link?.preferredFrameRateRange {
        print("Max. frekvens: \(preferredRate.maximum) Hz")
    }
}

ProMotion i iOS

ProMotion — Apples varumärke för skärmar med adaptiv uppdateringsfrekvens upp till 120 Hz. Först introducerad i iPad Pro 10,5 (2017), sedan dök den upp i iPhone 13 Pro (2021) och MacBook Pro (2021). ProMotion är inte bara 120 Hz — det är intelligent frekvenshantering: systemet analyserar innehållstypen och växlar frekvens för optimal balans mellan prestanda och strömförbrukning.

ProMotion-arbetslägen

ProMotion stöder fyra lägen: 24 Hz för statiskt innehåll och video i 24fps, 30 Hz för video i 30fps, 60 Hz för UI-navigering och 120 Hz för scrollning och spel. Växling mellan lägen sker inom en bild (8,3 ms) och är omärkbar för användaren. Utvecklaren kan påverka frekvensvalet via preferredFrameRateRange i CADisplayLink, men det slutgiltiga beslutet fattas av systemet baserat på innehållsanalys.

API för utvecklare

Apple tillhandahåller API för arbete med ProMotion från och med iOS 15. CADisplayLink.preferredFrameRateRange gör det möjligt att ställa in önskat frekvensintervall. UIScene.ActivationConditions kan påverka frekvensen vid övergångar mellan scener. För Metal-rendering måste CAMetalLayer.displaySyncEnabled vara true för synkronisering med ProMotion. Om appen inte är optimerad för 120fps växlar iOS automatiskt den till 60 Hz, vilket syns i Xcode i avsnittet GPU Report.

swift
// iOS — begäran om 120fps för spelläge
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)

Optimering för 120fps

Optimering för 120fps — är inte bara att dubbelt snabba upp koden, utan att ompröva renderingsarkitekturen. Operationer som rymdes inom 16,7 ms vid 60fps måste nu utföras på 8,3 ms. Detta påverkar alla steg i pipeline: CPU-förberedelse, GPU-rendering och systemanrop.

Minskning av draw calls för 120fps

Vid 120fps måste antalet draw calls per bild vara hälften av vad det är vid 60fps för att bibehålla samma GPU-belastning. Om 400 draw calls är tillåtna vid 60fps, så vid 120fps — inte mer än 200. Använd texturatlasser, mesh-sammanslagning och GPU-instansiering för att minska renderingsanrop. På Metal, använd Indirect Command Buffers, på Vulkan — Secondary Command Buffers för parallell skrivning av kommandon.

Shaders — ytterligare en kritisk faktor. Komplexa pixel-shaders med flera texturprovtagningar och matematiska operationer kan lätt överskrida budgeten på 8,3 ms. Använd shaders med låg precision (half istället för float), minska antalet instruktioner och texturprover. På mobila GPU:er (Apple A17, Snapdragon 8 Gen 3) tar varje texturprovtagning 2–4 cykler, och vid 120fps kan detta bli en flaskhals.

CPU och Main Thread

Vid 120fps måste main thread förbereda bilden på 4–5 ms för att lämna tid åt GPU för rendering. Varje synkron operation på main thread — databasläsning, JSON-tolkning, bildladdning — skapar ryck. Flytta alla tunga operationer till bakgrundstrådar, använd asynkrona API:er och trådpooler. I iOS bör DispatchQueue med qualityOfService .userInteractive endast reserveras för kritisk renderingskod.

Komponent120fps budget60fps budget
CPU (main thread)4 ms8 ms
GPU-rendering4 ms8 ms
Komposit0,3 ms0,7 ms
VSync-väntan0–2 ms0–5 ms

120fps vs 60fps

Jämförelse av 120fps och 60fps handlar inte bara om fördubblad mjukhet. Skillnaden uppfattas olika beroende på innehållstyp. För scrollning och UI-animationer ger 120fps subjektivt ett „responsivare" gränssnitt. För spel visar sig fördelen med 120fps i minskad rörelseoskärpa och mer exakt spårning av snabba objekt.

Strömförbrukning — den främsta kompromissen. 120fps förbrukar 30–50% mer energi än 60fps vid samma skärmljusstyrka. Det innebär att på ett 4000 mAh batteri tömmer en timmes spelande på 120fps batteriet cirka 25–30% snabbare. LTPO-skärmar löser delvis problemet genom att sänka frekvensen i statiska scener till 1 Hz, men vid aktiv användning (scrollning, spel) förblir frekvensen på maximum.

Valet mellan 60fps och 120fps beror på utvecklarens prioriteringar. För sociala nätverk, meddelandetjänster och nyhetsappar ger 120fps ingen betydande fördel — grundläggande interaktion (läsning, textinmatning) drar inte nytta av supermjukhet. För spel, kartor, grafiska redigerare och appar med intensiv animation blir 120fps en konkurrensfördel och en kvalitetsmarkör.

Testning av 120fps kräver ett speciellt tillvägagångssätt: standard 60fps-mått visar inte problem med frame pacing vid 120 Hz. Använd en höghastighetskamera (120+ fps) för att spela in skärmens faktiska beteende eller plattformens inbyggda verktyg — Xcode Metal Capture för iOS och AGI (Android GPU Inspector) för Android. Dessa verktyg visar exakt tid för varje bild, inklusive VSync-väntan, och hjälper till att upptäcka mikro-ryck.

Vanliga frågor

Är 120fps alltid bättre än 60fps?

Inte alltid. 120fps kräver dubbelt så mycket energi och beräkningsresurser. För statiskt innehåll och enkelt UI räcker 60fps. Fördelen med 120fps märks i dynamiska scener: scrollning, spel, övergångsanimationer.

Hur kontrollerar man att appen kör i 120fps?

Använd Xcode Instruments (mall Core Animation) eller Android Studio Profiler. I iOS, kontrollera CADisplayLink.timestamp — intervallet mellan anrop bör vara cirka 8,3 ms. I Android, aktivera Show refresh rate i Developer Options.

Varför tömmer 120fps batteriet snabbare?

Skärmen uppdaterar pixlar dubbelt så ofta, GPU utför dubbelt så många renderingsoperationer, CPU bearbetar dubbelt så många bilder. Varje operation förbrukar energi. LTPO-skärmar minskar frekvensen i statiskt tillstånd, men vid aktiv användning ökar strömförbrukningen proportionellt mot frekvensen.

Kan en app köra i 120fps på Android?

Ja. Från och med Android 11 stöder systemet olika uppdateringsfrekvenser. Utvecklaren kan begära 120 Hz via WindowManager.setPreferredRefreshRate. Men inte alla enheter håller stabilt 120fps — optimering av GPU-rendering krävs.

Kommer en vanlig användare märka skillnaden mellan 60 och 120fps?

I ett blindtest märker de flesta användare skillnaden vid scrollning och animationer. För vanlig användning (sociala medier, video, meddelandetjänster) är skillnaden dock subjektivt liten. Efter att ha vant sig vid 120 Hz känns återgången till 60 Hz som en fördröjning.

Sammanfattning

  • 120fps — bildfrekvens med budget på 8,3 ms för supermjuk animation
  • ProMotion — adaptiv Apple-teknik med intervall 24–120 Hz
  • LTPO-skärmar ändrar dynamiskt frekvensen från 1 till 120 Hz för energibesparing
  • Frame pacing är kritiskt vid 120fps — ojämnhet på 2–3 ms är redan märkbar
  • Draw calls vid 120fps bör inte överstiga 200 per bild
  • Strömförbrukning för 120fps är 30–50% högre än för 60fps
  • Valet av 120fps är motiverat för spel, kartor och appar med intensiv animation

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också