Je me rends compte que quelques années se sont écoulées, mais je voulais répondre, car ce message apparaît assez haut lorsque vous recherchez "virtualbox 3d multiple GPU" sur Google. Dans le temps qui s'est écoulé, les choses sont devenues beaucoup plus simples et meilleures.
Les gens qui tombent sur ce fil vont probablement atterrir ici parce qu'ils ont un ordinateur portable ou un PC doté de deux GPU, ce qui est assez courant de nos jours - en particulier sur les ordinateurs portables de jeu. Le processeur graphique Intel intégré est utilisé pour le rendu des fenêtres et des applications générales, mais les applications qui utilisent la fonctionnalité GPU 3D devraient le faire via le processeur graphique Nvidia plus performant.
Aujourd'hui, je construisais une machine virtuelle Ubuntu sur mon ordinateur portable pour faire du développement multiplateforme, et tout allait bien sauf que la machine virtuelle invitée était extrêmement lente, et il n'y avait aucune explication à cela car le processeur, la mémoire et le disque montraient tous une faible utilisation.
Il n'a pas fallu longtemps pour comprendre que c'était la performance vidéo qui causait le problème. Le lancement d'applications, la maximisation / réduction des fenêtres - tout ce que nous tenons pour acquis en 2019 mais qui nécessite une accélération 3D pour fonctionner à une vitesse raisonnable - utilisait le GPU 0.
Il était facile de le déterminer car Windows 10 a désormais la possibilité de voir l'utilisation du GPU à l'aide du "gestionnaire de tâches", puis de l'onglet "performances". Et je pouvais voir que je déplaçais les fenêtres, maximisées, minimisées, ce qui se faisait via GPU sur l'hôte. Ce GPU sur l'hôte est le GPU Intel HD intégré, et je voulais utiliser le NVidia GTX-1050ti, qui était GPU1.
Après avoir cherché, je n'ai pas vraiment trouvé où vous pouviez spécifier le GPU à utiliser. Mais ce fil, et quelques autres, m'a rappelé que sur ce type de configuration, vous devez aller dans le panneau de configuration NVidia, puis "gérer les paramètres 3D", puis l'onglet "Paramètres du programme".
Vous ne trouverez probablement pas "Virtualbox" dans la liste. Mais vous pouvez appuyer sur le bouton "Ajouter" et ajouter virtualbox.exe. Vous devrez peut-être explorer le lecteur / chemin d'accès à votre installation de virtualbox. Une fois que vous l'avez ajouté, dans les paramètres ci-dessous, assurez-vous que l'élément 2. "Sélectionnez le processeur graphique préféré pour ce programme" est défini sur le GPU que vous souhaitez qu'il utilise, qui dans mon cas était "Processeur NVIDIA haute performance" .
Ne le définissez pas sur auto et ne le définissez certainement pas sur intégré. Bien sûr, vous avez besoin des paramètres VM définis avec la case d'accélération 3D cochée, et vous avez besoin des ajouts invités installés sur l'hôte. Mais une fois que vous avez défini les paramètres 3d de la vidéo hôte comme décrit ci-dessus, arrêtez la machine virtuelle invitée, quittez la boîte virtuelle, puis relancez la boîte virtuelle et la machine virtuelle.
Si vous utilisez le gestionnaire de tâches | performacne et regardez le processus "gestionnaire de boîte virtuelle" et regardez quel GPU est utilisé lorsque vous naviguez dans l'interface utilisateur de la machine virtuelle invitée, vous devriez le voir en utilisant le meilleur GPU maintenant. Voir l'image collée ci-dessous.
Cela dit, ne vous attendez pas à pouvoir exécuter des jeux sur une machine virtuelle invitée. Le passage d'accélération 3D à travers n'est toujours pas aussi loin. Mais vous pouvez vous attendre à avoir un système d'exploitation et une interface utilisateur modernes chez vos invités, et avoir une expérience acceptable. On pourrait jouer à des jeux plus anciens dans la machine virtuelle invitée, comme tout ce qui est basé sur directX9. Malheureusement, comme la possibilité de virtualiser les GPU évolue, la technologie de jeu 3D évolue plus rapidement.