OpenGL glfwOpenWindow不';不要在Optimus视频卡上工作

OpenGL glfwOpenWindow不';不要在Optimus视频卡上工作,opengl,intel,optimus,Opengl,Intel,Optimus,我有一个Geforce GT 540M,我的笔记本电脑使用Optimus,因此它将根据应用程序/设置等在Intel GPU和Geforce GPU之间“切换” 据我所知,在线打开窗口时,返回false: if( !glfwOpenWindow( 1024, 768, 0,0,0,0, 32,0, GLFW_WINDOW ) ) { fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they ar

我有一个Geforce GT 540M,我的笔记本电脑使用Optimus,因此它将根据应用程序/设置等在Intel GPU和Geforce GPU之间“切换”

据我所知,在线打开窗口时,返回false:

if( !glfwOpenWindow( 1024, 768, 0,0,0,0, 32,0, GLFW_WINDOW ) )
{
    fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the     tutorials.\n" );
    system("pause");
    glfwTerminate();
    return -1;
}
系统命令只是为了确认我收到的错误消息


有没有办法强迫编译器识别我的图形卡?我的假设是,它只能识别我的英特尔gpu。

您要求的是32位深度。这是一种相当不寻常的格式。典型的选择是组合32位深度模具格式中的24位深度和8位模具位。也可以使用<代码> GLFWOPENKOWOWHOTHT 请求OpenGL 3上下文,这应该给英伟达GPU提供一个上下文。
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 0);

err = glfwOpenWindow(...);
/* ... */

仍然不起作用,并且这段代码在我的桌面上运行良好,我能想到的唯一区别是硬件,除非我在某个地方丢失了一些GL文件?编译器根本不关心您的特定OpenGL实现或GPU。如果您在Windows或Linux上发现问题,您没有添加。如果Linux,Optimus仍然有很多问题,我个人甚至不想在Linux下工作。Windows,它现在运行,只要英伟达被设定为运行GPU运行VS 2013。嗯,现在我在一个泡菜,因为“现在”一切似乎工作,除了我做什么绝对没有什么比休眠我的笔记本电脑,移动到其他房间,重新打开并重试。现在它工作了,代码没有任何变化。有人知道为什么吗?我认为应该考虑@datenwolf所说的话。我知道这可能不是您的情况,但在使用格式GL_DEPTH_组件和内部格式GL_DEPTH_组件32F(ATI卡)指定纹理时,我遇到了间歇性问题。