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

Un ping transatlantique plus rapide que l'envoi d'un pixel à l'écran ?

John Carmack tweeted ,

Je peux envoyer un paquet IP vers l'Europe plus vite que je ne peux envoyer un pixel à l'écran. C'est pas mal, non ?

Et si ce n'était pas John Carmack, je le classerais sous “les interwebs étant idiots”.

Mais c'est John Carmack.

*Comment cela peut-il être vrai ? *

Pour éviter les discussions sur le sens exact du tweet, voici ce que j'aimerais obtenir comme réponse :

*Combien de temps faut-il, dans le meilleur des cas, pour qu'un seul paquet IP soit envoyé d'un serveur aux États-Unis vers quelque part en Europe, en mesurant à partir du moment où un logiciel déclenche le paquet, jusqu'au moment où il est reçu par un logiciel au-dessus du niveau du pilote ? *

** Combien de temps faut-il, dans le meilleur des cas, pour qu'un pixel s'affiche à l'écran, mesuré à partir du moment où un logiciel supérieur au niveau du pilote modifie la valeur de ce pixel ? ** Même en supposant que la connexion transatlantique soit le meilleur câble de fibre optique que l'on puisse acheter et que John soit assis juste à côté de son fournisseur d'accès Internet, les données doivent être encodées dans un paquet IP, de la mémoire principale jusqu'à sa carte réseau, de là, à travers un câble dans le mur, dans un autre bâtiment, y sautera probablement quelques serveurs (mais supposons qu'il n'ait besoin que d'un seul relais), sera photonisé à travers l'océan, reconverti en impulsion électrique par un photocapteur, et finalement interprété par une autre carte réseau. Arrêtons-nous là.

Quant au pixel, il s'agit d'un simple mot machine qui est envoyé à travers le slot PCI express, écrit dans une mémoire tampon, qui est ensuite envoyé à l'écran. Même en tenant compte du fait que les “pixels individuels” entraînent probablement la transmission de toute la mémoire tampon de l'écran à l'écran, je ne vois pas comment cela peut être plus lent : ce n'est pas comme si les bits étaient transférés “un par un” - il s'agit plutôt d'impulsions électriques consécutives qui sont transférées sans latence entre elles (n'est-ce pas ?).

Réponses (3)

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

Le temps nécessaire pour envoyer un paquet à un hôte distant est deux fois moins long que celui indiqué par ping, qui mesure un temps de trajet aller-retour.

L'écran que je mesurais était un Sony HMZ-T1 écran monté sur la tête, connecté à un PC.

Pour mesurer la latence de l'affichage, j'ai un petit programme qui se trouve dans une boucle de rotation et qui interroge un contrôleur de jeu, en faisant un clear à une couleur différente et en changeant de tampon chaque fois qu'un bouton est appuyé. J'enregistre une vidéo montrant à la fois la manette de jeu et l'écran avec une caméra 240 fps, puis je compte le nombre d'images entre le moment où le bouton est pressé et le moment où l'écran commence à afficher un changement.

La manette de jeu se met à jour à 250 Hz, mais il n'y a pas de moyen direct de mesurer la latence sur le chemin d'entrée (j'aimerais pouvoir encore câbler des choses sur un port parallèle et utiliser les instructions in/out Sam). Comme expérience de contrôle, je fais le même test sur un ancien écran CRT avec un retour vertical de 170 Hz. L'aéro et les moniteurs multiples peuvent introduire une latence supplémentaire, mais dans des conditions optimales, vous verrez généralement un changement de couleur à partir d'un certain point sur l'écran (vsync désactivée) deux images de 240 Hz après que le bouton ait été enfoncé. Il semble qu'il y ait environ 8 ms de latence passant par le traitement USB HID , mais j'aimerais mieux cerner ce point à l'avenir.

Il n'est pas rare de voir les écrans LCD de bureau prendre 10+ 240 Hz d'images pour montrer un changement à l'écran. Le HMZ de Sony a pris en moyenne 18 images, soit 70+ millisecondes au total.

C'était dans une configuration multi-moniteur, donc quelques images sont la faute du conducteur.

Une certaine latence est intrinsèque à une technologie. Les panneaux LCD prennent 4-20 millisecondes pour changer réellement, selon la technologie. Les écrans monopuces LCoS doivent mettre en mémoire tampon une image vidéo pour convertir les pixels compressés en plans de couleurs séquentiels. Les écrans laser matriciels ont besoin d'une certaine quantité de mémoire tampon pour passer d'un retour de trame à des motifs de balayage en va-et-vient. Un écran 3D stéréo à images séquentielles ou à division par le haut et le bas ne peut pas mettre à jour l'image centrale la moitié du temps. Les affichages OLED devraient être parmi les meilleurs, comme le démontre un eMagin Z800 , qui est comparable à un CRT 60 Hz en latence, meilleur que tout autre CRT non testé par I.

La mauvaise performance du Sony est due à une mauvaise ingénierie logicielle. Certaines fonctions TV, comme l'interpolation de mouvement, nécessitent la mise en mémoire tampon d'au moins une image, et peuvent en bénéficier davantage. D'autres fonctions, comme les menus flottants, les conversions de format, la protection du contenu, etc., pourraient être mises en œuvre en continu, mais la solution la plus simple consiste à mettre en mémoire tampon chaque sous-système, qui peut accumuler jusqu'à une demi-douzaine d'images dans certains systèmes.

C'est très malheureux, mais tout cela est réparable, et j'espère pouvoir m'appuyer davantage sur les fabricants d'écrans en ce qui concerne la latence à l'avenir.

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

Certains moniteurs peuvent avoir un décalage d'entrée significatif de

, ce qui représente une connexion Internet géniale par rapport à un moniteur de merde et une carte vidéo combinée : Console Gaming : The Lag Factor - Page 2

Ainsi, à 30FPS, nous obtenons une performance de base de huit images/133ms, mais dans le second clip où le jeu est tombé à 24FPS, il y a un net décalage de 12 images/200ms entre le moment où j'appuie sur la gâchette et celui où Niko commence l'animation de tir au fusil. C'est 200 ms plus le délai supplémentaire de votre écran. Ouch.

Un écran peut ajouter 5-10ms supplémentaires

Donc, une console peut avoir jusqu'à 210ms de décalage

Et, selon le commentaire de David, le meilleur cas devrait être d'environ 70ms pour l'envoi d'un paquet

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

Il est très simple de démontrer le décalage d'entrée sur les moniteurs, il suffit de coller un lcd à côté d'un crt et de montrer une horloge ou une animation remplissant l'écran et de l'enregistrer. On peut être à une seconde ou plus derrière. C'est un point sur lequel les fabricants d'écrans LCD se sont efforcés de se concentrer depuis que les joueurs, etc. l'ont davantage remarqué.

Ex. Vidéo Youtube : Input Lag Test Vizio VL420M