Bagaimana cara membuat tamu VirtualBox menggunakan grafis NVidia?
Penyiapan host:
Windows 7 x64
NVidia Optimus
Di Panel Kontrol NVIDIA , saya secara eksplisit memilih prosesor NVIDIA kinerja tinggi untuk:
C:\Program Files\oracle\VirtualBox\VirtualBox.exe C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
Ketika VirtualBox berjalan, maka perangkat lunak NVidia tidak mencantumkannya sebagai aplikasi yang menggunakan GPU NVidia. Oleh karena itu, saya berasumsi bahwa VirtualBox memang tidak menggunakan GPU Nvidia.
Tamu:
Windows 7 x64 (sama dengan host)
Penambahan Tamu diinstal
Akselerasi 3D diaktifkan di pengaturan VirtualBox: Tampilan / Video / Aktifkan Akselerasi 3D
Apa yang Badak , aplikasi OpenGL mampu laporkan sebagai adaptor video:
Humper Chromium OpenGL version: 2.1 Chromium 1.9 Render version: 2.0 Shading Language: 1.40 - Intel Build 9.17.10.3517 Driver Date: NA Driver Version: NA Maximum Texture size: 8192 x 8192 Z-Buffer depth: 32bits Maximum Viewport size: 8192 x 8192 Total Video Memory: 64 MB
Bagi saya sepertinya mesin virtual memang menggunakan akselerasi perangkat keras 3D dari tuan rumah, tetapi sayangnya yang Intel.
Jawaban:
Saya menyadari beberapa tahun telah berlalu tetapi ingin menjawab karena posting ini muncul cukup tinggi ketika Anda mencari "virtualbox 3d multiple GPU". Di masa yang telah berlalu, banyak hal menjadi lebih sederhana dan lebih baik.
Orang-orang yang tersandung pada utas ini kemungkinan akan mendarat di sini karena mereka memiliki laptop atau PC yang memiliki dua GPU, yang cukup umum akhir-akhir ini - terutama pada laptop gaming. Intel GPU onboard digunakan untuk rendering windows dan aplikasi umum, tetapi aplikasi yang memanfaatkan fungsi 3D GPU harus melakukannya melalui GPU Nvidia yang berkinerja lebih tinggi.
Hari ini, saya sedang membangun VM Ubuntu di laptop saya untuk melakukan beberapa pengembangan lintas platform, dan semuanya baik-baik saja kecuali guest VM sangat lambat, dan tidak ada penjelasan untuk itu karena CPU, memori, disk semuanya menunjukkan pemanfaatan yang rendah.
Tidak butuh waktu lama untuk mengetahui apakah kinerja video yang menyebabkan masalah. Meluncurkan aplikasi, memaksimalkan / meminimalkan jendela - apa pun yang kita terima begitu saja pada tahun 2019 tetapi membutuhkan akselerasi 3D untuk bekerja pada kecepatan yang masuk akal - menggunakan GPU 0.
Mudah untuk menentukan ini karena Windows 10 sekarang memiliki kemampuan untuk melihat pemanfaatan GPU menggunakan "task manager", kemudian tab "performance". Dan saya bisa melihat ketika saya memindahkan windows, dimaksimalkan, diminimalkan, yang dilakukan melalui GPU pada host. GPU pada host tersebut adalah Intel HD GPU terintegrasi, dan saya ingin menggunakan NVidia GTX-1050ti, yang merupakan GPU1.
Setelah mencari-cari, saya tidak benar-benar menemukan tempat di mana Anda dapat menentukan GPU mana yang akan digunakan. Tetapi utas ini, dan beberapa lainnya, mengingatkan saya bahwa pada jenis pengaturan ini Anda harus masuk ke panel kontrol NVidia, lalu "kelola pengaturan 3d", lalu tab "Pengaturan Program".
Anda kemungkinan tidak akan menemukan "Virtualbox" dalam daftar. Tetapi Anda dapat menekan tombol "Tambah", dan tambahkan virtualbox.exe. Anda mungkin harus menelusuri drive / path tempat instalasi virtualbox Anda. Setelah Anda menambahkannya, dalam pengaturan di bawah ini pastikan item 2. "Pilih prosesor grafis yang disukai untuk program ini" diatur ke GPU yang Anda inginkan, yang dalam kasus saya adalah "prosesor NVIDIA berkinerja tinggi" .
Jangan mengaturnya menjadi otomatis, dan tentu saja tidak mengaturnya menjadi terintegrasi. Tentu saja, Anda perlu pengaturan VM diatur dengan kotak akselerasi 3D dicentang, dan Anda perlu tambahan tamu diinstal pada host. Tetapi begitu Anda telah menetapkan pengaturan 3d video host seperti dijelaskan di atas, matikan VM tamu, keluar dari kotak virtual, dan kemudian luncurkan kembali virtualbox dan VM.
Jika Anda menggunakan task manager | performacne dan lihat proses "virtualbox manager" dan lihat GPU apa yang digunakan saat Anda menavigasi UI VM tamu, Anda akan melihatnya menggunakan GPU yang lebih baik sekarang. Lihat gambar yang ditempelkan di bawah ini.
Semua yang dikatakan, jangan berharap dapat menjalankan game di VM tamu. Akselerasi 3D yang dilewati masih belum sejauh itu. Tetapi Anda dapat berharap memiliki OS dan UI modern di tamu Anda, dan memiliki pengalaman yang dapat diterima. Orang akan dapat memainkan game yang lebih lama di VM tamu, seperti apa pun berdasarkan directX9. Sayangnya, seiring dengan kemampuan virtualisasi GPU eveolves, teknologi game 3d berkembang lebih cepat.
sumber
Memberikan tamu akses GPU penuh mungkin tidak mungkin. Jika mesin virtual memiliki akses langsung ke GPU Anda ketika host Anda menggunakannya, Bad Things TM akan terjadi karena berbagi memori antara dua komputer yang berbeda secara efektif bukanlah sesuatu; pointer dan alamat dan yang lainnya akan sangat berbeda di antara mereka. (Tidak ada kartu yang tersedia bagi konsumen mendukung servis dua komputer sekaligus.)
Namun, ada beberapa hal yang bisa Anda coba. Pertama, atur prosesor grafis pilihan Anda ke yang bagus di Panel Kontrol NVidia ( Pengaturan 3D → Kelola pengaturan 3D → Prosesor grafis pilihan ). Itu mungkin membuat VirtualBox pergi dengan kartu NVidia untuk OpenGL.
Jika itu tidak membantu, cobalah menginstal Penambahan Tamu dalam Mode Aman pada tamu.
Akhirnya, pada host Linux , Anda dapat mencoba untuk melewati GPU ke mesin virtual, tetapi ini hanya akan bekerja untuk kartu PCI dan saya tidak dapat menemukan apakah kartu Anda adalah PCI, dan meskipun demikian, Anda memiliki peluang bagus untuk merobek GPU dari tuan rumah atau menyebabkan masalah lain. Pertama temukan alamat PCI (bus, perangkat, dan fungsi) untuk kartu yang baik. Atur chipset VM Anda ke ICH9; ini tidak langsung merusak apa pun ketika saya mencobanya. Kemudian gunakan utilitas VBoxManage untuk melampirkan kartu:
Ganti yang
Your VM Name
sesuai.BB
adalah nomor bus GPU Anda di host;DD
adalah perangkat;F
adalah fungsinya. Setelah itu@
, masukkan slot PCI bahwa itu akan menjadi tamu. Sebagai contoh:Secara umum, GPU passthrough lebih mungkin terjadi pada host Linux. Lihat Cara mengatur mesin game dengan passthrough GPU .
sumber