OpenGL/FreeBSD и встроенная видеокарта

eee1

щас пишу прогу для машграфа на OpenGL+Glut. Glut работает (можно рисовать windows а все функции OpenGL молчат (gl*). Xlib выдает ошибку что модула DRI нет-ту. Xfree86 4.3.0 не может загрузить DRI, говорила что моя видеокарта (встроенная) SiS 650 не поддерживает DRI. Это все под FreeBSD 4.9. Ясно что у SiS650/315 нет поддержки DRI/OpenGL , но винде раньше все gl* работает нормально ... существует ли какой нибудь emulate OpenGL для *nix?

sergey_m

Модули glx и dri Xserver подгружает?

ppplva

Правильно, твоя видюха не поддердживается DRI. В Mesa есть software-based rendering. http://www.mesa3d.org/

sergey_m

То есть под FreeBSD это ports/graphics/mesagl. Есть еще альтернатива ports/graphics/libglut

ppplva

На сайте mesa утверждается, что ключевые части библиотеки (libGL, libGLU) включены в состав X. Под BSD это не так ?

sergey_m

Насколько я понимаю в XFree86 оно зовется GLcore и GLX. И то и другое у меня поддерживается.
P.S.
FreeBSD использует XFree86 с небольшим набором собственных патчей. OpenBSD и NetBSD в силу особенности консольного драйвера и прочего держат отдельный репозиторий для XFree86, куда иногда делают merge XFree86 из основного репозитория.

eee1


%glxinfo
name of display: :0.0
Xlib: extension "XFree86-DRI" missing on display ":0.0".
display: :0 screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.3 Mesa 4.0.4

eee1

mesagl уже встроенно в Xfree86 4.0 up. libglut тут не причем

eee1

можно рассказать подробнее?

ppplva

Ну.. как я это понимаю. Mesa дает две библиотеки, libGL и libGLU. Они реализуют gl-интерфейс. У меня riva => поверх нее встал бинарный драйвер от nvidia, он дает свой, аппаратный, gl.
Попробуй отключить dri в XF86Config, включить GLcore, glx.
Протести работоспособность OpenGL каким-нибудь проверенным способом (вдруг ошибка в твоей проге!) - скажем, гамез по типу trackballs, или скринсейвер.
Оставить комментарий
Имя или ник:
Комментарий: