VirtualLink : Une promesse trop belle pour être vraie

Avec l’apparition en 2016 des premiers casques VR grand public (Vive, Oculus…), apparaissent les défis techniques inhérents aux casques VR. Parmi ces défis, on trouve la difficulté à transférer via un seul câble des images, des données et une alimentation, sur une longueur dépassant les 2m. 

Le VirtualLink était une norme informatique sensée répondre à ce défi ! Découvrez cette technologie et pourquoi elle a complètement disparue avant même ses premières utilisations !

Sommaire :

  • Introduction
  • Les spécification du VirtualLink
  • Où est le VirtualLink
  • La Stabilité du VirtualLink
  • Intégration du VirtualLink
  • Exemple d’intégration
  • Conclusion

Introduction

2016 : Le casque VR est relié d’une part avec un câble display port surmonté d’un câble USB avec un sus l’alimentation nécessaire. En position immobile les câbles restent un peu embêtants sur la tête mais l’immersion est satisfaisante. Le Vive promet une expérience ultime grace aux capteurs de mouvement qui doivent être réparti dans toute la pièce détectant le casque dans l’espace avec une précision jamais atteinte.

Et pour ceux qui ont testé le Vive à ses débuts se fut une véritable claque, jamais le futur ne nous sembla aussi proche, nous venions de franchir un cap.
Mais au fil des heures, des jours et des jeux qui s’enchaînaient les désagréments notamment d’ergonomie apparurent, le casque étant dépourvu par exemple de réglages de l’optique mais surtoouuuuuut ces fichus câbles qui tendent rapidement à détruire l’immersion. On se prend rapidement les pieds dedans et on est sans arrêt obligé de faire attention à ne pas tirer dessus sous peine de déconnecter le casque ou pire notamment lors des sessions avec beaucoup de mouvements.
A cela les constructeurs ont essayé de répondre à travers plusieurs solutions.

La première fut celle proposé par MSi avec un cartable équipé d’un pc portable relié directement au casque.  Plus de fils dans les pieds, plus de problèmes (plus d’argent non plus). On aura également l’apparition du module pour transformer le Vive en casque sans-fil.
Ces solutions sont certes intéressantes mais elles ont un souci, le prix. Dépenser 400€ en plus d’un casque VR n’est pas à la portée de tous

Ainsi est apparue l’idée de faire un connecteur unique qui pourrait les dominer tous et ensemble les lier dans la VR : Le VirtualLink.

 

Ce dernier apparut avec l’avènement des RTX 2000.  Un unique câble qui soulagerait considérablement l’ensemble (le Vive était alimenté par trois câbles : image/usb/alim), soustrayant les problèmes d’alimentation et permettant de standardiser la connexion des Casques VR. Découvrons ce qu’est ce que le VirtualLink, les problèmes rencontrés par ce dernier et le peu de considération qui a amené à la situation d’aujourd’hui: la mort du VirtualLink

Les spécification du VirtualLink

Voici, tout d’abord, un petit tableau récapitulatif des différentes caractéristiques des différentes normes associés au connecteur physique de  l’USB-C (en gros vous utilisez dans 99% des cas la troisième norme : Alt-Mode) :

 

(NB : Un câble actif est un câble qui possède en son sein des contrôleurs possédant soit des re-timer ou des re-drivers permettant de re-booster le signal, ceci afin d’étendre la longueur du câble bien au delà de longueur maximale d’un câble passif)

Pour vous présenter rapidement le connecteur USB-C voici un petit schéma:

Ci-dessous nous avons une illustration de l’utilisation des pins en VirtualLink. On constate que tous les pins bleus précedemment utilisés dans la transmission de données sont ici dédiés au display Port uniquement, et la totalité des lignes pour l’USB 2.0 sont converties en USB 3.0 pour obtenir un débit de 10Gbps, à l’inverse de l’alt mode (Usb-C classique) qui ne permet que 5Gbps.

En gros : [DP] = Display Port = Image, TX/RX = données en USB3.

La mise au point a été soutenue par le consortium regroupant les principaux acteurs de la réalité virtuelle avec AMD, Oculus, Valve, Nvidia et Microsoft.  Que du beau monde en somme.

Pour résumer le VirtualLink:

  • 4 lignes sont dédiées à la connexion du display port 1.4
  • 2 lignes à USB 3.1 gen2 (bien nommé USB 3.1 ou bien USB 3.2 gen2 ou alors 3.2 gen 2×1 ou si vous préférez SuperSpeed USB+) doté d’une vitesse de 10Gbps
  • Une alimentation qui peut fournir 27w en lieu et place des 15w conventionnel

Ce standard n’est pas compatible avec le Thunderbolt par exemple puisque ce dernier ne possède pas les canaux nécessaires pour transmettre l’USB 2.0 ; Presque un crime de lèse-majesté pour de l’USB.
Mais ce “désagrément” de la disparition de l’USB 2.0 est vite compensé puisque qu’en Alt-mode conventionnel si la résolution dépasse le 4K 60 fps, ce qui est souvent le cas, on se retrouve uniquement avec de l’USB 2.0. Hors le VirtualLink a été pensé comme une norme pour de futurs casques. Ainsi disposer d’un débit 20x plus important par rapport à l’USB 2.0, grace à l’USB 3.2 gen 2, est un plus non négligeable.

Maintenant qu’on en a fini avec les détails techniques, intéressons-nous à ce qui se passe aujourd’hui.

Où est le VirtualLink ? 

Premièrement aucun casque VR grand public ne possède pour l’instant le fameux VirtualLink. De plus, alors que les RTX 2000 le supportaient, les RTX 3000 ont vu cette connectique disparaitre. On peut supputer que cela n’est pas forcément lié à l’augmentation que cela aurait induit sur le TGP (Total Graphic Power, la consommation énergétique quoi) des RTX 3000 déjà très haut (je dis cela parce que j’ai vu certains articles mettaient ce point en avant pour expliquer la mort du VirtualLink) vu qu’Nvdia indique clairement que l’augmentation du TGP induit par l’utilisation du VirtualLink n’est pas pris en compte dans le TGP affiché.

Le VirtualLink n’a donc même pas tenu en réalité plus d’un an et demi. On pourrait arguer qu’il est supporté actuellement par les RX6800, Rx 6800XT et RX 6900XT d’AMD mais c’est un trompe-œil. Si AMD intègre le VirtualLink avec son Navi 21 cela ne veut pas forcément signifier grand-chose. Les premiers modèle de Navi 21 remonte d’après les premiers leaks à janvier 2020, avec des cartes déjà fonctionnelles à l’époque cela aurait été une absurdité lors de la conception de la carte de ne pas intégrer le VirtualLink. Pour faire court, c’est probablement uniquement un coup marketting des rouges : montrer qu’ils sont pro-VR en mettant en avant le port VirtualLink. Mais à moins qu’AMD mette de l’argent sur la table pour promouvoir le standard, le VirtualLink est mort (oui, c’est triste).
Pour finir de mettre le pauvre corps inanimé du VirtualLink dans la tombe, le site lui-même n’existe plus.
Mais alors on peut se poser la question légitime du pourquoi ? Manque de moyens, aucune motivation chez les constructeurs de casque VR ?

Stabilité du VirtualLink

Valve lui-même a annulé l’adaptateur VirtualLink pour son casque, expliquant qu’il rencontrait des problèmes de stabilité et qu’il ne voulait pas continuer les frais, alors même que certaines pré-commandes étaient passées. Pour autant, une autre compagnie plus petite comme VRgineers a bel et bien construit un casque sur cette connectique qui permet de connecter les modules de eye-tracking,  de hand-tracking ainsi que les supports lighthouse. Si le nom de cette compagnie vous est inconnu, le casque l’est peut être un peu moins si vous êtes coutumiers des casques VR: le XTAL.

Casque Xtal

Ce casque étant certainement l’un des plus avancé lors de sa conception,  il coute pas moins de 5000 €. Malheureusement comme on peut le constater le site n’est plus  mis à jour et plusieurs pages sont manquantes, sa commercialisation à l’air au point mort du coté grand public. Par contre leurs cœurs de cible sont plutôt les grandes entreprises, voir l’armée vu le prix exorbitant et le nombre de fonctionnalités dont dispose le casque.
Ce casque reste tout de même un semi prototype et même si l’intégration du VirtualLink reste un succès tout n’est pas rose et personne n’a vraiment pu tester le casque en dehors des évènements comme le CES.

Par conséquent, il est probable qu’ils n’aient pas résolu tous les problèmes. Pour vous donner une idée il a fallu à Intel 5 ans pour augmenter la longueur maximale du câble Thunderbolt de 0.80m à 2m et passer par conséquent de la version 3 à la version 4. La longueur est problématique sur ce genre de protocole et permettre une liaison stable n’est pas une mince affaire. Régler les soucis de stabilité en moins d’un an après les premiers essais en n’ayant peu de solutions standard aurait été illusoire.

Très bien mais quelle est la longueur max d’un câble en USB 3.2 ?
J’ai omis un détail, l’USB est un sacré bordel. Personne n’est d’accord quant à la longueur max en passif, pas même les fabricants. La bande passante baissant au fur et à mesure d’une certaine longueur, les câbles plus ou moins blindé jouent un rôle dans la perte de débit final. Je parle bien évidemment en passif (sans alimentation en plein milieu qui vient redonner un coup de jus). Par conséquent certains parlent d’une longueur max où le protocole s’arrêterais de fonctionner et d’autres d’une longueur max où le débit cessera d’être à son maximum théorique. Ainsi la longueur idéale de l’USB 3.2 est d’ 1m. Juste 1m pas plus.
Si on regarde les documents de VirtualLink la longueur maximale est bien de 5m puisqu’au-delà la perte en dB est trop importante. Pour autant le document en question n’en était qu’à des spécifications préliminaires. USB3 signal conditionner indique bien que le câble devra être actif mais aucune mention de la solution utilisée.

 spécification VirtualLink budget cable

De plus à moins d’avoir peu ou pas besoin d’une grande distance de fil, il faudra bien un HMD comme sur le Vive pour amplifier à nouveau le signal USB et celui du display port. Bref, on n’est pas au bout de nos supplices.
(NB: Le HMD correspond au boitier de liaison que l’on retrouve par exemple sur le Vive qui fait l’intermédiaire entre le pc et le casque)

Maintenant que l’on a éliminé Valve et Nvidia de l’équation il reste l’autre acteur majeur de la VR : Oculus.
Ce dernier possède 2 casques à son catalogue le Rift S et le Quest 2. Je ne vais pas ici m’attarder sur les casques en eux-mêmes mais plutôt me concentrer sur le dernier né des câbles d’oculus le bien nommé « oculus-Link » (ils ne se sont vraiment pas fait chier pour le nom…)

Il a l’apparence d’un câble USB-C, il a l’odeur d’un câble USB-C, bingo c’est un câble USB-C. Mais alors pourquoi il est au final propriétaire. Premièrement plusieurs personnes ont naturellement essayé de mettre n’importe câble USB-C avec l’oculus Quest 2 et …. ça marche, vraiment ça marche rien à dire là dessus. Par contre étrangement il ne charge pas. Ah et petite subtilité les câbles non officiels s’arrêtent à 3m là où le câble officiel va jusqu’à 5 m. Le câble officiel est en réalité en fibre optique, fibre qui est beaucoup moins sensible  à la perte de signal sur la longueur. Pour atteindre 5m en cuivre pas de miracle, il faut un système actif.

Je vais faire une parenthèse sur les problèmes de latence : clairement avoir 45ms voir 50ms de latence alors qu’en wifi on est à 30ms, c’est incompréhensible. En substance, Oculus voyant le vent tourner a pris ses clics et ses clacs et a fait son propre système de connexion. Ici point de display port, uniquement de l’USB, ce qui explique la latence, le système doit recréer l’affichage au lieu de juste le recevoir. Cela fait partie des normes de l’USB, que de pouvoir faire passer un signal d’affichage avec un pilote dédié. Rien de bien sorcier.

Par contre je ne comprends toujours pas la latence qui est plus élevé en USB-C.

Pour faire une synthèse, les problèmes de Valve à maintenir une liaison cohérente en cuivre ainsi qu’Oculus qui préfère passer par une liaison en fibre optique (bien plus onéreuse) pour éviter certains désagréments sur une distance cohérente avec l’utilisation d’un casque VR, montre que les problématiques liées à la diminution du signal existe et qu’il y a pas beaucoup de solutions pour palier à ces problèmes (Encore une fois ce n’est donc pas pour rien que Thunderbolt 4 n’a qu’une portée de 2m max)

Intégration électronique du VirtualLink

Pour détailler cela on va prendre appui sur le fabricant qui devenait fournir l’ensemble de la solution pour implémenter le VirtualLink dans les pc portable : Analogix

 

Ce qu’il faut retenir c’est qu’il y a un minimum de 4 puces pour l’implémentation ainsi que l’activation obligatoire du VirtualLink sur un des ports USB 3.0. Le chef d’orchestre ici c’est l’ANX 7440 proposé en Aout 2018. C’est un circuit qui intègre beaucoup de choses notamment les re-timers qui sont nécessaire pour les débits proposés et le fait le plus intéressant ici est la limite de perte pour l’USB qui est précisément de 23 dB. Vous me direz donc que tout devrait aller et que le signal devrait pouvoir passer dans un câble de 5m puisqu’un peu plus haut la perte d’un câble de 5m se situe aux alentours de -21dB. Oui et non

Une autre puce à destination des mobiles mais en réalité à destination de tous support comme noté dans le pdf, fait cette fois ci exactement la même chose, même spécifications mais avec un nom différent l’ANX 7451 datant de novembre 2019. Maintenant prenons le cas d’un câble actif avec cette puce sous le design RD1011, rien de vraiment spectaculaire un petit détail attire l’œil, la limite du câble passe à 4m. Pour récapituler on passe d’un liaison max de 5 m en active en Aout 2018 à une liaison de 4m en actif en janvier 2020 (NB : Un câble actif est un câble qui possède en son sein des contrôleurs possédant soit des re-timer ou des re-drivers permettant de re-booster le signal, ceci afin d’étendre la longueur du câble bien au delà longueur maximale d’un câble passif)

Pour info ce câble comme son titre l’indique est dédié à la VR notamment à la connexion avec les HMD.  Autre info si on regarde leur vidéo de présentation du 7440 on peut voir que les connexions peuvent clairement échouer et si on se contente de re-driver uniquement les résultats sont catastrophiques.
(Je ne rentrerai pas dans les détails,  sachez juste qu’un re-timer c’est mieux qu’un re-drivers ok)
Plusieurs indices mènent à penser qu’au fur et à mesure des tests le VirtualLink ne démontrait pas toutes ses capacités au niveau de la longueur max et de la stabilité de la connexion et donna une bonne raison à Oculus à  développer sa propre techno par exemple.

Exemple d’intégration

On pourrait se demander alors comment Nvidia s’y prend pour proposer le VirtualLink sans l’aide du 7440. Après plusieurs recherches, il est certain que la carte ne switch pas des ports USB-C présent sur la carte mère mais possède bien son propre contrôleur USB 3.2 gen2 dans le die. Il existe ensuite une puce (un contrôleur d’USB type-C) qui sert au contrôle de la connexion de l’USB-C notamment de la configuration de ce dernier (Alt-Mode, VirtualLink, puissance délivré, etc…). La puce en question est une version du CYPD 4136.

Si on vérifie le design des puces 2080, 2070, 2060 et même 1660ti toutes proposent le fameux contrôleur USB intégré dans leur die. (Et comme une photo n’est jamais de trop …)

(Crédits Photos: Fritzchens Fritz)

Voici un zoom à partir du die de la  2080 jusqu’au contrôleur USB.

Nvidia indique clairement que ce sont les constructeurs qui n’ont pas voulu implémenter sa solution mais en ce qui concerne les partenaires chargés de proposer leurs cartes graphiques, avec un PCB personnalisé ou non, en modèle desktop c’est exactement la même chose.
L’implémentation de l’USB-C décline au fur et à mesure de la descente en gamme. Les 2060, elles n’ayant plus qu’une poignée de modèles personnalisés possédant l’USB-C. Ceci s’expliquant par le fait que les constructeurs qui ont leurs propres PCB personnalisés et particulièrement sur le bas de gamme vont s’efforcer de tirer les couts vers le bas. Ainsi l’USB-C et la puce associée disparaissent.

Donc que ce soit du coté des laptop ou bien des cartes partenaires, la solution ne s’est pas vraiment imposée. Pour Analogix leur solution alternative à Nvidia avec 4 puces différentes aurait pu être une bonne solution car elle permet de ne pas dépendre des fabricant de gpu, et permet une compatibilité maximale. Mais elle est encore moins pratique que celle d’Nvidia qui ne nécessite qu’une seule puce supplémentaire comparée à la solution d’Analogix.

Les constructeurs de laptop n’ont pas joué le jeu certes. Mais à cause de la durée de vie d’une plateforme qui est généralement de 2 ans, modifier à ce point la carte mère est impossible compte tenu du renouvellement. D’autant que les fabricants de laptop ne sont pas particulièrement pro actif avec de nouvelles normes.

Seule une plateforme entièrement nouvelle possède ce fameux virtualLink, c’est le Mothership d’Asus.

Image Mothership Asus

Un concept dédié à la performance n’ayant que pour but de montrer le talent et l’ingénierie d’Asus. Il y a donc mécaniquement une prise USB-C dédié au VirtualLink et une autre au Thunderbolt. Malheureusement je n’ai pas assez de détail sur l’implémentation du VirtualLink mais elle ne doit pas différer de celle d’Nvidia.

Seules quelques plateformes très haut de gamme proposant 2 USB-C auraient pu intégrer cette technologie car proposer un USB-C classique sans le Thunderbolt aurait été suicidaire (d’un point de vue marketing) sur des machines aussi haut de gamme.

(NB : je ferais un article prochainement sur l’implémentation exacte de l’USB-C sur les RTX 2000 et RX 6000. Sachez que cela diffère sincèrement de l’implémentation faite par Analogix)

Conclusion

Par conséquent le moment où il aurait été possible que les constructeurs puissent adopter le VirtualLink généralisé aurait été à l’aube de la nouvelle génération avec les RTX 3000. Mais comme Nvidia a abandonné le VirtualLink en route, la disparition d’un USB-C aurait créer un problème (puisque ce dernier aurait été connecté au gpu). Mettre 2 ports USB-C est une gageure pour les portable milieu de gamme-haut de gamme. Nvidia a dû communiquer avec ses partenaires bien avant la sortie des 3000 sur la disparition du fameux connecteur puisque la conception même du die devait être terminée bien avant la sortie définitive. Ces derniers ont alors préféré ne pas intégrer la sortie USB-C VirtualLink en provenance du GPU, même lors des derniers refresh milieu 2020, pour ne pas perdre une sortie USB-C et refaire toute la carte mère.

Ici Nvidia a clairement creusé la tombe du VirtualLink sans que celui-ci n’a eu le temps de se défendre.
AMD n’ayant pas son mot à dire puisque quasiment inexistant du marché des laptop.

Nous verrons bien en mars si  AMD abandonnera réellement le port sur ces Navi 22 (puce qui sera pour les 6700 et 6700xt) et s’il sera hypothétiquement mis en place sur les laptops qui seront équipés de ses puces.

Ainsi,  la faible croissance de la vente des casque VR (par rapport à ce qui était espéré), le manque d’investissement des grands constructeurs de casque VR à l’immobilisme des fabricants de laptop ainsi que de la mort annoncée du connecteur par Nvidia a mené à la perte du VirtualLink.

Au final le VirtualLink est une promesse, une promesse qui aurait pu aider à démocratiser la VR, faire en sorte que le tout soit plug and play, que l’on de doive pas recourir à 3 câbles différents à brancher  et dans le meilleur des cas se passer de HMD.
Malheureusement cette promesse comme bien d’autres a fini par ne pas être honorée.
La démocratisation des casques ne s’est pas faite comme espérée. Et bien que le marché de la VR monte doucement mais surement, ce n’est pas suffisant pour les grands acteurs. Les prix d’appel restent quand même relativement élevés chez Vive, Oculus commence à proposer un prix « relativement » abordable. Au final la meilleure des solutions est celle d’Oculus adopté sur le  Quest 2 : passer au sans-fil.
Le wifi 6E (11Gbps) et ses futures déclinaisons seront peut être le Saint Graal afin de pouvoir profiter de casques à haute résolution avec une faible latence en toute liberté.
Voilà, J’espère que vous avez apprécié l’article et que vous n’avez pas pris trop d’aspirine en passant^^

 

Posts created 2

2 thoughts on “VirtualLink : Une promesse trop belle pour être vraie

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top