Расширение OpenGL GLX не поддерживается - PullRequest
11 голосов
/ 17 декабря 2011

Я установил OpenGL и freeglut в Ubuntu 10.04, и он отлично работал в 10.04 и 10.10.Но после того, как я обновился до 11.04, приложения, которые я разработал с использованием OpenGL, не работают должным образом.Они компилируются без ошибок, но когда я пытаюсь их выполнить, я получаю там ошибки:

Для GLUT:

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

Для просто OpenGL:

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

Несколько вещей, которые я попробовал:

$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".

Редактировать: Маловероятно, что это потому, что у меня нет графических драйверов, так как все, что у меня есть, это встроенная графика.

Это моя системная графическая информация из 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

Редактировать 2: Кажется, у меня установлен драйвер для этого.

$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)

Посмотрите на "configuration: driver ="

Ответы [ 2 ]

9 голосов
/ 17 декабря 2011

Эти сообщения просто говорят вам, что ваши графические драйверы установлены неправильно.GLX является расширением протокола X11 для работы OpenGL в окнах X11.Система с поддержкой GLX состоит из 3 частей:

  • Модуль ядра, поддерживающий связь с графическим процессором (это либо Linux-Kernel DRM, либо fglrx от ATI / AMD или nvidia от NVidia),
  • Модуль расширения GLX сервера AX, общение с модулем ядра, преобразование операций OpenGL в специфические команды графического процессора.
  • libGL.so на стороне клиента, который также реализует протокол GLX.Существует libGL Mesa на основе DRI2 и проприетарный libGL.so для ATI / AMD или NVidia.

Для правильной работы OpenGL эти три компонента должны быть правильно установлены и загружены для согласованной работы.Если это не так, вы не сможете использовать OpenGL (или использовать только программный растеризатор, который неправильно установлен в вашей системе).

6 голосов
/ 23 октября 2013

Тебе может понадобиться Шмель.Но это поддерживается только 12.04 и с 13.10 и выше.Официальные инструкции здесь: https://wiki.ubuntu.com/Bumblebee

Вам необходимо открыть терминал и ввести следующие команды.

Если на 12.04.3 заменить linux-headers-generic на linux-headers-generic-lts-raring .

sudo add-apt-repository ppa:bumblebee/stable

Включить репозитории Universe и Multiverse (для пакетов шмелей и nvidia соответственно).

sudo apt-get update

Установите Bumblebee с помощью проприетарного драйвера nvidia по умолчанию:

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

Перезагрузка

Все должно быть в порядке.

...