当我使用“glGetString(GL_VERSION)”和“glGetString(GL_SHADING_LANGUAGE_VERSION)”来检查我电脑上的OpenGL版本时,我得到了以下信息:
3.1.0 - 为 GL_VERSION 构建 8.15.10.2538
1.40 - GL_SHADING_LANGUAGE_VERSION 的英特尔 Build 8.15.10.2538
当我运行“Geeks3D GPU Caps Viewer”时,它显示我的显卡(NVS 4200M)的OpenGL版本是
GL_VERSION:4.3.0
GLSL 版本:4.30 NVIDIA 通过 Cg 编译器
这是否意味着我的显卡仅支持部分 OpenGL 4.3.0 功能,而无法创建 4.3 上下文?
最佳答案
您的显卡是 NVIDIA Optimus卡片。这意味着它“自动”在集成的英特尔显卡和专用 GPU 之间进行选择。 Intel 显卡最高支持 3.1,而专用 GPU 支持 4.3。根据选择的哪个版本,您最多只能获得该版本的支持。 Optimus 的唯一问题是它只能自动选择 DirectX、CUDA、C++ AMP 和 OpenCL。
这引起了很多confusion and frustration .
有几种解决方案可以强制使用专用 GPU:
_declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
.这通常是最好的解决方案,但是,根据您使用的语言,您可能无法导出全局变量。 NVIDIA 发布了一份关于这样做的文件:http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf
关于opengl - NVIDIA Optimus 卡无法在 OpenGL 下切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18071669/