在Cygwin中运行OpenGL应用程序时出错:GLXBadFBConfig

时间:2015-07-31 12:41:14

标签: opengl cygwin x11

我正在使用glew和freeglut在Cygwin / X中运行一个演示程序。该程序请求OpenGL 3.3。我收到了这个错误:

X Error of failed request:  GLXBadFBConfig
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  34 ()
  Serial number of failed request:  386
  Current serial number in output stream:  385

导出LIBGL_DEBUG =详细时,它返回如下:

libGL: enabled GLX_SGI_make_current_read
libGL: enabled GLX_SGI_swap_control
libGL: enabled GLX_MESA_swap_control
libGL: enabled GLX_SGIX_pbuffer
libGL: enabled GLX_ARB_multisample
libGL: enabled GLX_SGIS_multisample
libGL: enabled GLX_ARB_create_context
libGL: enabled GLX_ARB_create_context_profile
libGL: enabled GLX_MESA_copy_sub_buffer
X Error of failed request:  GLXBadFBConfig
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  34 ()
  Serial number of failed request:  386
  Current serial number in output stream:  385

我在Xterm中运行该程序,该程序以环境

启动
export LIBGL_USE_WGL=1

glewinfo | grep OpenGL 返回如下:

OpenGL version 4.5.13397 Compatibility Profile Context 15.200.1046.0 is supported

但如果我使用Mesa,它只支持OpenGL 3.0。

我使用

指定OpenGL版本
glutInitContexVersion(3, 3)

,GLSL着色器中的版本字符串是

#version 330

我升级了Windows中安装的所有驱动程序。

这个程序在提供here的SDK下运行良好,没有glew,它使用SDK加载OpenGL函数。但我希望它在没有SDK的情况下运行,所以我使用了glew。

我想在Windows中运行此程序,所以我想继续使用Cygwin / X.我是否必须安装一些额外的Cygwin软件包或使用一些额外的参数配置Cygwin / X?

1 个答案:

答案 0 :(得分:0)

您尝试使用GLX通过Cygwin X11服务器运行OpenGL。 Windows GDI服务器上的Cygwin X.org不支持您请求的OpenGL配置文件。

当谈到访问GPU的API时,你应该总是使用 native 端口,在你的情况下意味着,链接到普通的Windows opengl32.lib(而不是Cygwin的libGL.so)和使用FreeGLUT和GLEW构建,使用WGL而不是GLX。

最简单的方法是不使用Cygwin,而是使用MinGW。