Карта NVIDIA Optimus не переключается под OpenGL

Когда я использовал "glGetString(GL_VERSION)" и "glGetString(GL_SHADING_LANGUAGE_VERSION)" для проверки версии OpenGL на моем компьютере, я получил следующую информацию:

3.1.0 - Сборка 8.15.10.2538 для GL_VERSION

1.40 - Intel Build 8.15.10.2538 для GL_SHADING_LANGUAGE_VERSION

Когда я запустил "Geeks3D GPU Caps Viewer", он показал версию моей видеокарты OpenGL (NVS 4200M)

GL_VERSION: 4.3.0

Версия GLSL: 4.30 NVIDIA через компилятор Cg

Означает ли это, что мои видеокарты поддерживают только некоторые функции OpenGL 4.3.0, и я не могу создать контекст 4.3?

1 ответ

Решение

Ваша видеокарта является картой NVIDIA Optimus. Это означает, что он "автоматически" выбирает между встроенной графикой Intel и выделенным графическим процессором. Графика Intel поддерживает только до 3.1, в то время как выделенный графический процессор поддерживает 4.3. В зависимости от того, какой из них выбран, у вас будет поддержка только до этой версии. Единственная проблема с Optimus состоит в том, что он будет автоматически выбирать только DirectX, CUDA, C++ AMP и OpenCL.

Это вызвало много путаницы и разочарования.

Существует несколько решений для использования выделенного графического процессора:

  1. Самое простое - заставить ваше приложение использовать выделенный графический процессор через панель управления NVIDIA. Как правило, это временное решение, так как оно будет работать только на вашей машине.
  2. Вызвать небольшой кусочек (или ссылку на) CUDA или OpenCL в начале вашей программы, чтобы заставить его переключиться на выделенную карту. Это добавляет зависимость к CUDA или OpenCL, однако.
  3. Экспорт глобальной переменной _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;, Как правило, это лучшее решение, однако, в зависимости от того, какой язык вы используете, вы не сможете экспортировать глобальные переменные.

NVIDIA выпустила документ об этом: http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf

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