Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Problems building or running the engine, queries about how to use features etc.
Post Reply
davidg
Gnoblar
Posts: 4
Joined: Wed Nov 22, 2017 9:39 pm

Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by davidg »

Hello,
I've been pulling my hair out for a few days trying to produce a vagrant-based VirtualBox VM running CentOS 7.4 to build an application using Ogre 1.10.9. I'm fairly experienced with C++ and CMake, and have used Ogre in the past on Windows platforms, but I am at my wits end over this.

Problem #1: Out-of-source builds fail
If I unzip the 1.10.9 (or 1.10.8 or 1.10.7) sources into a directory, and then do the usual cmake build steps such as:
mkdir build
cd build
cmake ..
make
After a long wait, at about 65% done, I get the following error:
"Unable to open file /tmp/ogre-1.10.7/build/Components/Python/../../OgreMain/include/OgrePYTHON_wrap.cxx: No such file or directory"
The error seems to be caused because of the build directory I'm in, as I can do an in-source build (cmake .) and get further.

Problem #2: In-source builds fail differently
Doing an in-source build gets further along but then bombs out here:
[ 67%] Building CXX object Components/Python/CMakeFiles/_OgreRTShader.dir/__/RTShaderSystem/include/OgreRTShaderPYTHON_wrap.cxx.o
/tmp/ogre-1.10.7/Components/Python/../../OgreMain/include/OgrePYTHON_wrap.cxx:422294:16: error: ‘_wrap_new_AnyNumeric’ was not declared in this scope
(initproc) _wrap_new_AnyNumeric, /* tp_init */

Problem #3: Builds without Python won't run
Since both issues above seem related to Python, I tried configuring the build with the python component disabled. Ogre then completes building successfully and can be installed. However, when trying to run a simple application, it crashes at startup using both GL and GL3+ rendering systems.


The full std output with GL3+ rendering system is pasted below:

Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.10.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,sgi,exr,j2k,j2c,jp2
ETC codec registering
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library /usr/local/lib/OGRE/RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Plugin successfully installed
Loading library /usr/local/lib/OGRE/RenderSystem_GL3Plus
Installing plugin: GL 3+ RenderSystem
OpenGL 3+ Rendering Subsystem created.
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_PCZSceneManager
Installing plugin: Portal Connected Zone Scene Manager
PCZone Factory Type 'ZoneType_Default' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeZone
Installing plugin: Octree Zone Factory
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeSceneManager
Installing plugin: Octree Scene Manager
Plugin successfully installed
*-*-* OGRE Initialising
*-*-* Version 1.10.9 (Xalafu)
Using Render System: OpenGL 3+ Rendering Subsystem
CPU Identifier & Features
-------------------------
* CPU ID: GenuineIntel: Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz
* SSE: yes
* SSE2: yes
* SSE3: yes
* SSE41: yes
* SSE42: yes
* MMX: yes
* MMXEXT: yes
* 3DNOW: no
* 3DNOWEXT: no
* CMOV: yes
* TSC: yes
*INVARIANT TSC: yes
* FPU: yes
* PRO: yes
* HT: no
-------------------------
******************************
*** Starting GLX Subsystem ***
******************************
GLX_VERSION = 1.3 Chromium
GLX_EXTENSIONS = GLX_ARB_multisample GLX_EXT_texture_from_pixmap GLX_SGIX_fbconfig GLX_ARB_get_proc_address
GL3PlusRenderSystem::_createRenderWindow "QT Window", 800x535 windowed miscParams: currentGLContext=false externalWindowHandle=44040215 parentWindowHandle=44040215
Actual frame buffer FSAA: 1, gamma: false
terminate called after throwing an instance of 'Ogre::RuntimeAssertionException'
what(): RuntimeAssertionException: glXCreateContextAttribsARB() function not found in createNewContext at /tmp/ogre-1.10.9/RenderSystems/GLSupport/src/GLX/OgreGLXGLSupport.cpp (line 859)


The full std output with GL rendering system:

Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.10.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,sgi,exr,j2k,j2c,jp2
ETC codec registering
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library /usr/local/lib/OGRE/RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_PCZSceneManager
Installing plugin: Portal Connected Zone Scene Manager
PCZone Factory Type 'ZoneType_Default' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeZone
Installing plugin: Octree Zone Factory
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeSceneManager
Installing plugin: Octree Scene Manager
Plugin successfully installed
*-*-* OGRE Initialising
*-*-* Version 1.10.7 (Xalafu)
Using Render System: OpenGL Rendering Subsystem
CPU Identifier & Features
-------------------------
* CPU ID: GenuineIntel: Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz
* SSE: yes
* SSE2: yes
* SSE3: yes
* SSE41: yes
* SSE42: yes
* MMX: yes
* MMXEXT: yes
* 3DNOW: no
* 3DNOWEXT: no
* CMOV: yes
* TSC: yes
*INVARIANT TSC: yes
* FPU: yes
* PRO: yes
* HT: no
-------------------------
******************************
*** Starting GLX Subsystem ***
******************************
GLX_VERSION = 1.3 Chromium
GLX_EXTENSIONS = GLX_ARB_multisample GLX_EXT_texture_from_pixmap GLX_SGIX_fbconfig GLX_ARB_get_proc_address
Registering ResourceManager for type Texture
GLRenderSystem::_createRenderWindow "QT Window", 800x535 windowed miscParams: currentGLContext=false externalWindowHandle=56623127 parentWindowHandle=56623127
[1] 28504 segmentation fault


System Info
VirtualBox 5.1.30 - Guest Additions are Installed. 3D Acceleration is Ticked.
Vagrant 2.0.1 running the official "centos/7" box.
CentOS 7.4 with XFCE
Python 2.7.5
Kernel: 3.10.0-693.5.2.el7.x86_64

My glxinfo:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: Chromium
server glx version string: 1.3 Chromium
server glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig
client glx vendor string: Chromium
client glx version string: 1.3 Chromium
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig
GLX version: 1.3
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_texture_from_pixmap, GLX_SGIX_fbconfig
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9
OpenGL shading language version string: 1.20
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
GL_ARB_fragment_shader, 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_shader_texture_lod, GL_ARB_shading_language_100, GL_ARB_shadow,
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_float,
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_ATI_texture_mirror_once, GL_CR_bounding_box,
GL_CR_cursor_position, GL_CR_head_spu_name, GL_CR_performance_info,
GL_CR_print_string, GL_CR_readback_barrier_size, GL_CR_saveframe,
GL_CR_server_id_sharing, GL_CR_server_matrix, GL_CR_state_parameter,
GL_CR_synchronization, GL_CR_tile_info, GL_CR_tilesort_info,
GL_CR_window_size, GL_EXT_blend_color, GL_EXT_blend_equation_separate,
GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
GL_EXT_clip_volume_hint, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_object,
GL_EXT_multi_draw_arrays, GL_EXT_secondary_color, GL_EXT_shadow_funcs,
GL_EXT_stencil_two_side, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_env_add,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_IBM_rasterpos_clip,
GL_NV_fog_distance, GL_NV_fragment_program2,
GL_NV_fragment_program_option, GL_NV_texgen_reflection,
GL_NV_vertex_program2_option, GL_NV_vertex_program3,
GL_SGIS_generate_mipmap, GL_SGIS_texture_edge_clamp


I'm hoping someone with more experience with Ogre will know what is going on.

Thank you,
David
paroj
OGRE Team Member
OGRE Team Member
Posts: 1995
Joined: Sun Mar 30, 2014 2:51 pm
x 1075
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by paroj »

Python: which swig version do you use? Our CI uses 3.0.8.

running on top of a VM GL layer is neither a priority nor well tested for ogre.
OpenGL version string: 2.1 Chromium 1.9
you say GL3+ does not work?

For the GL issues: please test with the SampleBrowser first before going for Qt integration. Also provide a gdb strack trace.
davidg
Gnoblar
Posts: 4
Joined: Wed Nov 22, 2017 9:39 pm

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by davidg »

Thanks for your response.

Swig is version 2.0.10. We don't have any plans for Python bindings in the near future, though.

Below is what happens when I try to run the SampleBrowser with GL 3+.

OGRE gdb SampleBrowser
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-100.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/bin/SampleBrowser...done.
(gdb) run
Starting program: /usr/local/bin/SampleBrowser
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.10.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,sgi,exr,j2k,j2c,jp2
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library /usr/local/lib/OGRE/RenderSystem_GL
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
[New Thread 0x7fffeb3c2700 (LWP 6880)]
[New Thread 0x7fffeabc1700 (LWP 6881)]
Plugin successfully installed
Loading library /usr/local/lib/OGRE/RenderSystem_GL3Plus
Installing plugin: GL 3+ RenderSystem
OpenGL 3+ Rendering Subsystem created.
[New Thread 0x7fffea12b700 (LWP 6882)]
[New Thread 0x7fffe992a700 (LWP 6883)]
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_PCZSceneManager
Installing plugin: Portal Connected Zone Scene Manager
PCZone Factory Type 'ZoneType_Default' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeZone
Installing plugin: Octree Zone Factory
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeSceneManager
Installing plugin: Octree Scene Manager
Plugin successfully installed
*-*-* OGRE Initialising
*-*-* Version 1.10.9 (Xalafu)
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
CPU Identifier & Features
-------------------------
* CPU ID: GenuineIntel: Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz
* SSE: yes
* SSE2: yes
* SSE3: yes
* SSE41: yes
* SSE42: yes
* MMX: yes
* MMXEXT: yes
* 3DNOW: no
* 3DNOWEXT: no
* CMOV: yes
* TSC: yes
*INVARIANT TSC: yes
* FPU: yes
* PRO: yes
* HT: no
-------------------------
******************************
*** Starting GLX Subsystem ***
******************************
GLX_VERSION = 1.4
GLX_EXTENSIONS = GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_create_context_robustness GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_MESA_copy_sub_buffer GLX_MESA_multithread_makecurrent GLX_MESA_query_renderer 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 GLX_EXT_buffer_age
[New Thread 0x7fffe7be2700 (LWP 6884)]
[New Thread 0x7fffe73e1700 (LWP 6885)]
GL3PlusRenderSystem::_createRenderWindow "OGRE Sample Browser", 1920x1200 windowed miscParams: FSAA=0 parentWindowHandle=54525964 vsync=Yes
Actual frame buffer FSAA: 0, gamma: false
Failed to create an OpenGL context. Can not set a context profile
An exception has occurred: RenderingAPIException: Unable to create a suitable GLXContext in GLXContext::GLXContext at /tmp/ogre-1.10.9/RenderSystems/GLSupport/src/GLX/OgreGLXContext.cpp (line 60)
[Thread 0x7ffff7fcd780 (LWP 6876) exited]
[Thread 0x7fffe73e1700 (LWP 6885) exited]
[Thread 0x7fffe7be2700 (LWP 6884) exited]
[Thread 0x7fffe992a700 (LWP 6883) exited]
[Thread 0x7fffea12b700 (LWP 6882) exited]
[Thread 0x7fffeabc1700 (LWP 6881) exited]
[Inferior 1 (process 6876) exited normally]
Missing separate debuginfos, use: debuginfo-install OpenEXR-libs-1.7.1-7.el7.x86_64 SDL2-2.0.3-9.el7.x86_64 boost-chrono-1.53.0-27.el7.x86_64 boost-date-time-1.53.0-27.el7.x86_64 boost-system-1.53.0-27.el7.x86_64 boost-thread-1.53.0-27.el7.x86_64 dbus-libs-1.6.12-17.el7.x86_64 elfutils-libelf-0.168-8.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 glibc-2.17-196.el7.x86_64 ilmbase-1.0.3-7.el7.x86_64 jbigkit-libs-2.0-11.el7.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.5-1.el7.x86_64 libXScrnSaver-1.2.2-6.1.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXaw-1.0.13-4.el7.x86_64 libXcursor-1.1.14-8.el7.x86_64 libXdamage-1.1.4-4.1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXfixes-5.0.3-1.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXinerama-1.1.3-2.1.el7.x86_64 libXmu-1.1.2-2.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libXrandr-1.5.1-2.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXt-1.1.5-3.el7.x86_64 libXxf86vm-1.1.4-1.el7.x86_64 libdrm-2.4.74-1.el7.x86_64 libgcc-4.8.5-16.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libmng-1.0.10-14.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libselinux-2.5-11.el7.x86_64 libstdc++-4.8.5-16.el7.x86_64 libtiff-4.0.3-27.el7_3.x86_64 libuuid-2.23.2-43.el7.x86_64 libxcb-1.12-1.el7.x86_64 libxshmfence-1.2-1.el7.x86_64 mesa-dri-drivers-17.0.1-6.20170307.el7.x86_64 mesa-libGL-17.0.1-6.20170307.el7.x86_64 mesa-libGLU-9.0.0-4.el7.x86_64 mesa-libglapi-17.0.1-6.20170307.el7.x86_64 mesa-private-llvm-3.9.1-3.el7.x86_64 openjpeg-libs-1.5.1-17.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-17.el7.x86_64
(gdb) bt
No stack.
(gdb)
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5299
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1280
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by dark_sylinc »

The HW accelerated OpenGL version provided by VirtualBox is 2.1
GL3+ requires at least OpenGL 3.0

That's simply why it's failing.
You can get it to work using pure SW emulation by installing vanilla Mesa (without the VirtualBox guest additions), but it will be very slow.

Perhaps you can workaround the need to uninstall the guest additions (or reinstall mesa after the guest additions have been installed) by setting LIBGL_ALWAYS_SOFTWARE:

Code: Select all

export LIBGL_ALWAYS_SOFTWARE=1
in the terminal that is going to launch your Ogre sample. But that will only work if the VirtualBox drivers recognize it.
paroj
OGRE Team Member
OGRE Team Member
Posts: 1995
Joined: Sun Mar 30, 2014 2:51 pm
x 1075
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by paroj »

RendersystemGL should work though. Use 1.10.9 and provide a gdb trace of the SampleBrowser if it fails.

If you do not need Python, just disable it - it is unrelated.
davidg
Gnoblar
Posts: 4
Joined: Wed Nov 22, 2017 9:39 pm

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by davidg »

I can get rendering to work, somewhat, with software rendering via the Mesa drivers, but it's not a good experience and won't work for our needs.

I feel like the basic RenderSystemGL should work with VirtualBox's hardware acceleration, but I can't get it to work.

Trying to run the SampleBrowser with only the RenderSystemGL enabled, and with VirtualBox's Chromium drivers with 3d acceleration enabled, results in a crash at startup.

glxinfo:
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9
OpenGL shading language version string: 1.20

SampleBrowser output:
~ gdb SampleBrowser
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-100.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/bin/SampleBrowser...done.
(gdb) run
Starting program: /usr/local/bin/SampleBrowser
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
ArchiveFactory for archive type EmbeddedZip registered.
DDS codec registering
FreeImage version: 3.10.0
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,sgi,exr,j2k,j2c,jp2
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
Loading library /usr/local/lib/OGRE/RenderSystem_GL
Missing separate debuginfo for /var/lib/VBoxGuestAdditions/lib/libGL.so.1
Missing separate debuginfo for /lib64/VBoxOGLcrutil.so
Installing plugin: GL RenderSystem
OpenGL Rendering Subsystem created.
Missing separate debuginfo for /lib64/VBoxOGLpackspu.so
Missing separate debuginfo for /lib64/VBoxOGLerrorspu.so
Missing separate debuginfo for /lib64/VBoxOGLfeedbackspu.so
Missing separate debuginfo for /lib64/VBoxOGLpassthroughspu.so
[New Thread 0x7fffeefe3700 (LWP 1978)]
[Thread 0x7fffeefe3700 (LWP 1978) exited]
[New Thread 0x7ffff7e8e700 (LWP 1979)]
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_ParticleFX
Installing plugin: ParticleFX
Particle Emitter Type 'Point' registered
Particle Emitter Type 'Box' registered
Particle Emitter Type 'Ellipsoid' registered
Particle Emitter Type 'Cylinder' registered
Particle Emitter Type 'Ring' registered
Particle Emitter Type 'HollowEllipsoid' registered
Particle Affector Type 'LinearForce' registered
Particle Affector Type 'ColourFader' registered
Particle Affector Type 'ColourFader2' registered
Particle Affector Type 'ColourImage' registered
Particle Affector Type 'ColourInterpolator' registered
Particle Affector Type 'Scaler' registered
Particle Affector Type 'Rotator' registered
Particle Affector Type 'DirectionRandomiser' registered
Particle Affector Type 'DeflectorPlane' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_BSPSceneManager
Installing plugin: BSP Scene Manager
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_PCZSceneManager
Installing plugin: Portal Connected Zone Scene Manager
PCZone Factory Type 'ZoneType_Default' registered
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeZone
Installing plugin: Octree Zone Factory
Plugin successfully installed
Loading library /usr/local/lib/OGRE/Plugin_OctreeSceneManager
Installing plugin: Octree Scene Manager
Plugin successfully installed
*-*-* OGRE Initialising
*-*-* Version 1.10.9 (Xalafu)
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
CPU Identifier & Features
-------------------------
* CPU ID: GenuineIntel: Intel(R) Core(TM) i5 CPU M 540 @ 2.53GHz
* SSE: yes
* SSE2: yes
* SSE3: yes
* SSE41: yes
* SSE42: yes
* MMX: yes
* MMXEXT: yes
* 3DNOW: no
* 3DNOWEXT: no
* CMOV: yes
* TSC: yes
*INVARIANT TSC: yes
* FPU: yes
* PRO: yes
* HT: no
-------------------------
******************************
*** Starting GLX Subsystem ***
******************************
GLX_VERSION = 1.3 Chromium
GLX_EXTENSIONS = GLX_ARB_multisample GLX_EXT_texture_from_pixmap GLX_SGIX_fbconfig GLX_ARB_get_proc_address
Registering ResourceManager for type Texture
GLRenderSystem::_createRenderWindow "OGRE Sample Browser", 1920x1200 windowed miscParams: FSAA=1 parentWindowHandle=50331654 vsync=Yes
Actual frame buffer FSAA: 1, gamma: false
An exception has occurred: RuntimeAssertionException: glXCreateContextAttribsARB() function not found in createNewContext at /tmp/ogre-1.10.9/RenderSystems/GLSupport/src/GLX/OgreGLXGLSupport.cpp (line 859)
[Thread 0x7ffff7fcd780 (LWP 1974) exited]
[Inferior 1 (process 1974) exited normally]
Missing separate debuginfos, use: debuginfo-install OpenEXR-libs-1.7.1-7.el7.x86_64 SDL2-2.0.3-9.el7.x86_64 boost-chrono-1.53.0-27.el7.x86_64 boost-date-time-1.53.0-27.el7.x86_64 boost-system-1.53.0-27.el7.x86_64 boost-thread-1.53.0-27.el7.x86_64 dbus-libs-1.6.12-17.el7.x86_64 glibc-2.17-196.el7.x86_64 ilmbase-1.0.3-7.el7.x86_64 jbigkit-libs-2.0-11.el7.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.5-1.el7.x86_64 libXScrnSaver-1.2.2-6.1.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXaw-1.0.13-4.el7.x86_64 libXcomposite-0.4.4-4.1.el7.x86_64 libXcursor-1.1.14-8.el7.x86_64 libXdamage-1.1.4-4.1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXfixes-5.0.3-1.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXinerama-1.1.3-2.1.el7.x86_64 libXmu-1.1.2-2.el7.x86_64 libXpm-3.5.12-1.el7.x86_64 libXrandr-1.5.1-2.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXt-1.1.5-3.el7.x86_64 libXxf86vm-1.1.4-1.el7.x86_64 libgcc-4.8.5-16.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libmng-1.0.10-14.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 libstdc++-4.8.5-16.el7.x86_64 libtiff-4.0.3-27.el7_3.x86_64 libuuid-2.23.2-43.el7.x86_64 libxcb-1.12-1.el7.x86_64 mesa-libGLU-9.0.0-4.el7.x86_64 openjpeg-libs-1.5.1-17.el7.x86_64 zlib-1.2.7-17.el7.x86_64


Thank you,
David
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5299
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1280
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by dark_sylinc »

It would seem glXCreateContextAttribsARB is also not provided by VirtualBox, according to googling around.
davidg
Gnoblar
Posts: 4
Joined: Wed Nov 22, 2017 9:39 pm

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by davidg »

Isn't glXCreateContextAttribsARB an OpenGL 3.0 functionality? Why is Ogre making an OpenGL 3.0 call when I'm only using the GL Rendering System and not the GL 3+ Rendering System?
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5299
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1280
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by dark_sylinc »

Well, it's more complicated. OpenGL is the API, and to use it we need to interface it with the OS and desktop provider.
In the case of Linux running X11, that interface is GLX.

glXCreateContextAttribsARB is part of GLX, and is not specific to GL 3.0; although it was indeed introduced alongside OpenGL 3.0 nine years ago.

This function got probably used when Ogre 1.x merged the GLX code of all GL implementations (GL, GL3+, GLES and GLES2) into one. I'm not working on 1.x anymore so this is as far as I can help. Paroj may know more.
paroj
OGRE Team Member
OGRE Team Member
Posts: 1995
Joined: Sun Mar 30, 2014 2:51 pm
x 1075
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by paroj »

removing the assert and adding this patch should get you going:
https://github.com/OGRECave/ogre/pull/507
User avatar
EricB
Bronze Sponsor
Bronze Sponsor
Posts: 360
Joined: Fri Apr 09, 2010 5:28 am
Location: Florida
x 213
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by EricB »

I'm running across the similar issues with 1.10.12 using OpenGL2 renderer. Guest is Ubuntu 18.04, Ogre is being built inside the Steam's Chroot.

It's a shame that paroj has assigned this as low priority in github as this is a regression. Ogre 1.7 to 1.9 worked perfectly fine in Vbox. It breaks the workflow for most developers in Linux. There are just too many distros out there for us to test on bare metal or KVM. Not to mention, the possible issues on older end user systems (I have about 1-2% of players on OpenGL2 systems... Which means I'll have to support two builds or figure out how to revert to the old GLX support code).

Anyhoo, the linked patch did not fully resolve the issue (It's already in 1.10.x). I changed the default video drivers, and it led into the github issue here: https://github.com/OGRECave/ogre/issues/766 (Which I didn't find a thread for.)

Disabling 3d acceleration support all together makes it work. Similar to issues found in WX: https://trac.wxwidgets.org/ticket/17595
Image
paroj
OGRE Team Member
OGRE Team Member
Posts: 1995
Joined: Sun Mar 30, 2014 2:51 pm
x 1075
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by paroj »

It's a shame that paroj has assigned this as low priority
it just means that I wont fix it. But I am happy to review pull requests fixing it. (its low priority for WX as well BTW)
There are just too many distros out there for us to test
actually it is just Ubuntu(=Debian). Anybody trying to game on something different is basically asking for the pain..
User avatar
EricB
Bronze Sponsor
Bronze Sponsor
Posts: 360
Joined: Fri Apr 09, 2010 5:28 am
Location: Florida
x 213
Contact:

Re: Difficulty Configuring OGRE for CentOS 7.4 with VirtualBox 5.1.30

Post by EricB »

paroj wrote: Sat Dec 29, 2018 11:09 pm
There are just too many distros out there for us to test
actually it is just Ubuntu(=Debian). Anybody trying to game on something different is basically asking for the pain..
Going a bit off topic, but there isn't a reason to not support a paying customer's distro as long as it meets the minimum requirements. It's fairly easy to do as long as you build against vanilla packages or LSB and rpath what is needed. My previous iteration of my game does that just well. The only reason I am upgrading everything is because of Apple and their lovely habit of breaking everything.

Vbox is needed because I am not a Ubuntu/Debian user. I prefer Slackware, but have been using Arch more lately. But sometimes, customers have silly problems like with Ubuntu's gawd awful DE.

Anyhoo, the work around for VirtualBox is to disable hardware acceleration. If the issue leaks into some of my users, I will look further into fixing it for 1.10.12, and you can get the patch from there. (And if its' too much, I'll revert some of the code back to 1.9's setup). (I've been meaning to move over to VMware anyway, so this may just accelerate the move.)
Image
Post Reply