19

Как заставить гостя VirtualBox использовать графику NVidia?

Настройка хоста:

  • Windows 7 x64

  • NVidia Optimus

  • В Панели управления NVIDIA я явно выбрал высокопроизводительный процессор NVIDIA для:

     C:\Program Files\oracle\VirtualBox\VirtualBox.exe
     C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
    
  • Когда VirtualBox работает, программное обеспечение NVidia не отображает его как приложение, использующее графический процессор NVidia. Поэтому я предполагаю, что VirtualBox действительно не использует графический процессор Nvidia.

Гость:

  • Windows 7 x64 (то же самое, что и хост)

  • Гостевые дополнения установлены

  • 3D-ускорение включено в настройках VirtualBox: Дисплей / Видео / Включить 3D-ускорение

  • Что Rhinoceros, приложение с поддержкой OpenGL, сообщает как видеоадаптер:

    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
    

    Мне кажется, что виртуальная машина использует аппаратное ускорение 3D хоста, но, к сожалению, Intel.

2 ответа2

16

Предоставление гостю полного доступа к графическому процессору, вероятно, невозможно. Если бы виртуальная машина имела прямой доступ к вашему графическому процессору, когда ваш хост использовал его, Bad Things TM произошел бы, потому что разделение памяти между двумя фактически разными компьютерами - это не вещь; указатели и адреса и тому подобное будут сильно отличаться между ними. (Ни одна карта, доступная потребителю, не поддерживает обслуживание двух компьютеров одновременно.)

Однако есть некоторые вещи, которые вы можете попробовать. Сначала установите предпочтительный графический процессор на панели управления NVidia (Настройки 3DУправление настройками 3DПредпочитаемый графический процессор). Это может заставить VirtualBox пойти с картой NVidia для OpenGL.

Если это не поможет, попробуйте установить гостевые дополнения в безопасном режиме на гостя.

Наконец, на хостах Linux вы можете попытаться передать GPU на виртуальную машину, но это будет работать только для PCI-карт, и я не смог определить, ваш ли это PCI, и даже при этом у вас есть хорошие шансы отрыв графического процессора от хоста или возникновение других проблем. Сначала найдите PCI-адрес (шину, устройство и функцию) для правильной карты. Установите чипсет вашей виртуальной машины на ICH9; это ничего не сломало, когда я попробовал. Затем используйте утилиту VBoxManage, чтобы прикрепить карту:

vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f

Замените Your VM Name соответствующим образом. BB - номер шины вашего GPU на хосте; DD - это устройство; F это функция. После @ введите слот PCI, который будет на гостевой. Например:

vboxmanage modifyvm "Windows 7 x64" --pciattach 01:00.0@03.01.0

В общем, прохождение через GPU более вероятно на хосте Linux. См. Как настроить игровой автомат с использованием графического процессора.

9

Я понимаю, что прошло несколько лет, но я хотел ответить, так как этот пост показывается довольно высоко, когда вы используете Google для "virtualbox 3d множественный GPU". За прошедшее время все стало намного проще и лучше.

Люди, которые натыкаются на этот поток, скорее всего, окажутся здесь, потому что у них есть ноутбук или ПК с двумя графическими процессорами, что довольно часто встречается в наши дни, особенно на игровых ноутбуках. Встроенный графический процессор Intel используется для рендеринга окон и обычных приложений, но приложения, использующие 3D-функциональность графического процессора, должны делать это с помощью высокопроизводительного графического процессора Nvidia.

Сегодня я собирал виртуальную машину Ubuntu на своем ноутбуке для кроссплатформенной разработки, и все было хорошо, за исключением того, что гостевая виртуальная машина была очень медленной, и этому не было никакого объяснения, потому что процессор, память и диск демонстрировали низкое использование.

Не потребовалось много времени, чтобы понять, что именно видео было причиной проблемы. Запуск приложений, максимизация / минимизация окон - все, что мы считаем само собой разумеющимся в 2019 году, но нуждающееся в 3D-ускорении для работы на любой разумной скорости - использовало графический процессор 0.

Это было легко определить, поскольку Windows 10 теперь может видеть загрузку графического процессора с помощью "диспетчера задач", а затем вкладки "производительность". И я мог видеть, как я двигал окна, развернул, свернул, что это делалось через GPU на хосте. Этот графический процессор на хосте является встроенным Intel HD GPU, и я хотел использовать NVidia GTX-1050ti, который был GPU1.

После поисков я не нашел нигде, где можно было бы указать, какой графический процессор использовать. Но эта ветка и некоторые другие напомнили мне, что при таких настройках вы должны перейти в панель управления NVidia, затем "управлять настройками 3d", а затем вкладка "Настройки программы".

Вы вряд ли найдете "Virtualbox" в списке. Но вы можете нажать кнопку "Добавить" и добавить virtualbox.exe. Возможно, вам придется детализировать диск / путь, где находится ваша установка Virtualbox. После того, как вы добавили его, в настройках ниже убедитесь, что пункт 2. "Выберите предпочтительный графический процессор для этой программы" установлен на графический процессор, который вы хотите использовать, который в моем случае был "Высокопроизводительный процессор NVIDIA" ,

Не устанавливайте его в автоматический режим, и, конечно, не устанавливайте его как интегрированный. Конечно, вам нужно, чтобы настройки виртуальной машины были установлены с установленным флажком 3D-ускорения, и вам необходимо установить гостевые дополнения на хосте. Но после того, как вы установили параметры 3d видео для хоста, как описано выше, выключите гостевую виртуальную машину, выйдите из виртуальной коробки, а затем перезапустите virtualbox и виртуальную машину.

Если вы используете диспетчер задач | performancemacne и посмотрите на процесс "менеджер виртуальных ящиков" и посмотрите, какой графический процессор используется при навигации по пользовательскому интерфейсу гостевой виртуальной машины, вы должны увидеть его, используя лучший графический процессор сейчас. Смотрите изображение, вставленное ниже.

Все это говорит, не ожидайте, что сможете запускать игры в гостевой виртуальной машине. Проход 3D ускорения до сих пор не так уж далеко впереди. Но вы можете ожидать, что у вас в гостях будет современная ОС и пользовательский интерфейс, и у вас будет приемлемый опыт. Можно было бы играть в более старые игры на гостевой виртуальной машине, как и все, что основано на DirectX9. К сожалению, по мере развития возможности виртуализации графических процессоров технология 3D-игр развивается быстрее.

Скриншот

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .