Как решить проблемы с шейдерной моделью в VirtualBox?

Как решить проблемы с шейдерной моделью в VirtualBox?

У меня есть виртуализированная машина Windows 7 (32 бит) с использованием программного обеспечения VirtualBox на собственном хосте Linux.

Для некоторого продвинутого программного обеспечения (ArcGIS Desktop 10.1) Мне нужно:

Требуется версия OpenGL не ниже 2.0, рекомендуется Shader Model 3.0 или выше.

Я управлялпроверка системных требований, вот результаты, говорящие мне, что нет доступной модели шейдера:

проверка системных требований

Теперь мне стало интересно, почему? VirtualBox поддерживает шейдерную модель с ранних версий. Я загрузил программу OpenGL Viewer, чтобы проверить настройки видеокарты. Вот результаты:

просмотрщик opengl

OpenGL Viewer сообщает мне, что у меня установлен OpenGL 2.1, а также модель вершинного и пиксельного шейдера версии 3.0. Так почему же некоторые программы не обнаруживают это?

Кстати, ArcGIS работает некорректно - как объяснено вэта тема. Вот почему я думаю, что есть серьезные проблемы с шейдерной моделью в VirtualBox.

Как это исправить?

решение1

Я выяснил: для успешного включения шейдерной модели необходимо установить экспериментальные драйверы WDDM для аппаратного ускорения 3D. Нравитсяописано здесь.

  1. Убедитесь, что на устройстве выделено не менее 128 МБ видеопамяти (рекомендуется 256 МБ).
  2. Для установки экспериментальных драйверов безопасный режим не требуется.
  3. Устройства > Установка гостевых дополнений... (Хост + D)
  4. Выберите: Direct2D-Support (экспериментальная)
  5. Предлагается установить базовый 3D драйвер вместо WDDM драйверов. Для установки WDDM драйверов просто нажмитеНетиХорошо.
  6. Завершите установку.
  7. Перезагрузить.

Сделанный.

решение2

Ну, мой ответ касается поддержки шейдеров DirectX, надеюсь, он будет кому-то полезен, потому что иногда Opengl и DirectX взаимозаменяемы.

Гостевые дополнения с экспериментальным драйвером WDDM не включают модель пиксельного или вершинного шейдера3.0для DirectX или OpenGL. Я попробовал спуферы вместо этого: DXTweakerи Swiftshader.

DXTweaker он же DirectX Tweaker подделывает значения, но приложения/игры делают некоторые дополнительные проверки и не обнаруживают шейдеры 3.0. Кстати, он существует только какбета-версия с замедленным действиеми вам нужно установить дату в виртуальной машине где-то на 2005 год, чтобы она заработала, если вы хотите попробовать ее настройки.

Swiftshader работает, но доступен только какдемои он отображает свой логотип поверх отрендеренного изображения. Также он падает у меня несколькими способами:

  • Если я запускаю игру в полноэкранном режиме - VM уходит в BSOD
  • Если я настрою игру на любое разрешение, отличное от моегособственный хост (1366*768)- вылетает. Даже если я запускаю виртуальную машину с другим разрешением, в окне или на весь экран.

Также имейте в виду, что поддельные шейдеры не эмулируются и не будут визуализироваться. Вы увидите глюки в результирующем изображении.

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