Mi rendo conto che sono passati alcuni anni, ma volevo rispondere dato che questo post appare abbastanza in alto quando si cerca su Google “virtualbox 3d multiple GPU”. Nel tempo che è passato, le cose sono diventate molto più semplici e migliori.
Le persone che si imbattono in questo thread probabilmente arriveranno qui perché hanno un portatile o un PC che ha due GPU, che è abbastanza comune in questi giorni - specialmente nei portatili da gioco. La GPU Intel integrata è utilizzata per il rendering di finestre e applicazioni generali, ma le applicazioni che fanno uso di funzionalità 3D della GPU dovrebbero farlo tramite la più performante GPU Nvidia.
Oggi, stavo costruendo una VM di Ubuntu sul mio portatile per fare un po’ di sviluppo multipiattaforma, e tutto andava bene tranne che la VM ospite era estremamente lenta, e non c'era spiegazione per questo perché CPU, memoria, disco mostravano tutti un basso utilizzo.
Non ci è voluto molto per capire che erano le prestazioni video a causare il problema. Avviare le applicazioni, massimizzare/minimizzare le finestre - tutto ciò che diamo per scontato nel 2019 ma che ha bisogno dell'accelerazione 3D per funzionare a qualsiasi velocità ragionevole - stava usando la GPU 0.
È stato facile determinarlo perché Windows 10 ora ha la possibilità di vedere l'utilizzo della GPU usando “task manager”, poi la scheda “prestazioni”. E ho potuto vedere come ho spostato le finestre, massimizzato, minimizzato, che è stato fatto attraverso la GPU sull'host. Quella GPU sull'host è la GPU integrata Intel HD, e io volevo usare la NVidia GTX-1050ti, che era la GPU1.
Dopo aver cercato in giro non ho trovato da nessuna parte dove si potesse specificare quale GPU usare. Ma questo thread, e alcuni altri, mi hanno ricordato che su questo tipo di configurazioni si deve andare nel pannello di controllo NVidia, poi “gestire le impostazioni 3d”, poi la scheda “Program Settings”.
Probabilmente non troverete “Virtualbox” nella lista. Ma puoi premere il pulsante “Aggiungi” e aggiungere virtualbox.exe. Potresti dover forzare il drive/path dove si trova la tua installazione di virtualbox. Una volta che l'hai aggiunto, nelle impostazioni sottostanti assicurati che il punto 2. “Seleziona il processore grafico preferito per questo programma” sia impostato sulla GPU che vuoi che usi, che nel mio caso era “Processore NVIDIA ad alte prestazioni”.
Non impostarlo su auto, e certamente non impostarlo su integrato. Naturalmente, è necessario che le impostazioni della VM siano impostate con la casella dell'accelerazione 3D spuntata, e che le aggiunte del guest siano installate sull'host. Ma una volta che hai impostato le impostazioni video 3d dell'host come descritto sopra, spegni la VM ospite, esci da virtual box, e poi rilancia virtualbox e la VM.
Se usi task manager|performacne e guardi il processo “virtualbox manager” e guardi quale GPU viene usata quando navighi nella UI della VM ospite, dovresti vedere che ora usa la GPU migliore. Vedere l'immagine incollata qui sotto.
Tutto ciò detto, non aspettatevi di essere in grado di eseguire giochi in una VM ospite. Il passaggio dell'accelerazione 3D non è ancora così avanzato. Ma ci si può aspettare di avere un sistema operativo moderno e un'interfaccia utente nel guest, e avere un'esperienza accettabile. Si potrebbe essere in grado di giocare a giochi più vecchi nella VM ospite, come qualsiasi cosa basata su DirectX9. Sfortunatamente, man mano che la capacità di virtualizzare la GPU si evolve, la tecnologia di gioco 3d si evolve più velocemente.