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

Transatlantycki ping szybszy niż wysłanie piksela na ekran?

John Carmack ](https://twitter.com/ID_AA_Carmack) tweeted ,

Mogę wysłać pakiet IP do Europy szybciej niż mogę wysłać piksel na ekran. Jak bardzo jest to popieprzone?

I gdyby to nie był John Carmack, umieściłbym to w kategorii “internety są głupie”.

Ale to jest John Carmack.

Jak to może być prawda?

Aby uniknąć dyskusji na temat tego, co dokładnie ma na myśli tweet, oto co chciałbym uzyskać:

*Jak długo trwa, w najlepszym przypadku, wysłanie pojedynczego pakietu IP z serwera w USA do gdzieś w Europie, mierząc od czasu, gdy oprogramowanie wyzwala pakiet, do momentu, gdy jest on odbierany przez oprogramowanie powyżej poziomu sterownika? *

*Jak długo trwa, w najlepszym przypadku, wyświetlenie piksela na ekranie, mierzone od momentu, w którym oprogramowanie powyżej poziomu sterownika zmienia wartość tego piksela? *


Nawet zakładając, że połączenie transatlantyckie jest najlepszym kablem światłowodowym, jaki można kupić za pieniądze, i że John siedzi tuż obok swojego dostawcy internetu, dane wciąż muszą zostać zakodowane w pakiecie IP, dostać się z pamięci głównej do karty sieciowej, stamtąd przez kabel w ścianie do innego budynku, tam prawdopodobnie przeskoczyć przez kilka serwerów (ale załóżmy, że potrzebuje tylko jednego przekaźnika), zostać sfotonizowane za oceanem, zamienione z powrotem na impuls elektryczny przez fotosensor i wreszcie zinterpretowane przez inną kartę sieciową. Na tym poprzestańmy.

Jeśli chodzi o piksel, jest to proste słowo maszynowe, które jest przesyłane przez slot PCI express, zapisywane w buforze, który następnie jest spłukiwany na ekran. Nawet biorąc pod uwagę fakt, że “pojedyncze piksele” prawdopodobnie powodują, że cały bufor ekranu jest przesyłany do wyświetlacza, nie widzę, jak to może być wolniejsze: to nie jest tak, że bity są przesyłane “jeden po drugim” - raczej są to kolejne impulsy elektryczne, które są przesyłane bez opóźnień między nimi (prawda?).

Odpowiedzi (3)

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

Czas wysłania pakietu do zdalnego hosta jest połową czasu podawanego przez ping, który mierzy czas podróży w obie strony.

Wyświetlacz, który mierzyłem to Sony HMZ-T1 wyświetlacz zamontowany na głowie, podłączony do komputera.

Aby zmierzyć opóźnienie wyświetlacza, mam mały program, który siedzi w pętli pollingu kontrolera gry, robiąc clear na inny kolor i zamieniając bufory za każdym razem, gdy przycisk jest wciśnięty. Nagrywam wideo pokazujące zarówno kontroler gry, jak i ekran za pomocą kamery 240 fps, a następnie liczę liczbę klatek pomiędzy naciśnięciem przycisku a ekranem zaczynającym pokazywać zmianę.

Kontroler gry aktualizuje się z częstotliwością 250 Hz, ale nie ma bezpośredniego sposobu na zmierzenie opóźnienia na ścieżce wejściowej (chciałbym móc nadal podłączać rzeczy do portu równoległego i używać instrukcji in/out Sam). Jako eksperyment kontrolny, wykonuję ten sam test na starym monitorze CRT z pionowym przewijaniem 170 Hz. Aero i wiele monitorów może wprowadzać dodatkowe opóźnienia, ale w optymalnych warunkach zwykle widać zmianę koloru zaczynającą się w jakimś punkcie ekranu (vsync wyłączony) dwie 240 Hz klatki po tym, jak przycisk zejdzie w dół. Wygląda na to, że jest 8 ms lub więcej opóźnienia przechodzącego przez przetwarzanie USB HID , ale chciałbym to lepiej określić w przyszłości.

Nie jest niczym niezwykłym, że stacjonarne monitory LCD potrzebują 10+ 240 Hz klatek, aby pokazać zmianę na ekranie. Sony HMZ potrzebował średnio około 18 klatek, czyli 70+ milisekund.

To było w konfiguracji wielomonitorowej, więc kilka klatek to wina sterownika.

Niektóre opóźnienia są nieodłącznie związane z technologią. Panele LCD potrzebują 4-20 milisekund na faktyczną zmianę, w zależności od technologii. Wyświetlacze jednoukładowe LCoS muszą buforować jedną ramkę wideo, aby przekonwertować z upakowanych pikseli na sekwencyjne płaszczyzny kolorów. Wyświetlacze rastrowe laserowe potrzebują pewnej ilości buforowania do konwersji z powrotu rastra do wzorców skanowania tam i z powrotem. Wyświetlacz stereoskopowy 3D z sekwencją klatek lub podziałem góra-dół nie może być aktualizowany w połowie klatki przez połowę czasu. Wyświetlacze OLED powinny być jednymi z najlepszych, jak pokazał eMagin Z800 , który jest porównywalny z 60 Hz CRT w opóźnieniu, lepszym niż jakikolwiek inny non-CRT, który testowałem.

Słaba wydajność Sony jest spowodowana słabą inżynierią oprogramowania. Niektóre funkcje TV, takie jak interpolacja ruchu, wymagają buforowania co najmniej jednej klatki, a mogą korzystać z większej ilości. Inne funkcje, takie jak pływające menu, konwersja formatów, ochrona treści i tak dalej, mogłyby być zaimplementowane w sposób strumieniowy, ale łatwym wyjściem jest buforowanie pomiędzy każdym podsystemem, co w niektórych systemach może sięgać nawet pół tuzina klatek.

Jest to bardzo niefortunne, ale wszystko da się naprawić i mam nadzieję, że w przyszłości będę mógł bardziej pochylić się nad producentami wyświetlaczy w kwestii opóźnień.

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

Niektóre monitory mogą mieć znaczny input lag

W przypadku świetnego połączenia internetowego w porównaniu z kiepskim monitorem i kartą graficzną możliwe jest

Źródła: Console Gaming: The Lag Factor - Page 2

Tak więc, przy 30FPS otrzymujemy bazową wydajność ośmiu klatek/133ms, ale w drugim klipie, gdzie gra spadła do 24FPS, jest wyraźne 12 klatek/200ms opóźnienia pomiędzy moim pociągnięciem za spust, a Niko rozpoczynającym animację wystrzału z shotguna. To jest 200ms plus dodatkowe opóźnienie z twojego ekranu. Auć.

Wyświetlacz może dodać kolejne 5-10ms

Tak więc, konsola może mieć do 210ms opóźnienia

I, zgodnie z komentarzem Davida, najlepszy przypadek powinien wynosić około 70ms dla wysyłania pakietów.

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

Bardzo łatwo jest zademonstrować input lag na monitorach, wystarczy postawić lcd obok crt i pokazać zegar lub animację wypełniającą ekran i nagrać to. Jeden może być opóźniony o sekundę lub więcej. Jest to coś, co producenci LCD zaostrzyli, ponieważ gracze itp. zauważyli to bardziej.

Eg. Youtube Video: Input Lag Test Vizio VL420M