Minimum supported OpenGL version

Problems building or running the engine, queries about how to use features etc.
Post Reply
User avatar
fractile
Gremlin
Posts: 199
Joined: Thu Jan 13, 2005 2:35 pm
Location: Tampere, Finland
x 15
Contact:

Minimum supported OpenGL version

Post by fractile »

This might be a stupid question, but what is the oldest OpenGL version supported by Ogre 1.9?

I have this old crappy Intel Atom based netbook that I've been using as low end test hardware for my game. After upgrading Ogre from 1.8 to 1.9 the game now crashes on the netbook.

Here are the last word in the log:

Code: Select all

I 2014-01-05 22:30:43.981 GLXWindow::create used FBConfigID = 99
I 2014-01-05 22:30:43.981 GL_VERSION = 1.4 Mesa 9.1.7
I 2014-01-05 22:30:43.982 GL_VENDOR = Intel Open Source Technology Center
I 2014-01-05 22:30:43.982 GL_RENDERER = Mesa DRI Intel(R) 945GME x86/MMX/SSE2
I 2014-01-05 22:30:43.982 GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_multitexture GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_ARB_half_float_pixel GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_pixel_buffer_object GL_ARB_texture_rectangle GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_rectangle GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_APPLE_object_purgeable GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_gpu_program_parameters GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_map_buffer_range GL_EXT_separate_shader_objects GL_ARB_ES2_compatibility GL_ARB_debug_output GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_provoking_vertex GL_ARB_sampler_objects GL_EXT_provoking_vertex GL_ARB_get_program_binary GL_ARB_robustness GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_internalformat_query GL_ARB_texture_storage GL_ARB_invalidate_subdata 
I 2014-01-05 22:30:43.984 Supported GLX extensions: GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_create_context_es2_profile GLX_MESA_copy_sub_buffer GLX_MESA_multithread_makecurrent GLX_MESA_swap_control 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_INTEL_swap_event 
I 2014-01-05 22:30:43.984 ***************************
I 2014-01-05 22:30:43.984 *** GL Renderer Started ***
I 2014-01-05 22:30:43.984 ***************************
It crashes on a call to glBindBuffer() which seems to be null pointer based on the backtrace:

Code: Select all

#0  0x00000000 in ?? ()
#1  0xb586c278 in Ogre::GLStateCacheManagerImp::initializeCache (this=0xb65fdd80)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/StateCacheManager/OgreGLNullStateCacheManagerImp.cpp:64
#2  0xb5822f09 in Ogre::GLStateCacheManager::switchContext (this=0xb64f7fc8, id=134817000)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/OgreGLStateCacheManager.cpp:66
#3  0xb5813689 in Ogre::GLRenderSystem::initialiseContext (this=0xb65fd060, primary=0xb5df4368)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/OgreGLRenderSystem.cpp:1209
#4  0xb5812ae3 in Ogre::GLRenderSystem::_createRenderWindow (this=0xb65fd060, name=..., width=640, height=480, 
    fullScreen=false, miscParams=0xbfffe890)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/OgreGLRenderSystem.cpp:1088
#5  0xb57f47ff in Ogre::GLXGLSupport::createWindow (this=0x80675c0, autoCreateWindow=true, renderSystem=0xb65fd060, 
    windowTitle=...)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/GLX/OgreGLXGLSupport.cpp:384
#6  0xb580e15a in Ogre::GLRenderSystem::_initialise (this=0xb65fd060, autoCreateWindow=true, windowTitle=...)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/RenderSystems/GL/src/OgreGLRenderSystem.cpp:211
#7  0xb75d39fe in Ogre::Root::initialise (this=0xb65f5478, autoCreateWindow=true, windowTitle=..., 
    customCapabilitiesConfig=...)
    at /home/mikko/fractilegames/external/source/ogre-1.9.0-debug/OgreMain/src/OgreRoot.cpp:690
I'm guessing this means that this GL function is not provided by the driver, after all it reports support for OpenGL 1.4, which does not support glBindBuffer (non-ARB). Is this the case?

Its OK that the game does not work on really old hardware like this, but I would like to be able to tell this to the player instead of just crashing..
User avatar
masterfalcon
OGRE Team Member
OGRE Team Member
Posts: 4270
Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
x 126
Contact:

Re: Minimum supported OpenGL version

Post by masterfalcon »

I don't know what we have an official supported GL version but I would say that 2.1 is the minimum at this point in time.
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
x 216

Re: Minimum supported OpenGL version

Post by scrawl »

http://www.ogre3d.org/tikiwiki/Hardware (findable via google "ogre opengl minimum")
To work at all, OGRE requires a base OpenGL version of 1.2.1
User avatar
fractile
Gremlin
Posts: 199
Joined: Thu Jan 13, 2005 2:35 pm
Location: Tampere, Finland
x 15
Contact:

Re: Minimum supported OpenGL version

Post by fractile »

I actually did see that wiki page. It says the minimum is 1.2.1, but that suggests I should be able to initialize Ogre with OpenGL 1.4. I thought the minimum might have changed in upgrade to 1.9, since Ogre 1.8 still works fine on the same HW.

I should probably check the driver version using Ogre::RenderSystem::getDriverVersion() before initializing Ogre::Root. OpenGL version 2.1 sounds like a fair requirement. I just don't want to receive bug reports saying "game crashes at startup" :)
Post Reply