¿Cómo hago para que el invitado de VirtualBox utilice los gráficos de NVidia?
Configuración del anfitrión:
ventanas 7x64
NVIDIA Optimus
EnPanel de controlNVIDIA, seleccioné explícitamenteProcesador NVIDIA de alto rendimiento para:
C:\Program Files\oracle\VirtualBox\VirtualBox.exe C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
Cuando VirtualBox se está ejecutando, el software NVidia no lo incluye como aplicación que utiliza la GPU NVidia. Por lo tanto, supongo que VirtualBox no utiliza la GPU Nvidia.
Invitado:
Windows 7 x64 (es decir, igual que el host)
Adiciones de invitadosinstalado
Aceleración 3D habilitada en la configuración de VirtualBox: Pantalla / Video / Habilitar aceleración 3D
QuéRinoceronte, una aplicación compatible con OpenGL informa como adaptador de vídeo:
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
A mí me parece que la máquina virtual usa aceleración de hardware 3D del host, pero desafortunadamente la de Intel.
Respuesta1
Me doy cuenta de que han pasado algunos años, pero quería responder ya que esta publicación aparece bastante alto cuando buscas en Google "virtualbox 3d multiple GPU". Con el tiempo que ha pasado, las cosas se han vuelto mucho más simples y mejores.
Las personas que se topan con este hilo probablemente llegarán aquí porque tienen una computadora portátil o PC con dos GPU, lo cual es bastante común hoy en día, especialmente en las computadoras portátiles para juegos. La GPU Intel integrada se utiliza para renderizar ventanas y aplicaciones generales, pero las aplicaciones que utilizan la funcionalidad GPU 3D deberían hacerlo a través de la GPU Nvidia de mayor rendimiento.
Hoy, estaba construyendo una máquina virtual Ubuntu en mi computadora portátil para realizar un desarrollo multiplataforma, y todo estaba bien, excepto que la máquina virtual invitada era extremadamente lenta y no había explicación para ello porque la CPU, la memoria y el disco mostraban una baja utilización.
No pasó mucho tiempo para descubrir que era el rendimiento del vídeo lo que estaba causando el problema. Iniciar aplicaciones, maximizar/minimizar ventanas (cualquier cosa que damos por sentado en 2019 pero que necesita aceleración 3D para funcionar a una velocidad razonable) se utilizaba GPU 0.
Fue fácil determinar esto porque Windows 10 ahora tiene la capacidad de ver la utilización de la GPU usando el "administrador de tareas" y luego la pestaña "rendimiento". Y pude ver mientras movía las ventanas, maximizadas y minimizadas, que eso se hacía a través de la GPU en el host. Esa GPU en el host es la GPU Intel HD integrada y quería usar la NVidia GTX-1050ti, que era GPU1.
Después de buscar, realmente no encontré ningún lugar donde pudiera especificar qué GPU usar. Pero este hilo, y algunos otros, me recordaron que en este tipo de configuraciones debes ir al panel de control de NVidia, luego a "administrar configuración 3D" y luego a la pestaña "Configuración del programa".
Probablemente no encuentres "Virtualbox" en la lista. Pero puedes presionar el botón "Agregar" y agregar virtualbox.exe. Es posible que tengas que profundizar en la unidad/ruta donde se encuentra la instalación de tu virtualbox. Una vez que lo haya agregado, en la configuración a continuación asegúrese de que el elemento 2. "Seleccione el procesador gráfico preferido para este programa" esté configurado en la GPU que desea usar, que en mi caso fue "Procesador NVIDIA de alto rendimiento". .
No lo configure en automático y, ciertamente, no lo configure en integrado. Por supuesto, necesita la configuración de VM configurada con la casilla de aceleración 3D marcada y necesita las adiciones de invitados instaladas en el host. Pero una vez que haya configurado la configuración 3D del video del host como se describe anteriormente, apague la VM invitada, salga de virtual box y luego reinicie virtualbox y la VM.
Si usa el administrador de tareas|rendimiento y observa el proceso del "administrador de virtualbox" y observa qué GPU se usa cuando navega por la interfaz de usuario de la VM invitada, debería verlo usando la mejor GPU ahora. Vea la imagen pegada a continuación.
Dicho todo esto, no espere poder ejecutar juegos en una máquina virtual invitada. El paso de aceleración 3D todavía no está tan avanzado. Pero puede esperar tener un sistema operativo y una interfaz de usuario modernos en su huésped y tener una experiencia aceptable. Se podrían jugar juegos más antiguos en la máquina virtual invitada, como cualquier cosa basada en directX9. Desafortunadamente, a medida que evoluciona la capacidad de virtualizar GPU, la tecnología de juegos 3D evoluciona más rápido.
Respuesta2
Probablemente no sea posible darle al invitado acceso completo a la GPU. Si una máquina virtual tuviera acceso directo a su GPU mientras su host la estaba usando, sucedería Bad Things TM porque compartir memoria entre dos computadoras efectivamente diferentes no existe; punteros y direcciones y todo eso serían muy diferentes entre ellos. (Ninguna tarjeta disponible para el consumidor admite el mantenimiento de dos computadoras a la vez).
Sin embargo, hay algunas cosas que puedes probar. Primero, configure su procesador de gráficos preferido en el bueno en el Panel de control de NVidia (Configuración 3D→Administrar la configuración 3D→Procesador gráfico preferido). Eso podría hacer que VirtualBox opte por la tarjeta NVidia para OpenGL.
Si eso no ayuda, intentainstalar Guest Additions en modo segurosobre el huésped.
Finalmente,en hosts Linux, puedes intentar pasar la GPU a la máquina virtual, pero esto solo funcionará para tarjetas PCI y no pude encontrar si la tuya es PCI y, aun así, tienes muchas posibilidades de arrancar la GPU. el host o causar otros problemas. Primero busque la dirección PCI (bus, dispositivo y función) de la tarjeta en buen estado. Configure el chipset de su VM en ICH9; Esto no rompió nada inmediatamente cuando lo probé. Luego use la utilidad VBoxManage para adjuntar la tarjeta:
vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f
Reemplace Your VM Name
según corresponda. BB
es el número de bus de su GPU en el host; DD
es el dispositivo; F
es la función. Después de @
, ingrese la ranura PCI que estará en el invitado. Por ejemplo:
vboxmanage modifyvm "Windows 7 x64" --pciattach 01:[email protected]
En general, es más probable que la transferencia de GPU sea posible en un host Linux. VerCómo configurar una máquina de juegos con transferencia de GPU.