web-dev-qa-db-fra.com

Ping transatlantique plus rapide que d’envoyer un pixel à l’écran?

John Carmacktweeté ,

Je peux envoyer un paquet IP en Europe plus rapidement que je ne peux envoyer un pixel à l'écran. Comment ça se passe?

Et si ce n’était pas John Carmack, je le classerais sous «les interwebs étant stupides».

Mais c'est John Carmack.

Comment cela peut-il être vrai?

Pour éviter les discussions sur ce que signifie exactement le tweet, voici ce que j'aimerais obtenir une réponse:

Combien de temps faut-il, dans le meilleur des cas, pour envoyer un seul paquet IP d'un serveur situé aux États-Unis à quelque part en Europe, à partir du moment où un logiciel déclenche le paquet, jusqu'au point où il le reçoit un logiciel supérieur au pilote?

Combien de temps faut-il, dans le meilleur des cas, pour afficher un pixel à l’écran, mesuré à partir du point 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 câble en fibre optique le plus fin que l’argent puisse acheter, et que John soit assis à côté de son fournisseur d’accès, les données doivent toujours être codées dans un paquet IP et passer de la mémoire principale à sa carte réseau. , de là à travers un câble dans le mur dans un autre bâtiment, y sautera probablement sur quelques serveurs (mais supposons qu’il n’a besoin que d’un seul relais), se photonise à travers l’océan, reconverti en impulsion électrique par un photocapteur, et enfin interprété par une autre carte réseau. Arrêtons-nous là.

En ce qui concerne le pixel, il s’agit d’une machine simple. Word est envoyé via l’emplacement PCI Express, écrit dans une mémoire tampon, qui est ensuite vidé à l’écran. Même en tenant compte du fait que les «pixels simples» entraînent probablement la transmission de la mémoire tampon entière à l'écran, je ne vois pas en quoi cela peut être plus lent: ce n'est pas comme si les bits étaient transférés «un par un» - mais plutôt sont des impulsions électriques consécutives qui sont transférées sans latence entre elles (non?).

807
Konrad Rudolph

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

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

Pour mesurer la latence de l'affichage, j'ai un petit programme qui se trouve dans une boucle d'essorage interrogeant un contrôleur de jeu, effectuant une suppression de couleur différente et remplaçant les tampons chaque fois qu'un bouton est enfoncé. Je fais un enregistrement vidéo montrant à la fois le contrôleur de jeu et l’écran avec une caméra à 240 ips, puis compte le nombre d’images entre le moment où le bouton est enfoncé et le moment où l’écran commence à montrer un changement.

Le contrôleur de jeu est mis à jour à 250 Hz, mais il n’existe aucun moyen direct de mesurer la latence sur le chemin d’entrée (je souhaiterais pouvoir toujours câbler des éléments sur un port parallèle et utiliser des instructions in/out Sam). Comme expérience de contrôle, je fais le même test sur un vieil écran à tube cathodique avec retrace vertical à 170 Hz. Aero et plusieurs moniteurs peuvent introduire une latence supplémentaire, mais dans des conditions optimales, vous constaterez généralement un changement de couleur commençant à un point de l’écran (vsync désactivé) deux images à 240 Hz après la désactivation du bouton. Il semble qu’il y ait environ 8 ms de latence dans le traitement du fichier USB HID , mais j’aimerais mieux y arriver à l’avenir.

Il n'est pas rare de voir les écrans de bureau LCD prendre des trames de plus de 10 images à 240 Hz pour afficher un changement à l'écran. Le Sony HMZ en moyenne autour de 18 images, ou plus de 70 millisecondes total.

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

Une certaine latence est intrinsèque à une technologie. Les panneaux LCD mettent 4 à 20 millisecondes à changer, en fonction de la technologie. Single chip LCoS les écrans doivent mettre en mémoire tampon une image vidéo pour permettre la conversion de pixels compactés en plans de couleurs séquentiels. Les affichages laser raster nécessitent une certaine quantité de mémoire tampon pour convertir les modèles de balayage avant-arrière en modèles inversés. Un écran 3D stéréo fractionné séquentiellement ou divisé haut-bas ne peut pas être mis à jour à mi-trame la moitié du temps.

Les affichages OLED doivent figurer parmi les meilleurs, comme le montre un eMagin Z800 , comparable à un tube cathodique à 60 Hz en temps de latence, meilleur que tout autre non-tube testé .

Les mauvaises performances du Sony sont dues à une mauvaise ingénierie logicielle. Certaines fonctions de télévision, telles que l'interpolation de mouvement, nécessitent la mise en mémoire tampon d'au moins une image et peuvent en tirer davantage. D'autres fonctionnalités, telles que les menus flottants, les conversions de format, la protection du contenu, etc., pourraient être implémentées en continu, mais la solution de facilité consiste à simplement mettre en tampon entre chaque sous-système, ce qui peut empiler une demi-douzaine d'images dans certains systèmes. .

C’est très regrettable, mais tout est réparable et j’espère pouvoir compter davantage sur les fabricants d’écrans à propos de la latence à l’avenir.

1318
John Carmack

Certains moniteurs peuvent avoir un retard d’entrée important

Comptabiliser une connexion Internet impressionnante par rapport à un moniteur de merde et à une carte vidéo

Sources:

Jeu sur console: le facteur de retard • Page 2

Donc, à 30 images par seconde, nous obtenons des performances de base de huit images/133 ms, mais dans le deuxième clip où le jeu est tombé à 24 images par seconde, il y a un net décalage de 12 images/200 ms entre le fait que j'appuie sur la détente et que Niko commence l'animation de tir. C'est 200 ms plus le délai supplémentaire de votre écran. Aie.

Un affichage peut ajouter un autre 5-10ms

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

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

68
Akash

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

Par exemple. Vidéo Youtube: Test de décalage d'entrée Vizio VL420M

35
JamesRyan