Ping transatlantico più veloce di submit un pixel allo schermo?

John Carmack ha tweetato ,

Posso submit un pacchetto IP in Europa più velocemente di quanto posso submit un pixel sullo schermo. Come è successo?

E se non fosse John Carmack, l'avrei presentato sotto "gli interwebs sono stupidi".

Ma questo è John Carmack.

Come può essere vero?

Per evitare discussioni su ciò che è esattamente significato nel tweet, vorrei rispondere:

Quanto tempo ci vuole, nel migliore dei casi, get un singolo pacchetto IP inviato da un server negli Stati Uniti in qualche luogo in Europa, misurando dal momento che un software triggers il pacchetto, al punto che viene ricevuto da un software sopra livello del conducente?

Quanto prende, nel migliore dei casi, che un pixel venga visualizzato sullo schermo, misurato dal punto in cui un software al di sopra del livello del driver cambia quel valore del pixel?


Anche supponendo che la connessione transatlantica sia il migliore cavo di fibre ottiche che i soldi possono acquistare e che John è seduto proprio accanto al suo ISP, i dati devono ancora essere codificati in un pacchetto IP, arrivare dalla memory principale alla sua scheda di networking , da lì attraverso un cavo nel muro in un altro edificio, probabilmente salterà su alcuni server (ma supponiamo che abbia solo bisogno di un singolo relè), viene fotonizzato attraverso l'oceano, convertito in un impulso elettrico da un fotosensore, e finalmente interpretato da un'altra scheda di networking. Ci fermiamo lì.

Quanto al pixel, si tratta di una semplice parola macchina che viene inviata attraverso lo slot PCI express, scritta in un buffer, che viene quindi spruzzato sullo schermo. Anche tenendo conto del fatto che "singoli pixel" probabilmente comportno che l'integer buffer dello schermo viene trasmesso al display, non vedo come questo possa essere più lento: non è come i bit vengono trasferiti "uno per uno" – piuttosto sono impulsi elettrici consecutivi che vengono trasferiti senza latenza tra di loro (giusto?).

Il tempo per submit un pacchetto a un host remoto è la metà del tempo riportto da ping, che misura un tempo di andata e return.

Il display che stavo misurando era un display Sony HMZ-T1 montato a testa connessa a un PC.

Per misurare la latenza di visualizzazione, ho un piccolo programma che si trova in un ciclo di spin di polling un controller di gioco, facendo un chiaro a un colore diverso e sostituendo i buffer each volta che viene premuto un button. I record video che mostra sia il controller di gioco che lo schermo con una camera da 240 fps, quindi conteggi il numero di fotogrammi tra il button premuto e lo schermo che inizia a mostrare una modifica.

Il controller di gioco si aggiorna a 250 Hz, ma non esiste alcun metodo diretto per misurare la latenza sul path di input (vorrei ancora colbind le cose a una port parallela e usare le istruzioni Sam / in Sam). Come esperimento di controllo, faccio lo stesso test su un vecchio display CRT con una retrazione a 170 Hz. Aero e monitor multipli possono presentare una maggiore latenza, ma in condizioni ottimali si vedrà di solito un cambiamento di colore che inizia a qualche punto sullo schermo (distriggersto vsync) due fotogrammi di 240 Hz dopo che il button si abbassa. Sembra che ci siano 8 ms circa di latenza che attraversano l'elaborazione USB HID , ma vorrei smettere meglio in futuro.

Non è raro vedere i monitor LCD da tavolo con 10 + 240 Hz per mostrare un cambiamento sullo schermo. La Sony HMZ ha in media circa 18 fotogrammi, ovvero 70 secondi di millisecondi totali.

Questo era in una configuration multimonitor, quindi un paio di frame sono il difetto del conducente.

Alcune latenze sono intrinseche a una tecnologia. I pannelli LCD richiedono 4-20 millisecondi per cambiare effettivamente, a seconda della tecnologia. I display LCoS a singolo chip devono bufferare un fotogramma video per convertire da pixel impacchettati a piani di colore sequenziali. Le visualizzazioni raster laser necessitano di una quantità di buffering per convertire da raster return a templates di scansione avanti e indietro. Un display 3D stereo split-split o superiore non è in grado di aggiornare l'integer fotogramma a metà dell'ora.

Le schermate OLED dovrebbero essere tra le migliori, come dimostrato da un eMagin Z800 , che è paragonabile a una CRT da 60 Hz in latenza, migliore di qualsiasi altro non testato da CRT.

Le cattive performance della Sony sono dovute alla scarsa ingegneria del software. Alcune funzionalità del televisore, come l'interpolazione del movimento, richiedono la bufferizzazione di alless un fotogramma e possono beneficiare di altri. Altre funzioni, come i menu a galleggiamento, le conversioni di formato, la protezione dei contenuti e così via, potrebbero essere implementate in modalità streaming, ma la via di output è semplice da buffer tra each sottosistema, in grado di accumulare fino a mezza dozzina di fotogrammi in alcuni sisthemes .

Questo è molto sfortunato, ma è tutto riparabile e spero di appoggiare ulteriormente sui produttori di visualizzazione la latenza in futuro.

Alcuni monitor possono avere significativi ritardi di input

La contabilità di una connessione internet straordinaria rispetto ad un monitor crappy e la scheda video combo il suo ansible

fonti:

Gaming console: il fattore di ritardo • Pagina 2

Quindi, a 30FPS otteniamo performance di base di otto fotogrammi / 133ms, ma nella seconda clip in cui il gioco è sceso a 24FPS, c'è un chiaro ritardo di 12 fotogrammi / 200ms tra me che tira il grilletto e Niko inizia l'animation di tiro al fuoco. Questo è 200 ms più il ritardo aggiuntivo dal tuo schermo. Ahia.

Un display può aggiungere altri 5-10ms

Così, una console può avere fino a 210ms di ritardo

E, secondo il commento di David, il caso migliore dovrebbe essere circa 70 ms per l'invio di un pacchetto

È molto semplice dimostrare il ritardo di ingresso sui monitor, basta un lcd accanto a un crt e mostrare un orologio o un'animation che riempie lo schermo e lo registri. Uno può essere un secondo o più dietro. È qualcosa che i produttori di LCD si sono aggravati dal momento che i giocatori, ecc. Hanno notato di più.

Per esempio. Youtube Video: test di inizio prova Vizio VL420M