Используете ли вы графический процессор NVidia из VirtualBox?

Используете ли вы графический процессор NVidia из VirtualBox?

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

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

  • Windows 7 x64

  • NVidia Оптимус

  • ВПанель управления 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-ускорение

  • ЧтоНосорог, приложение с поддержкой 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.

решение1

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

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

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

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

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

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

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

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

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

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

Скриншот

решение2

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

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

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

Окончательно,на Linux-хостах, вы можете попробовать передать GPU в виртуальную машину, но это будет работать только для карт PCI, и я не смог выяснить, является ли ваша карта PCI, и даже в этом случае у вас есть хороший шанс оторвать GPU от хоста или вызвать другие проблемы. Сначала найдите адрес 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:[email protected]

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

Связанный контент