3D Acceleration and GLFW

soulfreezer wrote on Tuesday, August 17, 2010:


Its me again. :slight_smile: I am developing a “worms-Clone” and all seems to be pretty
simple with the nice help of the GLFW.
But now I was wondering, why it was all so badly slow? so I programmed a
little Test-Application, which only draws one triangle, which I could move
with the cursor-keys. This demo was still very slow!! So I googled a while,
and it seems that I am using
the Mesa-Implementation of OpenGL which does only support Software rendering.
But my Games on Ubuntu (for example wow)
runs very smooth. I have an ATI Card and using the glfrx-driver. So I decided
to install the glfrx-dev - package.
After that I have now in my /usr/include/GL - folder the following files:

-rw-r-r- 1 root root 18832 2009-04-30 14:08 glfw.h
-rw-r-r- 1 root root 7628 2010-04-09 20:21 glxATI.h
-rw-r-r- 1 root root 271812 2010-04-09 20:21 glATI.h

-rw-r-r- 1 root root 3463 2010-04-29 07:40 glx_mangle.h
-rw-r-r- 1 root root 17155 2010-04-29 07:40 glx.h
-rw-r-r- 1 root root 39904 2010-04-29 07:40 glxext.h
-rw-r-r- 1 root root 3315 2010-04-29 07:40 glu_mangle.h
-rw-r-r- 1 root root 17251 2010-04-29 07:40 glu.h
-rw-r-r- 1 root root 110027 2010-04-29 07:40 gl_mangle.h
-rw-r-r- 1 root root 84058 2010-04-29 07:40 gl.h
-rw-r-r- 1 root root 504124 2010-04-29 07:40 glext.h

U can see, that there a new Header-Files from ATI!! I looked into the
glfw.h, and it uses only the gl.h and glu.h, NOT the glATI.h and glxATI.h!!
Maybe thats no big Problem…I am a noob with linux sorry :frowning:

Then I looked for libGL.so files and I found two versions on my system!!


Maybe is my prob, that the libGL from mesa is used, instead of the lib from
Can someone plz explain me, how this all works, and where does the compiler
know, which lib it will use?
I use eclipse and I only added the libs “glfw” and “GLU” in the Project-
Configuration without path.
The libGL.so I never defined anywhere!! But it still compiles…

Can someone help me, what I can do to get 3D Acceleration for my Worms-Clone-
project? :frowning:

Maybe this can help u to help me also:

soulfreezer@shadowhost:/usr/lib$ glxinfo
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: ATI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_NV_swap_group,
GLX_OML_swap_method, GLX_SGI_make_current_read,
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
GLX_EXT_framebuffer_sRGB, GLX_ARB_fbconfig_float
GLX version: 1.4
GLX extensions:
GLX_ARB_create_context, GLX_ARB_create_context_profile,
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control,
GLX_NV_swap_group, GLX_OML_swap_method, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier,
GLX_SGIX_swap_group, GLX_SGIX_visual_select_group,
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon 4100
OpenGL version string: 3.2.9756 Compatibility Profile Context
OpenGL shading language version string: 1.50
OpenGL extensions:
GL_AMDX_name_gen_delete, GL_AMD_conservative_depth,
GL_AMD_draw_buffers_blend, GL_AMD_performance_monitor,
GL_AMD_shader_stencil_export, GL_ARB_color_buffer_float,
GL_ARB_copy_buffer, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,
GL_ARB_depth_texture, GL_ARB_draw_buffers,
GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced,
GL_ARB_fragment_coord_conventions, GL_ARB_fragment_program,
GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,
GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
GL_ARB_geometry_shader4, GL_ARB_half_float_pixel,
GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_instanced_arrays,
GL_ARB_map_buffer_range, 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_seamless_cube_map, GL_ARB_shader_objects,
GL_ARB_shader_texture_lod, GL_ARB_shading_language_100,
GL_ARB_shadow_ambient, GL_ARB_sync, GL_ARB_texture_border_clamp,
GL_ARB_texture_buffer_object, GL_ARB_texture_compression,
GL_ARB_texture_compression_rgtc, 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_float, GL_ARB_texture_mirrored_repeat,
GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_snorm,
GL_ARB_transpose_matrix, GL_ARB_uniform_buffer_object,
GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program,
GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap,
GL_ATI_fragment_shader, GL_ATI_meminfo, GL_ATI_separate_stencil,
GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3,
GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_abgr,
GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color,
GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_copy_buffer, GL_EXT_copy_texture, GL_EXT_draw_buffers2,
GL_EXT_draw_instanced, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,
GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters,
GL_EXT_gpu_shader4, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
GL_EXT_provoking_vertex, GL_EXT_rescale_normal,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D,
GL_EXT_texture_array, GL_EXT_texture_buffer_object,
GL_EXT_texture_buffer_object_rgb32, GL_EXT_texture_compression_latc,
GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc,
GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias,
GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_texture_sRGB,
GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm,
GL_EXT_texture_swizzle, GL_EXT_timer_query,
GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region,
GL_NV_conditional_render, GL_NV_copy_depth_to_color,
GL_NV_explicit_multisample, GL_NV_primitive_restart,
GL_NV_texgen_reflection, GL_SGIS_generate_mipmap,
GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod,
GL_WIN_swap_hint, WGL_EXT_swap_control

Direct-Rendering is active!

And a call of “glxgears” in the terminal works so smooth…so my card has 3D-
Acceleration enabled!!

Has anybody an idea…I switched from windows 7 to ubuntu…but if this will not
work…I have no alternative to switch back to evil windows :frowning:

Thanx and plz excuse my bad english (I am German)


elmindreda wrote on Tuesday, August 17, 2010:

This is an issue with your GNU/Linux distribution and/or your graphics driver,
not with GLFW. You should refer to a support forum for your distribution for

sydbod wrote on Friday, August 20, 2010:

Hi soulfreezer,

You are in a similar position to me … coming over from Windows to Linux.

Let us check if you are set up correctly.

1) Are you using Ubuntu 10.04 ?

2) From menu “System ->Preferences ->” , does it show the Menu items for “ATI
Catalyst Control Center” and “ATI Catalyst Control Center (Administrative)”

3)Did you disable “compiz” from operating on your desktop …. Problem is with
ATI Drivers messing up compiz.
ie: "System ->Preferences -> Appearance ", select the “Visual Effects” tab,
select "None: … " instead of “Normal: …”

4)Did you use “GLFW 2.7” rather than “GLFW 2.6”

5)Did the “GLFW 2.7” libraries and header files get created properly with the
make command, and did all the sample programs get compiled properly …… Do all
the sample programs now run properly?

If you get to this stage then let us know and we can progress further,
otherwise we have to get tis first part sorted out.

soulfreezer wrote on Friday, August 20, 2010:

Thanx for your help :wink: But I switched back now to windows 7 ^^ I have to less
time to analyse the strange things happens on my ubuntu :frowning: …and my worms-game
must be finished this year xD If I have a stable und runnable demo, I will
post it here if it is ok?!


It is stable to use the GLF 2.7 Version? Is it the same interface?

elmindreda wrote on Friday, August 20, 2010:

GLFW trunk is quite stable, with two pending fixes remaining until release.

Minor versions are always backward compatible.

soulfreezer wrote on Saturday, August 21, 2010:

Thanx for Info. At the moment I am using the 2.6 Static-lib with Visual Studio
2010 Ultimate on windows 7 32-Bit. It works
great and with no Problems (Multithreaded - Release Version). To get it work
I still converted the msvc80-Solution-project to MSV 2010 and compiled it. And
NOW I have hardware acceleration!! :wink: