Los frames que dibuja la GPU se acumulan en una cola de varios frames y salen al ritmo del monitor; mientras tanto, el input se retrasa.
Por qué El driver gráfico acumula por adelantado 1–3 frames en la cola → Efecto Los inputs tardan ese tiempo extra en verse en pantalla → En pantalla El ping es bajo, pero el control se siente pesado y responde tarde
Responsable principal Desarrollo de cliente (Equipo de desarrollo) · También Externo (Externo)
Tareas (Equipo de desarrollo)
Ofrecer un modo de baja latencia, acortar la cola de frames, ofrecer un límite de FPS un poco por debajo de la tasa de refresco, activar el frame pacing en teléfonos.
Tareas (Externo)
Indicar a los jugadores que, con un monitor de tasa de refresco variable, pongan un límite de FPS un poco por debajo de la tasa de refresco y que activen el modo de baja latencia del driver gráfico.
Cifras de referencia
A 60 Hz, cada frame son 16.7 ms. Si la CPU va más rápido que la GPU o que el refresco de la pantalla y la cola de tres frames (valor predeterminado en DirectX 11) se llena, se suman 50 ms. Con V-Sync de doble búfer, un frame que tardó 17 ms espera hasta el siguiente refresco de pantalla (33.3 ms) y, mientras tanto, el frame anterior se muestra una vez más.
En el gráfico
Siempre alto · Latencia de input a pantalla
Dónde mirar
Comparar en PresentMon MsClickToPhotonLatency y MsAllInputToPhotonLatency (desde el input del mouse o el teclado hasta la salida a pantalla) y DisplayLatency, cambiando V-Sync, el modo de baja latencia y el límite de FPS. MsPCLatency (desde que la computadora recibe el input hasta que lo envía a la pantalla) solo se registra si el juego emite eventos PC Latency
Se confirma si
Con V-Sync activado o sin límite de FPS, esta latencia aumenta uno o dos frames (decenas de ms), y baja con el modo de baja latencia o con un límite de FPS un poco por debajo de la tasa de refresco. El ping no cambia
Se descarta si
Si la latencia dentro de tu PC es baja y aun así el control responde tarde: “Latencia de pantalla, dispositivos de entrada y generación de frames”; si el ping es alto, apunta a la red
Se verifica con
En el entorno del jugador
Para saber más
V-Sync (sincronización vertical) es el ajuste que solo envía un frame nuevo en el instante en que el monitor refresca la imagen. Elimina el tearing, pero el input se retrasa lo que dura esa espera, y si los FPS bajan de 60 oscilan entre 60 y 30 y el juego va a tirones. Un monitor de tasa de refresco variable reduce esa espera porque refresca la imagen cuando el frame está listo. En los teléfonos pasa lo mismo. Si un juego a 30 FPS no reparte sus frames de forma regular en una pantalla de 60 Hz, la media es de 30 FPS, pero cada frame se queda en pantalla un tiempo irregular, como 49 ms, 16 ms y 33 ms, y hay tirones (ejemplo de la documentación para desarrolladores de Android). Se reduce con la biblioteca de frame pacing de Android (regulariza el intervalo de salida de los frames) o con la opción equivalente del motor.
Reduce latency with DXGI 1.3 swap chainsMicrosoft Present se bloquea hasta que la cola se vacía, y entre el dibujado y la presentación se espera casi un frame más; se reduce con una swap chain con espera (waitable swap chain)
Frame Pacing libraryAndroid (Google) En una pantalla de 60 Hz, si no hay frame nuevo se vuelve a mostrar el anterior; ejemplo de un juego a 30 FPS cuyos tiempos de frame quedan irregulares, como 49 ms, 16 ms y 33 ms
PresentMon Capture Application (README-CaptureApplication.md)Intel MsPCLatency (desde que la computadora recibe el input hasta que lo envía a la pantalla), MsClickToPhotonLatency (del clic del mouse a la pantalla), MsAllInputToPhotonLatency (del input de teclado o mouse a la pantalla), DisplayLatency (del envío del frame a su salida hacia el monitor)