Шейдеры 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
в обоих разделах "Пользовательские переменные" и "Системные переменные". Чтобы открыть "Дополнительные настройки системы", перейдите в Панель управления -> Система и безопасность -> Система нажмите "Дополнительные настройки системы"
Трудно ответить без дополнительных подробностей (ваш графический процессор, точные настройки виртуальной машины и т. Д.).
Тем не менее, я бы предложил проверить несколько вещей:
- Правильно ли установлены инструменты VMware на гостевой ОС?
- Какой профиль вы запрашиваете при создании своего контекста (ядро или совместимость?) Насколько я понимаю, гости VMware могут получить только основной профиль OpenGL 3.3.
Тогда вы также можете посмотреть документацию VMware Fusion по этим вопросам здесь.