Puedo enviar un paquete IP a Europa más rápido de lo que puedo enviar un píxel a la pantalla. ¿Qué tal está eso?
Y si no fuera John Carmack, lo archivaría bajo "las interwebs son tontas".
Pero este es John Carmack.
¿Cómo puede ser esto cierto?
Para evitar discusiones sobre qué se entiende exactamente en el tweet, esto es lo que me gustaría recibir respuesta:
¿Cuánto tiempo lleva, en el mejor de los casos, enviar un único paquete IP desde un servidor en los EE. UU. A algún lugar de Europa, midiendo desde el momento en que un software dispara el paquete hasta el punto en que lo recibe un software anterior? nivel del conductor?
¿Cuánto tiempo lleva, en el mejor de los casos, que se muestre un píxel en la pantalla, medido desde el punto en que un software por encima del nivel del controlador cambia el valor de ese píxel?
Incluso suponiendo que la conexión transatlántica es el mejor cable de fibra óptica que el dinero puede comprar, y que John está sentado justo al lado de su ISP, los datos aún deben codificarse en un paquete IP, pasar de la memoria principal a su tarjeta de red , desde allí a través de un cable en la pared hacia otro edificio, probablemente salte a través de algunos servidores allí (pero supongamos que solo necesita un solo relé), se fotoniza a través del océano, se convierte nuevamente en un impulso eléctrico por un fotosensor, y finalmente interpretado por otra tarjeta de red. Paremos ahí.
En cuanto al píxel, esta es una palabra de máquina simple que se envía a través de la ranura PCI express, escrita en un búfer, que luego se vacía en la pantalla. Incluso teniendo en cuenta el hecho de que "píxeles individuales" probablemente den como resultado que se transmita todo el búfer de la pantalla a la pantalla, no veo cómo esto puede ser más lento: no es como si los bits se transfirieran "uno por uno", sino que son impulsos eléctricos consecutivos que se transfieren sin latencia entre ellos (¿verdad?).
fuente
Respuestas:
El tiempo para enviar un paquete a un host remoto es la mitad del tiempo informado por ping, que mide un tiempo de ida y vuelta.
La pantalla que estaba midiendo era una pantalla montada en la cabeza Sony HMZ-T1 conectada a una PC.
Para medir la latencia de la pantalla, tengo un pequeño programa que se encuentra en un bucle de giro que sondea un controlador de juego, borra un color diferente e intercambia buffers cada vez que se presiona un botón. Grabo un video que muestra tanto el controlador del juego como la pantalla con una cámara de 240 fps, luego cuento el número de fotogramas entre el botón que se presiona y la pantalla comienza a mostrar un cambio.
El controlador del juego se actualiza a 250 Hz, pero no hay una forma directa de medir la latencia en la ruta de entrada (desearía poder conectar cosas a un puerto paralelo y usar las instrucciones de entrada / salida de Sam). Como experimento de control, hago la misma prueba en una pantalla CRT antigua con un retroceso vertical de 170 Hz. Los monitores Aero y múltiples pueden introducir latencia adicional, pero en condiciones óptimas generalmente verá un cambio de color que comienza en algún punto de la pantalla (vsync desactivado) dos cuadros de 240 Hz después de que el botón se apaga. Parece que hay 8 ms de latencia pasando por el procesamiento USB HID , pero me gustaría precisar esto mejor en el futuro.
No es raro ver que los monitores LCD de escritorio toman más de 10 cuadros de 240 Hz para mostrar un cambio en la pantalla. El Sony HMZ promedió alrededor de 18 cuadros, o más de 70 milisegundos en total.
Esto estaba en una configuración multimonitor, por lo que un par de tramas son culpa del conductor.
Alguna latencia es intrínseca a una tecnología. Los paneles LCD tardan entre 4 y 20 milisegundos en cambiar, según la tecnología. Las pantallas LCoS de un solo chip deben almacenar un cuadro de video para convertir de píxeles empaquetados a planos de color secuenciales. Las pantallas de trama láser necesitan una cierta cantidad de almacenamiento en búfer para convertir el retorno de trama en patrones de exploración de ida y vuelta. Una pantalla 3D estéreo secuencial o superior-inferior dividida en cuadros no puede actualizar la mitad del cuadro la mitad del tiempo.
Las pantallas OLED deberían estar entre las mejores, como lo demuestra un eMagin Z800 , que es comparable a un CRT de 60 Hz en latencia, mejor que cualquier otro que no haya probado CRT.
El mal rendimiento de Sony se debe a una mala ingeniería de software. Algunas funciones de TV, como la interpolación de movimiento, requieren el almacenamiento en búfer de al menos un cuadro y pueden beneficiarse de más. Otras características, como menús flotantes, conversiones de formato, protección de contenido, etc., podrían implementarse de manera continua, pero la salida fácil es simplemente almacenar entre cada subsistema, lo que puede acumular hasta media docena de cuadros en algunos sistemas .
Esto es muy desafortunado, pero todo se puede arreglar, y espero confiar más en los fabricantes de pantallas sobre la latencia en el futuro.
fuente
Algunos monitores pueden tener un retraso de entrada significativo
Es posible contar con una conexión a Internet increíble en comparación con un combo de tarjeta de video y monitor de mala calidad
Fuentes:
Juegos de consola: el factor de retraso • Página 2
Una pantalla puede agregar otros 5-10 ms
Por lo tanto, una consola puede tener hasta 210 ms de retraso
Y, según el comentario de David, el mejor caso debería ser de unos 70 ms para enviar un paquete
fuente
Es muy simple demostrar el retraso de entrada en los monitores, simplemente pegue un lcd al lado de un CRT y muestre un reloj o una animación llenando la pantalla y grábelo. Uno puede estar un segundo o más atrás. Es algo que los fabricantes de LCD han reforzado desde que los jugadores, etc., lo han notado más.
P.ej. Video de Youtube: Prueba de retraso de entrada Vizio VL420M
fuente