OpenGL GLX extension not supported

情到浓时终转凉″ 提交于 2019-12-17 23:32:52

问题


I had installed OpenGL and freeglut in Ubuntu 10.04 and it worked fine in 10.04 and 10.10. But after I upgraded to 11.04, the applications I've developed using OpenGL is not running properly. They're compiling without errors, but when I try to execute them, I get there errors:

For GLUT:

Xlib:  extension "GLX" missing on display ":0.0".
freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0'

For just OpenGL:

Xlib:  extension "GLX" missing on display ":0.0".
main: X server has no OpenGL GLX extension

A few things I tried:

$glxgears
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't get an RGB, Double-buffered visual


$glxinfo
name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".

Edit: It is unlikely that this is because I don't have the graphics drivers as all I have is on board graphics.

This is my system graphics information from sysinfo

$sysinfo
GRAPHIC CARD
      VGA controller
    Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) (prog-if 00 [VGA controller])
    Subsystem: Toshiba America Info Systems Device ff50

Edit 2: And it seems I have a driver installed for that.

$lshw -C display
  *-display:0             
       description: VGA compatible controller
       product: Mobile 4 Series Chipset Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 07
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:44 memory:f4000000-f43fffff memory:d0000000-dfffffff ioport:1800(size=8)

Look at "configuration: driver="


回答1:


Those messages simply tell you, that your graphics drivers are not installed properly. GLX is the extension of the X11 protocol for making OpenGL work in X11 windows. There are 3 parts to a GLX enabled system:

  • A kernel module, doing the talking to the GPU (this is either the Linux-Kernel DRM, or fglrx of ATI/AMD or nvidia from NVidia).
  • A X server GLX extension module, talking to the kernel module, converting OpenGL operations into the GPU specifric commands.
  • The client side libGL.so which also implements the GLX protocol. There's the DRI2 based libGL of Mesa, and the proprietary libGL.so of either ATI/AMD or NVidia.

For OpenGL to work properly those three components must be properly installed and loaded to work in harmony. If that's not the case you won't be able to use OpenGL (or only use a software rasterizer, which is not properly installed either on your system).




回答2:


You could need Bumblebee. But this is supported only for 12.04 and from 13.10 up. Oficial instructions here: https://wiki.ubuntu.com/Bumblebee

You need to open your terminal and enter the commands below.

If on 12.04.3, replace linux-headers-generic with linux-headers-generic-lts-raring.

sudo add-apt-repository ppa:bumblebee/stable

Enable the Universe and Multiverse repositories (for bumblebee and nvidia packages respectively).

sudo apt-get update

Install Bumblebee using the default proprietary nvidia driver:

sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic

Reboot

All should be ok now.



来源:https://stackoverflow.com/questions/8545291/opengl-glx-extension-not-supported

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!