Sei que alguns anos se passaram, mas queria responder, já que este post aparece bastante alto quando você pesquisa no Google por "virtualbox 3d multiple GPU". No tempo que passou, as coisas ficaram muito mais simples e melhores.
As pessoas que se deparam com esse tópico provavelmente chegarão aqui porque têm um laptop ou PC com duas GPUs, o que é bastante comum atualmente - principalmente em laptops para jogos. A GPU Intel integrada é usada para renderizar janelas e aplicativos gerais, mas os aplicativos que utilizam a funcionalidade 3D da GPU devem fazer isso por meio da GPU Nvidia de melhor desempenho.
Hoje, eu estava construindo uma VM do Ubuntu no meu laptop para fazer algum desenvolvimento de plataforma cruzada, e tudo estava bem, exceto a VM convidada, que era extremamente lenta e não havia explicação para isso, porque CPU, memória e disco estavam mostrando baixa utilização.
Não demorou muito para descobrir que o desempenho do vídeo estava causando o problema. O lançamento de aplicativos, a maximização / minimização de janelas - tudo o que consideramos garantido em 2019, mas que precisa da aceleração 3D para funcionar a uma velocidade razoável - estava usando a GPU 0.
Foi fácil determinar isso porque o Windows 10 agora pode ver a utilização da GPU usando o "gerenciador de tarefas" e a guia "desempenho". E eu pude ver enquanto movia as janelas, maximizada, minimizada, o que estava sendo feito através da GPU no host. Essa GPU no host é a GPU Intel HD integrada e eu queria usar a NVidia GTX-1050ti, que era GPU1.
Depois de pesquisar, não encontrei nenhum lugar onde você pudesse especificar qual GPU usar. Mas esse tópico, e alguns outros, me lembraram que, nesse tipo de configuração, você precisa acessar o painel de controle da NVidia, depois "gerenciar as configurações 3d" e depois a guia "Configurações do programa".
Você provavelmente não encontrará "Virtualbox" na lista. Mas você pode pressionar o botão "Adicionar" e adicionar o virtualbox.exe. Talvez você precise detalhar a unidade / caminho onde está a instalação da sua caixa virtual. Depois de adicioná-lo, nas configurações abaixo, verifique se o item 2. "Selecione o processador gráfico preferido para este programa" está definido para a GPU que você deseja usar, que no meu caso foi "Processador NVIDIA de alto desempenho" .
Não defina como automático e certamente não como integrado. Obviamente, você precisa das configurações da VM definidas com a caixa de aceleração 3D marcada e das adições de convidado instaladas no host. Porém, depois de definir as configurações 3d do vídeo host, conforme descrito acima, desligue a VM convidada, saia da caixa virtual e, em seguida, reinicie o virtualbox e a VM.
Se você usa o gerenciador de tarefas | desempenho, observa o processo "gerenciador de caixas virtuais" e observa o que a GPU é usada quando você navega na interface do usuário da VM convidada, você deve vê-la usando a melhor GPU agora. Veja a imagem colada abaixo.
Tudo isso dito, não espere poder executar jogos em uma VM convidada. O passo de aceleração 3D ainda não está tão longe assim. Mas você pode esperar ter um SO e interface do usuário modernos em seu convidado e ter uma experiência aceitável. Seria possível jogar jogos mais antigos na VM convidada, como qualquer coisa baseada no directX9. Infelizmente, à medida que a capacidade de virtualizar a GPU evolui, a tecnologia de jogos em 3D evolui mais rapidamente.