Ping transatlantik lebih cepat daripada mengirim piksel ke layar?

808

John Carmack tweeted ,

Saya dapat mengirim paket IP ke Eropa lebih cepat daripada saya dapat mengirim piksel ke layar. Bagaimana kabar itu?

Dan jika ini bukan John Carmack, saya akan mengajukannya di bawah "jalinan yang konyol".

Tapi ini John Carmack.

Bagaimana ini bisa benar?

Untuk menghindari diskusi tentang apa sebenarnya yang dimaksud dalam tweet, inilah yang ingin saya jawab:

Berapa lama, dalam kasus terbaik, untuk mendapatkan satu paket IP yang dikirim dari server di AS ke suatu tempat di Eropa, mengukur dari waktu suatu perangkat lunak memicu paket, ke titik yang diterima oleh perangkat lunak di atas tingkat pengemudi?

Berapa lama waktu yang dibutuhkan, dalam kasus terbaik, untuk sebuah piksel ditampilkan di layar, diukur dari titik di mana perangkat lunak di atas tingkat driver mengubah nilai piksel itu?


Bahkan dengan asumsi bahwa koneksi transatlantik adalah kabel serat optik terbaik yang dapat dibeli dengan uang, dan bahwa John duduk tepat di sebelah ISP-nya, data masih harus dikodekan dalam paket IP, dapatkan dari memori utama ke kartu jaringannya. , dari sana melalui kabel di dinding ke gedung lain, mungkin akan melompati beberapa server di sana (tapi mari kita asumsikan bahwa itu hanya membutuhkan satu relay), difoto di seberang lautan, diubah kembali menjadi impuls listrik oleh fotosensor, dan akhirnya diartikan oleh kartu jaringan lain. Mari berhenti di situ.

Sedangkan untuk pixel, ini adalah kata mesin sederhana yang dikirim melalui slot PCI express, ditulis ke dalam buffer, yang kemudian dibilas ke layar. Bahkan memperhitungkan fakta bahwa "piksel tunggal" mungkin mengakibatkan seluruh buffer layar ditransmisikan ke layar, saya tidak melihat bagaimana ini bisa lebih lambat: tidak seperti bit ditransfer "satu per satu" - melainkan, mereka adalah impuls listrik berurutan yang ditransfer tanpa latensi di antara mereka (kan?).

Konrad Rudolph
sumber
50
Entah dia gila atau ini adalah situasi yang tidak biasa. Karena kecepatan cahaya dalam serat, Anda tidak bisa mendapatkan data dari AS ke Eropa dalam waktu kurang dari 60 milidetik satu arah. Kartu video Anda mengeluarkan seluruh layar piksel baru setiap 17 milidetik atau lebih. Bahkan dengan buffering ganda, Anda masih bisa mengalahkan paket dengan sedikit.
David Schwartz
84
@ Davidvidchwartz: Anda berpikir tentang GPU secara terpisah. Ya, GPU dapat melakukan banyak pekerjaan dalam waktu kurang dari 60 ms. Namun John mengeluhkan seluruh rantai, yang melibatkan monitor. Apakah Anda tahu berapa banyak latensi yang terlibat, dari data gambar yang dikirim ke monitor, dan sampai ditampilkan di layar? Sosok 17ms tidak berarti dan tidak relevan. Ya, GPU menyiapkan gambar baru setiap 17 ms, dan ya, layar menampilkan gambar baru setiap 17 ms. Tapi itu tidak mengatakan berapa lama gambar telah dalam perjalanan sebelum ditampilkan
jalf
24
Dia seorang programmer game, dan dia berkata lebih cepat daripada saya dapat mengirim pixel ke layar ... jadi mungkin akun untuk keterlambatan rendering grafis 3D? Meskipun itu seharusnya cukup rendah di sebagian besar video game; mereka mengoptimalkan kinerja, bukan kualitas. Dan tentu saja, ada kemungkinan sangat tinggi dia hanya melebih-lebihkan (di sana, saya menyatakan yang sudah jelas, senang?).
Bob
19
Pergi ke Best Buy beberapa waktu dan tonton semua TV, di mana semuanya disetel ke saluran in-house yang sama. Bahkan set yang tampaknya identik akan memiliki kelambatan yang terlihat (mungkin seperempat detik) relatif satu sama lain. Tapi di luar itu ada harus menerapkan seluruh siklus "menggambar" di dalam UI (yang mungkin melibatkan rendering ulang beberapa "lapisan" gambar). Dan, tentu saja, jika render 3-D atau semacamnya diperlukan yang menambah penundaan signifikan.
Daniel R Hicks
4
Ada banyak ruang untuk spekulasi yang dipertanyakan, saya tidak berpikir ada jawaban yang sempurna kecuali Anda tahu apa yang sebenarnya dibicarakan J.Carmack. Mungkin tweetnya hanya komentar bodoh tentang beberapa situasi yang dia temui.
Baarn

Jawaban:

1321

Waktu untuk mengirim paket ke host jarak jauh adalah separuh dari waktu yang dilaporkan oleh ping, yang mengukur waktu perjalanan pulang pergi.

Layar yang saya ukur adalah layar yang dipasang di kepala Sony HMZ-T1 yang terhubung ke PC.

Untuk mengukur latensi tampilan, saya memiliki program kecil yang berada dalam putaran putaran polling sebuah game controller, melakukan pembersihan warna yang berbeda dan menukar buffer setiap kali tombol ditekan. Saya merekam video yang menunjukkan pengontrol permainan dan layar dengan kamera 240 fps, lalu hitung jumlah bingkai antara tombol yang ditekan dan layar mulai menunjukkan perubahan.

Pengontrol permainan diperbarui pada 250 Hz, tetapi tidak ada cara langsung untuk mengukur latensi pada jalur input (saya berharap saya masih bisa mengirim kawat ke port paralel dan menggunakan instruksi Sam in / out). Sebagai percobaan kontrol, saya melakukan tes yang sama pada layar CRT lama dengan retrace vertikal 170 Hz. Aero dan beberapa monitor dapat memperkenalkan latensi ekstra, tetapi dalam kondisi optimal Anda biasanya akan melihat perubahan warna mulai dari beberapa titik di layar (vsync dinonaktifkan) dua frame 240 Hz setelah tombol turun. Tampaknya ada 8 ms atau lebih latensi melalui pemrosesan HID USB , tapi saya ingin memakukan ini dengan lebih baik di masa depan.

Tidak jarang melihat monitor LCD desktop mengambil frame 10+ 240 Hz untuk menunjukkan perubahan pada layar. Sony HMZ rata-rata sekitar 18 frame, atau 70+ total milidetik.

Ini dalam pengaturan multimonitor, jadi beberapa bingkai adalah kesalahan pengemudi.

Beberapa latensi bersifat intrinsik bagi suatu teknologi. Panel LCD membutuhkan 4-20 milidetik untuk benar-benar berubah, tergantung pada teknologinya. Tampilan LCoS chip tunggal harus melindungi satu bingkai video untuk mengkonversi dari piksel yang dikemas ke bidang warna berurutan. Tampilan laser raster memerlukan sejumlah buffering untuk mengkonversi dari raster return ke bolak-balik pola pemindaian. Tampilan 3D stereo bingkai-sekuensial atau terbagi atas-bawah tidak dapat memperbarui paruh-waktu.

Layar OLED harus menjadi yang terbaik, seperti yang ditunjukkan oleh eMagin Z800 , yang sebanding dengan 60 Hz CRT dalam latensi, lebih baik daripada non-CRT lain yang saya uji.

Kinerja buruk pada Sony disebabkan oleh rekayasa perangkat lunak yang buruk. Beberapa fitur TV, seperti interpolasi gerakan, memerlukan penyangga setidaknya satu frame, dan mungkin mendapat manfaat lebih dari itu. Fitur lain, seperti menu mengambang, konversi format, perlindungan konten, dan sebagainya, dapat diimplementasikan secara streaming, tetapi jalan keluar yang mudah adalah dengan hanya buffer antara setiap subsistem, yang dapat menumpuk hingga setengah lusin frame di beberapa sistem .

Ini sangat disayangkan, tetapi semuanya dapat diperbaiki, dan saya berharap untuk bersandar pada produsen tampilan lebih lanjut tentang latensi di masa depan.

John Carmack
sumber
216
Saya ingin tidak perlu mengunci jawaban ini untuk komentar di luar topik yang berlebihan. Kita semua senang bahwa John memberikan jawaban ini, tetapi kita tidak perlu 25 komentar semua menyatakan terima kasih, ketidakpercayaan, atau kegembiraan mereka. Terima kasih.
nhinkle
28
Pemicu USB Anda mungkin berjalan sebagai perangkat USB kecepatan rendah (bus frames pada 125usec) menyebabkan penundaan minimal 8 ms (masalah perangkat keras). Mungkin coba keyboard PS2 saja?
Boris
4
@Marcus Lindblom dengan berburu, maksudmu membaca? Saya pikir dalam kasus ini, bagaimana ia sampai ke nomornya sama pentingnya dengan angka - skeptis mengenai tweet tidak akan diatasi dengan mengutip nomor lain. Konteksnya juga membantu - dia paling langsung terganggu oleh monitor khusus ini dengan perangkat lunak yang kurang optimal.
Jeremy
13
Sepertinya Anda mengatakan bahwa ketika pembuat LCD mengklaim mengatakan, waktu respons 5 ms, itu mungkin waktu yang diperlukan panel mentah untuk berubah, tetapi monitor menambahkan sedikit lebih banyak waktu buffering dan pemrosesan sinyal sebelum benar-benar menggerakkan LCD Bukankah itu berarti produsen menerbitkan spesifikasi yang salah / menyesatkan?
psusi
68

Beberapa monitor dapat memiliki kelambatan input yang signifikan

Menghitung koneksi internet yang luar biasa dibandingkan dengan monitor jelek dan kombo kartu video

Sumber:

Gaming Konsol: Faktor Lag • Halaman 2

Jadi, pada 30FPS kita mendapatkan kinerja dasar delapan frame / 133ms, tetapi dalam klip kedua di mana permainan telah turun ke 24FPS, ada penundaan yang jelas 12 frame / 200ms antara saya menarik pelatuk, dan Niko memulai animasi menembakkan senapan. Itu 200 ms ditambah penundaan tambahan dari layar Anda. Aduh.

Tampilan dapat menambahkan 5-10ms lainnya

Jadi, sebuah konsol dapat memiliki lag hingga 210 ms

Dan, sesuai komentar David, kasus terbaik seharusnya sekitar 70 ms untuk mengirim paket

Akash
sumber
1
-1 Saya tidak berpikir bahwa John Carmack menggunakan monitor jelek atau kartu video. Harap rujuk klaim Anda dengan sumber yang kredibel.
Baarn
14
Maaf tapi saya masih tidak melihat ini benar-benar menjawab pertanyaan. Kutipan ini menceritakan tentang "menarik pelatuk" dan ini menyiratkan lebih banyak pekerjaan, seperti dalam pemrosesan input, rendering adegan, dll., Daripada hanya mengirim piksel ke layar. Juga, kecepatan reaksi manusia relatif buruk dibandingkan dengan kinerja perangkat keras modern. Waktu antara lelaki yang berpikir dia menarik pelatuk, dan benar-benar menariknya, bisa jadi merupakan hambatan.
Konrad Rudolph
2
Artikel yang ditautkan menunjukkan bahwa penulis analisis ini membeli perangkat khusus yang dapat menunjukkan dengan tepat kapan tombolnya ditekan, jadi saya rasa mereka tidak hanya menayangkan angka-angkanya.
Melikoth
11
@KonradRudolph: Persepsi adalah hal yang sangat aneh. Saya membaca sebuah artikel beberapa waktu lalu tentang pengontrol eksperimental yang membaca impuls langsung dari sumsum tulang belakang. Orang akan merasa bahwa komputer itu bertindak sebelum mereka mengklik, meskipun itu adalah perintah saraf mereka sendiri untuk mengklik bereaksi.
Zan Lynx
11
@ Zan Lynx: Ini adalah efek yang diketahui. Google untuk "Penundaan Setengah Detik Benjamin Libet". Kesadaran manusia membutuhkan waktu pemrosesan yang signifikan. Segala sesuatu yang berpikir terjadi sekarang sebenarnya terjadi di masa lalu. Semua indra Anda memberi Anda "pengalaman multi-media terintegrasi" dari suatu peristiwa dari setengah detik yang lalu. Lebih jauh, peristiwa tampaknya "dicap oleh waktu" oleh otak. Stimulasi otak langsung harus ditunda relatif terhadap stimulasi taktil agar subjek melaporkan sensasi secara bersamaan!
Kaz
35

Sangat mudah untuk menunjukkan lag input pada monitor, cukup tempelkan lcd di samping crt dan tunjukkan jam atau animasi yang mengisi layar dan rekamlah. Seseorang bisa menjadi yang kedua atau lebih di belakang. Ini adalah sesuatu yang diperketat oleh produsen LCD sejak gamer, dll. Telah memperhatikannya lebih lanjut.

Misalnya. Video Youtube: Input Lag Test Vizio VL420M

JamesRyan
sumber