OpenGL does not work for applications


My machine has 2 GHz Intel processor and Matrox G400 display card.
Now I have OpenSuse 11.1 installed.

OpenGL is enabled. “glxinfo” says (among other things):

direct rendering: Yes

“glxgears” runs smoothly as well and shows:

699 frames in 5.0 seconds = 139.697 FPS
740 frames in 5.0 seconds = 147.934 FPS
732 frames in 5.0 seconds = 146.278 FPS
737 frames in 5.0 seconds = 147.265 FPS
732 frames in 5.0 seconds = 146.261 FPS

Looks good so far.
However, the games normally using OpenGL run extremely slowly and are not usable. They are clearly NOT using the accelerated graphics.
2 such games are X-moto and Chromium. In practice I don’t use OpenGL for anything else.

I had OpenSuse 10.0 in this same machine (with the same Matrox display card) earlier and then the same games worked nicely and smoothly with OpenGL.

Recently I installed KDE4.2 (replacing KDE 4.1.3) but it didn’t make any difference.

Weird… Does anyone have ideas what to try next?

Juha Manninen


I am fairly certain that those results shows that you have limited capabilities for 3D acceleration, though I’m no expert.

My output of ‘glxgears’:
38586 frames in 5.0 seconds = 7717.118 FPS
38818 frames in 5.0 seconds = 7763.482 FPS
38750 frames in 5.0 seconds = 7749.924 FPS
38829 frames in 5.0 seconds = 7765.677 FPS
38546 frames in 5.0 seconds = 7709.076 FPS
37845 frames in 5.0 seconds = 7568.994 FPS

I remember having tested my old graphic card as well , NVIDIA gforce4 something, which is rather old, and the FPS was about 700-800 if I remeber correctly. So maybe there is something wrong with your setup, drivers or config?


Yes, Matrox G400 has limited capabilities for 3D but they should not be so limited.

The 3D acceleration setting has some effect on glxgears but not very much. It is a pity I don’t remember the FPS numbers at this same machine from Suse 10.0 times.

The games I mentioned are clearly not accelerated at all. The frame rate is like 1 or 2 FPS.
They have been working nicely with Matrox G400 earlier and the difference is many-hundred fold.
One more game I forgot to mention which was fast enough with Matrox G400 is the 3D shooting game Cube. (sauerbraten now?).
Now it has the same problem of being very slow.

Where should I start looking for the problem?
The display card is identified and the driver installed by Suse installation.
3D acceleration is selected. “glxinfo” shows it is on.
Should I start to look for drivers outside of OpenSuse repositories?

Juha Manninen

I’ve got the same problem over here, and no solution yet. I’ve noticed from my own glxinfo output that my 3d is being accomplished using MESA, which I’m sure is wrong. I think MESA is a software based 3d system. Is yours using MESA for 3d also? I might be totally wrong though. Anyhow, if you want help getting this straightened out, you should post you glxinfo and your xorg.conf so the gurus can help.

One more thing. Its sometimes useful to run your games from the command line. That way, you get to see the output from errors.

juha@linux-ftvq:~> glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe,
GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 7.2
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,
GL_ARB_half_float_pixel, GL_ARB_imaging, GL_ARB_multisample,
GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects,
GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle,
GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object,
GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, GL_EXT_convolution,
GL_EXT_copy_texture, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_fog_coord,
GL_EXT_gpu_program_parameters, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
GL_EXT_paletted_texture, GL_EXT_pixel_buffer_object,
GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_shadow_funcs, GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap,
GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB,
GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_APPLE_vertex_array_object,
GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3,
GL_ATI_texture_mirror_once, GL_ATI_fragment_shader,
GL_ATI_separate_stencil, GL_IBM_multimode_draw_arrays,
GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat,
GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_program_debug,
GL_MESA_resize_buffers, GL_MESA_texture_array, GL_MESA_ycbcr_texture,
GL_MESA_window_pos, GL_NV_blend_square, GL_NV_fragment_program,
GL_NV_light_max_exponent, GL_NV_point_sprite, GL_NV_texture_rectangle,
GL_NV_texgen_reflection, GL_NV_vertex_program, GL_NV_vertex_program1_1,
GL_OES_read_format, GL_SGI_color_matrix, GL_SGI_color_table,
GL_SGI_texture_color_table, GL_SGIS_generate_mipmap,
GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SGIX_shadow,
GL_SGIX_shadow_ambient, GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat

0x21 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x3c 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None


SaX generated X11 config file

Created on: 2009-02-09T23:04:24+0200.

Version: 8.1

Contact: Marcus Schaefer <>, 2005

Contact: SaX-User list <>

Automatically generated by [ISaX] (8.1)


Section “Files”
FontPath “/usr/share/fonts/misc:unscaled”
FontPath “/usr/share/fonts/local”
FontPath “/usr/share/fonts/75dpi:unscaled”
FontPath “/usr/share/fonts/100dpi:unscaled”
FontPath “/usr/share/fonts/Type1”
FontPath “/usr/share/fonts/URW”
FontPath “/usr/share/fonts/Speedo”
FontPath “/usr/share/fonts/PEX”
FontPath “/usr/share/fonts/cyrillic”
FontPath “/usr/share/fonts/latin2/misc:unscaled”
FontPath “/usr/share/fonts/latin2/75dpi:unscaled”
FontPath “/usr/share/fonts/latin2/100dpi:unscaled”
FontPath “/usr/share/fonts/latin2/Type1”
FontPath “/usr/share/fonts/latin7/75dpi:unscaled”
FontPath “/usr/share/fonts/baekmuk:unscaled”
FontPath “/usr/share/fonts/japanese:unscaled”
FontPath “/usr/share/fonts/kwintv”
FontPath “/usr/share/fonts/truetype”
FontPath “/usr/share/fonts/uni:unscaled”
FontPath “/usr/share/fonts/CID”
FontPath “/usr/share/fonts/ucs/misc:unscaled”
FontPath “/usr/share/fonts/ucs/75dpi:unscaled”
FontPath “/usr/share/fonts/ucs/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/misc:unscaled”
FontPath “/usr/share/fonts/hellas/75dpi:unscaled”
FontPath “/usr/share/fonts/hellas/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/Type1”
FontPath “/usr/share/fonts/misc/sgi:unscaled”
FontPath “/usr/share/fonts/xtest”
FontPath “/opt/kde3/share/fonts”
InputDevices “/dev/gpmdata”
InputDevices “/dev/input/mice”

Section “ServerFlags”
Option “AllowMouseOpenFail” “on”
Option “ZapWarning” “on”

Section “Module”
Load “glx”
Load “dbe”
Load “extmod”
Load “freetype”
Load “dri”

Section “InputDevice”
Driver “kbd”
Identifier “Keyboard[0]”
Option “Protocol” “Standard”
Option “XkbLayout” “fi”
Option “XkbModel” “microsoftpro”
Option “XkbRules” “xfree86”

Section “InputDevice”
Driver “mouse”
Identifier “Mouse[1]”
Option “Buttons” “5”
Option “Device” “/dev/input/mice”
Option “Name” “ImPS/2 Logitech Wheel Mouse”
Option “Protocol” “explorerps/2”
Option “Vendor” “Sysp”
Option “ZAxisMapping” “4 5”

Section “Monitor”
DisplaySize 352 264
HorizSync 30-107
Identifier “Monitor[0]”
ModelName “CPD-G400P”
Option “DPMS”
Option “PreferredMode” “1280x1024”
VendorName “SONY”
VertRefresh 48-120
UseModes “Modes[0]”

Section “Modes”
Identifier “Modes[0]”
Modeline “1280x1024” 157 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync

Section “Screen”
DefaultDepth 24
SubSection “Display”
Depth 15
Modes “1280x1024” “1280x960” “1280x800” “1152x864” “1280x768” “1280x720” “1024x768” “1280x600” “1024x600” “800x600” “768x576” “640x480”
SubSection “Display”
Depth 16
Modes “1280x1024” “1280x960” “1280x800” “1152x864” “1280x768” “1280x720” “1024x768” “1280x600” “1024x600” “800x600” “768x576” “640x480”
SubSection “Display”
Depth 24
Modes “1280x1024” “1280x960” “1280x800” “1152x864” “1280x768” “1280x720” “1024x768” “1280x600” “1024x600” “800x600” “768x576” “640x480”
SubSection “Display”
Depth 8
Modes “1280x1024” “1280x960” “1280x800” “1152x864” “1280x768” “1280x720” “1024x768” “1280x600” “1024x600” “800x600” “768x576” “640x480”
Device “Device[0]”
Identifier “Screen[0]”
Monitor “Monitor[0]”

Section “Device”
BoardName “MGA G400 AGP”
Driver “mga”
Identifier “Device[0]”
Screen 0
VendorName “Matrox”

Section “ServerLayout”
Identifier “Layout[all]”
InputDevice “Keyboard[0]” “CoreKeyboard”
InputDevice “Mouse[1]” “CorePointer”
Option “Clone” “off”
Option “Xinerama” “off”
Screen “Screen[0]”

Section “DRI”
Group “video”
Mode 0660

Section “Extensions”


I copied the output from glxinfo and contents of xorg.conf file here.

OpenGL really is using MESA library and not the hardware. Why? It means there is practically no acceleration.

My display resolution is 1280x1024.

Thanks for the hints.

Juha Manninen