2012-05-01 09:30:45 +0000 2012-05-01 09:30:45 +0000
818
818

Transatlantische ping sneller dan een pixel naar het scherm sturen?

Ik kan sneller een IP pakket naar Europa sturen dan ik een pixel naar het scherm kan sturen. Hoe gestoord is dat?

En als dit John Carmack niet was, zou ik het opslaan onder “de domme interwebs”.

Maar dit is John Carmack.

*Hoe kan dit waar zijn? *

Om discussies over wat er precies bedoeld wordt in de tweet te vermijden, is dit wat ik graag beantwoord zou willen zien:

*Hoe lang duurt het, in het beste geval, om een enkel IP pakket van een server in de VS naar ergens in Europa te krijgen, gemeten vanaf het moment dat een software het pakket triggert, tot het punt dat het ontvangen wordt door een software boven driver niveau? *

*Hoe lang duurt het, in het beste geval, voordat een pixel op het scherm wordt weergegeven, gemeten vanaf het moment dat een software boven het driver-niveau de waarde van die pixel verandert? * Zelfs in de veronderstelling dat de transatlantische verbinding de beste glasvezelkabel is die er te koop is, en dat John vlak naast zijn ISP zit, moeten de gegevens nog steeds worden gecodeerd in een IP-pakket, van het hoofdgeheugen naar zijn netwerkkaart worden getransporteerd, van daaruit via een kabel in de muur naar een ander gebouw, daar waarschijnlijk over een paar servers heen springen (maar laten we aannemen dat er maar één enkel relais nodig is), over de oceaan gefotoniseerd worden, door een fotosensor weer in een elektrische impuls worden omgezet, en tenslotte door een andere netwerkkaart worden geïnterpreteerd. Laten we het daarbij laten.

Wat de pixel betreft, dit is een eenvoudig machinewoord dat over het PCI express slot wordt gestuurd, in een buffer wordt geschreven, die dan naar het scherm wordt gespoeld. Zelfs als we rekening houden met het feit dat “enkele pixels” er waarschijnlijk toe leiden dat de hele schermbuffer naar het scherm wordt gestuurd, zie ik niet hoe dit langzamer kan: het is niet zo dat de bits “één voor één” worden overgebracht - het zijn veeleer opeenvolgende elektrische impulsen die zonder vertraging ertussen worden overgebracht (toch?).

Antwoorden (3)

1339
1339
1339
2012-05-01 14:24:00 +0000

De tijd om een pakket naar een host op afstand te sturen is de helft van de tijd die door ping wordt gerapporteerd, die een round trip tijd meet.

Het beeldscherm dat ik mat was een Sony HMZ-T1 head mounted display aangesloten op een PC.

Om de latentie van het scherm te meten, heb ik een klein programma dat in een lus zit die een spelcontroller polst, een kleur wisselt en buffers wisselt als er op een knop wordt gedrukt. Ik maak video-opnamen van zowel de spelcontroller als het scherm met een 240 fps camera, en tel dan het aantal frames tussen het indrukken van de knop en het moment dat het scherm een verandering begint te tonen.

De spelcontroller werkt bij met 250 Hz, maar er is geen directe manier om de wachttijd op het ingangspad te meten (ik wou dat ik nog steeds dingen kon aansluiten op een parallelle poort en in/out Sam instructies kon gebruiken). Als controle experiment doe ik dezelfde test op een oud CRT scherm met een 170 Hz verticale retrace. Aero en meerdere monitoren kunnen extra vertraging introduceren, maar onder optimale omstandigheden zie je meestal een kleurverandering die begint op een bepaald punt op het scherm (vsync uitgeschakeld) twee 240 Hz frames nadat de knop omlaag gaat. Het lijkt erop dat er 8 ms of zo aan vertraging door de USB HID verwerking gaat, maar ik zou dit in de toekomst graag beter willen vastleggen.

Het is niet ongewoon dat desktop LCD monitors 10+ 240 Hz frames nodig hebben om een verandering op het scherm te laten zien. De Sony HMZ had een gemiddelde van ongeveer 18 frames, of 70+ totale milliseconden.

Dit was in een multimonitor opstelling, dus een paar frames zijn de schuld van de driver.

Sommige latency is intrinsiek aan een technologie. LCD panelen hebben 4-20 milliseconden nodig om te veranderen, afhankelijk van de technologie. Displays met één chip LCoS moeten één videoframe bufferen om van opeengepakte pixels naar opeenvolgende kleurvlakken om te zetten. Laser rasterdisplays hebben een bepaalde hoeveelheid buffering nodig om van rasterterugkeer naar heen-en-weer scannende patronen te converteren. Een frame-sequentieel of top-bottom split stereo 3D beeldscherm kan de helft van de tijd niet halverwege het frame updaten. OLED displays zouden tot de allerbeste moeten behoren, zoals blijkt uit een eMagin Z800 , die qua latency vergelijkbaar is met een 60 Hz CRT, beter dan welke andere niet-CRT die ik getest heb.

De slechte prestaties van de Sony zijn te wijten aan slechte software engineering. Sommige TV-functies, zoals motion interpolatie, vereisen buffering van ten minste een frame, en kan profiteren van meer. Andere functies, zoals zwevende menu’s, formaatconversies, inhoudsbeveiliging, enzovoort, zouden op een streaming manier kunnen worden uitgevoerd, maar de gemakkelijke uitweg is om gewoon tussen elk subsysteem te bufferen, wat bij sommige systemen kan oplopen tot een half dozijn frames.

Dit is erg jammer, maar het is allemaal te verhelpen, en ik hoop de fabrikanten van beeldschermen in de toekomst meer op hun latency te kunnen aanspreken.

69
69
69
2012-05-01 10:26:17 +0000

Sommige monitoren kunnen een aanzienlijke input lag hebben

Als je rekening houdt met een geweldige internetverbinding in vergelijking met een crappy monitor en videokaart combo, is het mogelijk

Bronnen: Console Gaming: The Lag Factor - Page 2

Dus, bij 30FPS krijgen we een basisprestatie van acht frames/133ms, maar in de tweede clip waar het spel is gezakt naar 24FPS, is er een duidelijke 12 frames/200ms vertraging tussen het moment dat ik de trekker overhaal, en Niko de schiet-animatie begint. Dat is 200ms plus de extra vertraging van je scherm. Auw.

Een scherm kan nog eens 5-10ms toevoegen

Dus, een console kan tot 210ms vertraging hebben

En, volgens David’s opmerking zou het beste geval ongeveer 70ms moeten zijn voor het verzenden van een pakket

37
37
37
2012-05-03 10:31:24 +0000

Het is heel eenvoudig om inputvertraging op monitoren aan te tonen, zet gewoon een lcd naast een crt en toon een klok of een animatie die het scherm vult en neem het op. Men kan een seconde of meer achterlopen. Het is iets dat LCD fabrikanten hebben aangescherpt sinds gamers, etc. het meer zijn opgevallen.

Bijv. Youtube Video: Input Lag Test Vizio VL420M