Как решить проблемы с шейдерной моделью в VirtualBox?
У меня есть виртуализированная Windows 7 (32-битная) машина, использующая программное обеспечение VirtualBox на нативном хосте Linux.
Для некоторых передовых программ ( ArcGIS Desktop 10.1) мне нужно:
Требуется минимум времени выполнения OpenGL версии 2.0 и рекомендуется Shader Model 3.0 или выше.
Я проводил проверку системных требований, вот результаты, говорящие мне, что нет доступной модели шейдера:
Теперь мне было интересно, почему? VirtualBox имеет поддержку шейдерной модели с ранних версий. Я скачал программное обеспечение OpenGL Viewer, чтобы проверить настройки видеокарты. Вот результаты:
OpenGL Viewer сообщает мне, что у меня установлена версия OpenGL 2.1, а также версия 3.0 вершинного и пиксельного шейдеров. Так почему же некоторые программы не обнаруживают это?
Кстати ArcGIS не работает правильно - как объяснено в этой теме. Вот почему я думаю, что есть некоторые серьезные проблемы с шейдерной моделью в VirtualBox.
Как это исправить?
2 ответа
Я понял: чтобы успешно включить модель шейдера, вам нужно установить экспериментальные драйверы WDDM для аппаратного ускорения 3d. Как описано здесь.
- Убедитесь, что устройству выделено не менее 128 МБ видеопамяти (рекомендуется 256 МБ).
- Безопасный режим не требуется для установки экспериментальных драйверов.
- Устройства> Установить гостевые дополнения... (Host + D)
- Выберите: Direct2D-Support (экспериментальная)
- Он предлагает установить базовый драйвер 3d вместо драйверов WDDM. Чтобы установить драйверы WDDM, просто нажмите No и Ok.
- Завершите установку.
- Перезагружать.
Готово.
Ну, мой ответ о поддержке шейдеров DirectX, я надеюсь, что это будет кому-то полезно, потому что иногда Opengl и DirectX взаимозаменяемы.
Гостевые дополнения с экспериментальным драйвером WDDM не поддерживают модель 3.0 пиксельных или вершинных шейдеров для DirectX или OpenGL. Вместо этого я попробовал спуферы: DXTweaker
а также Swiftshader
,
DXTweaker aka DirectX Tweaker подделывает значения, но приложения / игры выполняют некоторые дополнительные проверки и не обнаруживают шейдеры 3.0. Кстати, он существует только как бета-версия с временной бомбардировкой, и вам нужно установить дату в VM где-нибудь в 2005 году, чтобы она заработала, если вы хотите попробовать ее настройки.
Swiftshader работает, но он доступен только в качестве демонстрации и отображает логотип над визуализированным изображением. Также это вылетает для меня несколькими способами:
- Если я запускаю игру в полноэкранном режиме - VM переходит в BSOD
- Если я настраиваю игру в любом разрешении, отличном от моего собственного хоста (1366 * 768) - она вылетает. Даже если я запускаю ВМ с другим разрешением, оконным или полноэкранным.
Также имейте в виду, что подделанные шейдеры не эмулируются и не будут отображаться. Вы увидите глюки в результирующем изображении.