¿Cómo hago para que el invitado VirtualBox use los gráficos de NVidia?
Configuración del host:
Windows 7 x64
NVidia Optimus
En el Panel de control de NVIDIA , seleccioné explícitamente el procesador NVIDIA de alto rendimiento para:
C:\Program Files\oracle\VirtualBox\VirtualBox.exe C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
Cuando se ejecuta VirtualBox, el software NVidia no lo enumera como aplicación que utiliza la GPU NVidia. Por lo tanto, supongo que VirtualBox no usa la GPU Nvidia.
Invitado:
Windows 7 x64 (es decir, igual que el host)
Adiciones de invitados instaladas
Aceleración 3D habilitada en la configuración de VirtualBox: Display / Video / Enable 3D Acceleration
Lo que Rhinoceros , una aplicación compatible con OpenGL informa como adaptador de 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
Para mí, parece que la máquina virtual usa aceleración de hardware 3D del host, pero desafortunadamente la de Intel.
Respuestas:
Me di cuenta de que han pasado algunos años, pero quería responder ya que esta publicación aparece bastante alta cuando buscas en Google para "virtualbox 3d multiple GPU". En el tiempo transcurrido, las cosas se han vuelto mucho más simples y mejores.
Las personas que se topan con este hilo probablemente aterrizarán aquí porque tienen una computadora portátil o PC que tiene dos GPU, lo cual es bastante común en estos días, especialmente en las computadoras portátiles para juegos. La GPU Intel integrada se usa para renderizar ventanas y aplicaciones generales, pero las aplicaciones que hacen uso de 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 hacer un desarrollo multiplataforma, y todo estaba bien, excepto que la máquina virtual invitada era extremadamente lenta, y no había ninguna explicación porque la CPU, la memoria y el disco mostraban poca utilización.
No tardó mucho en darse cuenta de que era el rendimiento del video el que causaba el problema. El lanzamiento de aplicaciones, la maximización / minimización de ventanas, todo lo que damos por sentado en 2019 pero necesita aceleración 3D para funcionar a una velocidad razonable, estaba usando 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", luego la pestaña "rendimiento". Y pude ver a medida que movía las ventanas, maximizado, minimizado, que se hacía a través de 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 tienes que ir al panel de control de NVidia, luego "administrar la configuración 3d", luego la pestaña "Configuración del programa".
Probablemente no encontrará "Virtualbox" en la lista. Pero puede presionar el botón "Agregar" y agregar virtualbox.exe. Es posible que deba profundizar en la unidad / ruta donde se encuentra la instalación de su virtualbox. Una vez que lo haya agregado, asegúrese de que el elemento 2. "Seleccione el procesador de gráficos preferido para este programa" esté configurado en la GPU que desea que use, 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 máquina virtual invitada, salga de virtual box y luego vuelva a iniciar virtualbox y la VM.
Si usa performacne del administrador de tareas y observa el proceso del "administrador de virtualbox" y observa qué GPU se usa cuando navega por la interfaz de usuario de la máquina virtual invitada, debería verlo usando la mejor GPU ahora. Ver la imagen pegada a continuación.
Dicho todo esto, no esperes poder ejecutar juegos en una máquina virtual invitada. El paso de aceleración 3D todavía no está tan lejos. Pero puede esperar tener un SO y una interfaz de usuario modernos en su invitado, y tener una experiencia aceptable. Uno podría jugar juegos más antiguos en la máquina virtual invitada, como cualquier cosa basada en directX9. Desafortunadamente, a medida que la capacidad de virtualizar GPU evoluciona, la tecnología de juegos en 3D evoluciona más rápido.
fuente
Probablemente no sea posible dar acceso completo a la GPU del invitado. Si una máquina virtual tuviera acceso directo a su GPU mientras su host la estaba usando, Bad Things TM ocurriría porque compartir memoria entre dos computadoras efectivamente diferentes no es una cosa; punteros y direcciones y demás 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 configuración 3D → Procesador gráfico preferido ). Eso podría hacer que VirtualBox vaya con la tarjeta NVidia para OpenGL.
Si eso no ayuda, intente instalar Guest Additions en Modo seguro en el invitado.
Finalmente, en los hosts Linux , puede intentar pasar la GPU a la máquina virtual, pero esto solo funcionará para las tarjetas PCI y no pude encontrar si la suya es PCI, y aun así, tiene una buena oportunidad de arrancando la GPU del host o causando otros problemas. Primero encuentre la dirección PCI (bus, dispositivo y función) para la buena tarjeta. Establezca el conjunto de chips de su VM en ICH9; esto no rompió nada inmediatamente cuando lo probé. Luego use la utilidad VBoxManage para conectar la tarjeta:
Reemplace
Your VM Name
según corresponda.BB
es el número de bus de su GPU en el host;DD
es el dispositivoF
Es la función. Después de@
, ingrese la ranura PCI que estará en el invitado. Por ejemplo:En general, es más probable que sea posible el paso de GPU en un host Linux. Consulte Cómo configurar una máquina de juego con paso de GPU .
fuente