Шейдеры GLSL не будут компилироваться на VM Fusion - Windows 10/Visual Studio 2017

У меня установлен VMFusion на внешний жесткий диск, который я подключил к своему Macbook Pro Retina Display 2014 года. На этой виртуальной машине у меня установлена ​​Windows 10 (не подлинная) и Visual Studio 2017. У меня загружено мое решение (мы используем OpenGL), но когда я компилирую и запускаю, консоль выдает сообщение об ошибке "Ошибка: GLSL 3.30 не поддерживается. Поддерживаются следующие версии:: 1.10, 1.20 и 1.00 ES"при компиляции любого из наших шейдеров.

В меню настроек VMFusion в разделе "Дисплей" я вижу, что опция "Ускорение 3D-графики" уже включена. Эта опция предположительно "Поддерживает DirectX 10 и OpenGL 3.3". Поэтому я не понимаю, почему я получаю сообщение об ошибке GLSL, когда запускаю свой проект. У кого-нибудь есть идеи относительно того, что происходит или как это решить? У меня установлены правильные пакеты nuget, и кажется, что весь код C++ компилируется просто отлично. Это чисто шейдеры. Это проблема VMFusion или что-то не настроено на моем ноутбуке?

1 ответ

На вашей виртуальной машине попробуйте добавить следующие переменные:

MESA_GL_VERSION_OVERRIDE 3.3
MESA_GLES_VERSION_OVERRIDE 3.2
MESA_GLSL_VERSION_OVERRIDE 330

в обоих разделах "Пользовательские переменные" и "Системные переменные". Чтобы открыть "Дополнительные настройки системы", перейдите в Панель управления -> Система и безопасность -> Система нажмите "Дополнительные настройки системы"

Трудно ответить без дополнительных подробностей (ваш графический процессор, точные настройки виртуальной машины и т. Д.).

Тем не менее, я бы предложил проверить несколько вещей:

  1. Правильно ли установлены инструменты VMware на гостевой ОС?
  2. Какой профиль вы запрашиваете при создании своего контекста (ядро или совместимость?) Насколько я понимаю, гости VMware могут получить только основной профиль OpenGL 3.3.

Тогда вы также можете посмотреть документацию VMware Fusion по этим вопросам здесь.

Другие вопросы по тегам