120fps — una frecuencia de 120 cuadros por segundo disponible en pantallas con tasa de refresco de 120 Hz, donde cada cuadro toma 8.3 ms. Según Apple WWDC 2023 Session, ProMotion cambia automáticamente la frecuencia de 24 a 120 Hz para equilibrar suavidad y consumo de energía. 8.3 ms es la mitad del presupuesto estándar, lo que exige una optimización seria del renderizado.
Puntos clave
120fps es el doble de la frecuencia estándar, donde la pantalla actualiza la imagen 120 veces por segundo. Cada cuadro tiene un presupuesto de 8.33 ms — la mitad que a 60fps. Esto significa que la GPU y la CPU deben procesar gráficos el doble de rápido, y todos los algoritmos que funcionan en 16.7 ms a 60fps solo encajan a 120fps si son el doble de eficientes.
El primer dispositivo móvil con pantalla de 120 Hz fue el Razer Phone (2017) con panel IGZO de Sharp. Apple introdujo 120 Hz en el iPad Pro (2017) bajo el nombre ProMotion, y en iPhones solo en 2021 con el iPhone 13 Pro. En Android, 120 Hz se volvió masivo a partir de 2020: Samsung Galaxy S20, OnePlus 8 Pro, Xiaomi Mi 10. Hoy, 90–120 Hz es el estándar para dispositivos insignia, y la tecnología LTPO permite el cambio dinámico de frecuencia.
La percepción del usuario de 120fps difiere de 60fps no tanto por la ausencia de tirones, sino por la sensación de respuesta instantánea — el cursor, el desplazamiento y las animaciones siguen al dedo con latencia mínima. Esta sensación a menudo se describe como una pantalla “líquida” o “aceitosa”. Después de usar 120 Hz, volver a 60 Hz se siente subjetivamente como retardos, incluso si no hay caídas objetivas de cuadros.
Una pantalla de 120 Hz actualiza físicamente los píxeles 120 veces por segundo, enviando una señal a través del bus MIPI DSI/DPI a frecuencia doble. Cada píxel recibe un nuevo valor de brillo cada 8.3 ms. Para paneles OLED, esto significa que el tiempo de emisión de cada subpíxel se reduce, requiriendo una retroiluminación más brillante para mantener la misma luminosidad de imagen.
LTPO (óxido policristalino de baja temperatura) es una tecnología de fabricación de pantallas OLED que combina LTPS (alta velocidad de conmutación) e IGZO (bajo consumo en estático). LTPO permite que la pantalla cambie dinámicamente su frecuencia de 1 a 120 Hz sin coste energético adicional. En modo Always-On Display, la frecuencia baja a 1 Hz; durante el desplazamiento, sube a 120 Hz. Esto proporciona un ahorro de energía de hasta el 30% en comparación con pantallas que funcionan constantemente a 120 Hz.
Frame pacing — la uniformidad de los intervalos entre cuadros, es el parámetro más importante a 120fps. Mientras que a 60fps una diferencia de 2–3 ms entre cuadros es imperceptible, a 120fps la misma diferencia absoluta representa el 25% de la duración del cuadro y se percibe como tirón. Para un 120fps fluido, cada cuadro debe encajar en 8.3 ms ±1 ms. Herramientas como FrameRate en Xcode Instruments muestran no solo el FPS promedio sino también un histograma de intervalos para evaluar el frame pacing.
// iOS — detección de pantalla de 120 Hz mediante CADisplayLink
func checkDisplayRefreshRate() {
let link = CADisplayLink(target: self,
selector: #selector(step))
if let preferredRate = link?.preferredFrameRateRange {
print("Frecuencia máx.: \("preferredRate.maximum) Hz")
}
}
ProMotion es la marca registrada de Apple para pantallas con frecuencias de actualización adaptativas de hasta 120 Hz. Introducida por primera vez en el iPad Pro 10.5 (2017), luego apareció en el iPhone 13 Pro (2021) y MacBook Pro (2021). ProMotion no es solo 120 Hz — es gestión inteligente de frecuencia: el sistema analiza el tipo de contenido y cambia la frecuencia para el equilibrio óptimo entre rendimiento y consumo de energía.
ProMotion soporta cuatro modos: 24 Hz para contenido estático y vídeo a 24fps, 30 Hz para vídeo a 30fps, 60 Hz para navegación de UI y 120 Hz para desplazamiento y juegos. El cambio entre modos ocurre dentro de un solo cuadro (8.3 ms) y es imperceptible para el usuario. Los desarrolladores pueden influir en la selección de frecuencia mediante preferredFrameRateRange en CADisplayLink, pero la decisión final la toma el sistema basándose en el análisis del contenido.
Apple proporciona APIs para trabajar con ProMotion desde iOS 15. CADisplayLink.preferredFrameRateRange permite establecer un rango de frecuencia preferido. UIScene.ActivationConditions puede afectar la frecuencia al transicionar entre escenas. Para renderizado Metal, CAMetalLayer.displaySyncEnabled debe ser true para sincronización con ProMotion. Si una aplicación no está optimizada para 120fps, iOS la cambia automáticamente a 60 Hz, lo que se puede ver en Xcode en la sección GPU Report.
// iOS — solicitud de 120fps para modo de juego
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)
La optimización para 120fps no se trata solo de duplicar la velocidad del código, sino de replantear la arquitectura de renderizado. Las operaciones que cabían en 16.7 ms a 60fps ahora deben completarse en 8.3 ms. Esto afecta a todas las etapas del pipeline: preparación de CPU, renderizado de GPU y llamadas al sistema.
A 120fps, el número de draw calls por cuadro debe ser la mitad que a 60fps para mantener la misma carga de GPU. Si 400 draw calls son aceptables a 60fps, entonces a 120fps no se permiten más de 200. Usa texture atlases, fusión de mallas e instanciado de GPU para reducir las llamadas de dibujo. En Metal, usa Indirect Command Buffers; en Vulkan, usa Secondary Command Buffers para grabación paralela de comandos.
Shaders — otro factor crítico. Los shaders de píxeles complejos con múltiples muestreos de textura y operaciones matemáticas pueden exceder fácilmente el presupuesto de 8.3 ms. Usa shaders de baja precisión (half en lugar de float), reduce el número de instrucciones y muestras de textura. En GPUs móviles (Apple A17, Snapdragon 8 Gen 3), cada muestreo de textura toma 2–4 ciclos, y a 120fps esto puede convertirse en un cuello de botella.
A 120fps, el hilo principal debe preparar un cuadro en 4–5 ms para dejar tiempo al renderizado de GPU. Cualquier operación síncrona en el hilo principal — lectura de base de datos, análisis JSON, carga de imágenes — crea tirones. Mueve todas las operaciones pesadas a hilos secundarios, usa APIs asíncronas y pools de hilos. En iOS, DispatchQueue con qualityOfService .userInteractive debe reservarse solo para código crítico de renderizado.
| Componente | Presupuesto 120fps | Presupuesto 60fps |
|---|---|---|
| CPU (hilo principal) | 4 ms | 8 ms |
| Renderizado GPU | 4 ms | 8 ms |
| Composición | 0.3 ms | 0.7 ms |
| Espera VSync | 0–2 ms | 0–5 ms |
Comparar 120fps y 60fps no se reduce a duplicar la suavidad. La diferencia se percibe de forma diferente según el tipo de contenido. Para desplazamiento y animaciones de UI, 120fps proporciona una interfaz subjetivamente más “responsiva”. Para juegos, la ventaja de 120fps se manifiesta en menor desenfoque de movimiento y seguimiento más preciso de objetos rápidos.
Consumo de energía — el principal compromiso. 120fps consume 30–50% más energía que 60fps al mismo brillo de pantalla. Esto significa que en una batería de 4000 mAh, una hora de juego a 120fps descarga la batería aproximadamente 25–30% más rápido. Las pantallas LTPO resuelven parcialmente el problema reduciendo la frecuencia en escenas estáticas a 1 Hz, pero durante el uso activo (desplazamiento, juegos) la frecuencia se mantiene al máximo.
La elección entre 60fps y 120fps depende de las prioridades del desarrollador. Para redes sociales, mensajería y aplicaciones de noticias, 120fps no ofrece una ventaja significativa — la interacción principal (lectura, entrada de texto) no se beneficia de la ultra-suavidad. Para juegos, mapas, editores gráficos y aplicaciones con animación intensiva, 120fps se convierte en una ventaja competitiva y un marcador de calidad.
Probar 120fps requiere un enfoque especial: las métricas estándar de 60fps no revelan problemas de frame pacing a 120 Hz. Usa una cámara de alta velocidad (120+ fps) para grabar el comportamiento real de la pantalla o herramientas integradas de la plataforma — Xcode Metal Capture para iOS y AGI (Android GPU Inspector) para Android. Estas herramientas muestran el tiempo exacto de cada cuadro, incluyendo la espera VSync, y ayudan a identificar micro-tirones.
Preguntas frecuentes
No siempre. 120fps requiere el doble de energía y recursos computacionales. Para contenido estático e interfaces simples, 60fps es suficiente. La ventaja de 120fps es notable en escenas dinámicas: desplazamiento, juegos, animaciones de transición.
Usa Xcode Instruments (plantilla Core Animation) o Android Studio Profiler. En iOS, verifica CADisplayLink.timestamp — el intervalo entre llamadas debe ser de aproximadamente 8.3 ms. En Android, activa Show refresh rate en Developer Options.
La pantalla actualiza los píxeles el doble de veces, la GPU realiza el doble de operaciones de renderizado y la CPU procesa el doble de cuadros. Cada operación consume energía. Las pantallas LTPO reducen la frecuencia en estático, pero durante el uso activo, el consumo de energía aumenta proporcionalmente a la frecuencia.
Sí. A partir de Android 11, el sistema soporta diferentes frecuencias de actualización. Los desarrolladores pueden solicitar 120 Hz mediante WindowManager.setPreferredRefreshRate. Sin embargo, no todos los dispositivos mantienen establemente 120fps — es necesaria optimización del renderizado GPU.
En una prueba ciega, la mayoría de los usuarios notan la diferencia durante el desplazamiento y las animaciones. Sin embargo, para el uso cotidiano (redes sociales, vídeo, mensajería), la diferencia es subjetivamente pequeña. Después de acostumbrarse a 120 Hz, volver a 60 Hz se siente como ralentización.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también