Zdaję sobie sprawę, że minęło kilka lat, ale chciałem odpowiedzieć, ponieważ ten post pojawia się dość wysoko, gdy google dla “virtualbox 3d multiple GPU”. W czasie, który upłynął, rzeczy stały się o wiele prostsze i lepsze.
Ludzie, którzy natkną się na ten wątek, prawdopodobnie wylądują tutaj, ponieważ mają laptopa lub PC, który ma dwa GPU, co jest dość powszechne w dzisiejszych czasach - szczególnie w laptopach do gier. Wbudowany procesor graficzny Intela jest używany do renderowania okien i ogólnych aplikacji, ale aplikacje, które wykorzystują funkcje 3D GPU, powinny to robić za pośrednictwem wydajniejszego procesora graficznego Nvidia.
Dzisiaj, tworzyłem maszynę wirtualną Ubuntu na moim laptopie, aby wykonać pewne prace rozwojowe na różnych platformach i wszystko było w porządku, z wyjątkiem tego, że maszyna wirtualna gościa była niezwykle powolna i nie było na to żadnego wytłumaczenia, ponieważ CPU, pamięć, dysk wykazywały niskie wykorzystanie.
Nie zajęło dużo czasu, aby dowiedzieć się, że to wydajność wideo była przyczyną problemu. Uruchamianie aplikacji, maksymalizacja/minimalizacja okien - wszystko, co w 2019 roku uznajemy za oczywiste, ale wymaga akceleracji 3D do działania z jakąkolwiek rozsądną prędkością - wykorzystywało GPU 0.
Łatwo było to ustalić, ponieważ Windows 10 ma teraz możliwość sprawdzenia wykorzystania GPU za pomocą “menedżera zadań”, a następnie zakładki “wydajność”. I mogłem zobaczyć, jak przesuwałem okna, maksymalizowałem, minimalizowałem, co było robione przez GPU na hoście. GPU na hoście to zintegrowany procesor graficzny Intel HD, a ja chciałem użyć NVidia GTX-1050ti, który był GPU1.
Po rozejrzeniu się nie znalazłem nigdzie miejsca, w którym można by określić, którego GPU użyć. Ale ten wątek i kilka innych przypomniały mi, że w tego typu konfiguracjach trzeba wejść do panelu sterowania NVidii, następnie “manage 3d settings”, potem zakładka “Program Settings”.
Na liście raczej nie znajdziesz “Virtualboxa”. Możesz jednak nacisnąć przycisk “Dodaj” i dodać virtualbox.exe. Być może trzeba będzie wywiercić otwór w dysku/ścieżce, gdzie znajduje się instalacja virtualboxa. Po dodaniu go, w ustawieniach poniżej upewnij się, że pozycja 2. “Wybierz preferowany procesor graficzny dla tego programu” jest ustawiony na GPU, którego chcesz użyć, co w moim przypadku było “Wysokowydajny procesor NVIDIA”.
Nie ustawiaj go na auto, a już na pewno nie ustawiaj go na zintegrowany. Oczywiście w ustawieniach maszyny wirtualnej musisz mieć zaznaczone pole akceleracji 3D, a na hoście musisz mieć zainstalowane dodatki dla gościa. Ale po ustawieniu ustawień wideo 3d hosta, jak opisano powyżej, zamknij VM gościa, zamknij virtualbox, a następnie ponownie uruchom virtualbox i VM.
Jeśli użyjesz menadżera zadań|performacne i spojrzysz na proces “virtualbox manager” i zobaczysz, jaki GPU jest używany podczas nawigacji po interfejsie użytkownika maszyny wirtualnej gościa, powinieneś zobaczyć, że używa on teraz lepszego GPU. Zobacz obrazek wklejony poniżej.
To wszystko, nie oczekuj, że będziesz w stanie uruchamiać gry w maszynie wirtualnej gościa. Akceleracja 3D pass thru wciąż nie jest tak daleko posunięta. Ale możesz oczekiwać, że będziesz miał nowoczesny OS i UI w swoim gościu, i będziesz miał akceptowalne doświadczenie. Można by było grać w starsze gry w maszynie wirtualnej gościa, jak cokolwiek opartego na DirectX9. Niestety, wraz z rozwojem możliwości wirtualizacji GPU, technologia gier 3d ewoluuje szybciej.