Émulation et recompilation dynamique des instructions x86-64 originales à la rescousse
Dans le contexte : L'architecture de puce RISC-V n'a que dix ans, tandis que la norme x86 a été introduite pour la première fois en 1978. Pourtant, quelqu'un essaie d'apporter une émulation quelque peu fonctionnelle de la technologie CPU d'Intel au nouveau jeu d'instructions à norme ouverte avec des résultats modérément réussis.
Les développeurs travaillant sur les projets d'émulation Box86 et Box64 souhaitent exécuter des jeux PC « triple A » sur l'architecture RISC-V. Ils ont commencé avec The Witcher 3: Wild Hunt, le RPG d'action primé de CD Projekt Red sorti sur PC et consoles en 2015. Il s'agit d'un jeu complexe et graphiquement intensif qui peut représenter un défi de taille pour l'ISA CPU basé sur RISC.
Les ordinateurs équipés de RISC-V ne sont pas très courants. Les développeurs de Box64 ont mis la main sur un Milk-V Pioneer fabriqué par Sophgo, un PC RISC-V 64 cœurs équipé d'un emplacement PCIe. Ils ont utilisé cet emplacement pour un GPU AMD Radeon RX 5500 XT de 2019.
Les développeurs appellent Box64 un « émulateur Linux Userspace x86-64 avec une touche d'originalité » sur GitHub. Le programme peut exécuter des applications Linux x86-64, y compris des jeux, sur des processeurs non x86 tels que Arm. L'émulateur exploite les versions natives de certaines bibliothèques système, telles que libc, libm, SDL et OpenGL, en utilisant la recompilation dynamique (dynarec) pour traduire le code x86 à la volée.
L'émulation des instructions x86-64 sur l'architecture RISC-V peut s'avérer difficile. Les développeurs de Box64 expliquent que l'ISA ouvert manque de nombreuses instructions « pratiques » pour un effort dynarec approprié, ce qui signifie que davantage d'instructions natives sont nécessaires pour émuler le même comportement. Cette complication a des effets néfastes sur l'efficacité de la traduction.
Malgré la complexité de la tâche, les codeurs ont rendu Box64 compatible avec des titres relativement complexes comme The Witcher 3. Une courte vidéo YouTube montre que le jeu tourne à 15 images par seconde au maximum. Malheureusement, le son était trop saccadé pour être inclus dans le rendu final du clip.
Il faudra probablement beaucoup de temps avant que les machines RISC-V ne deviennent une menace pour la suprématie x86 pour les jeux PC. Cependant, les progrès pourraient s'accélérer si la technologie des puces gagnait suffisamment de terrain auprès des développeurs. Il y a un an, le moteur RV64 DynaRec ne pouvait prendre en charge que certains jeux Linux natifs « faciles à exécuter ». Il peut désormais exécuter un titre Windows plus intense, bien que de manière médiocre, mais c'est au moins un pas dans la bonne direction.