matus-chochlik / oglplus

OGLplus is a collection of open-source, cross-platform libraries which implement an object-oriented facade over the OpenGL® (version 3 and higher) and also OpenAL® (version 1.1) and EGL (version 1.4) C-language APIs. It provides wrappers which automate resource and object management and make the use of these libraries in C++ safer and more convenient.
http://oglplus.org/
Boost Software License 1.0
492 stars 72 forks source link

Errors in oglplus under Ubuntu 14.04 #117

Closed Phasdermut closed 9 years ago

Phasdermut commented 9 years ago

Greetings I have problems with OGLPlus under Ubuntu 14.04.

This is the cmake message when I run: "python configure.py --use-glew --use-glfw"

-- The C compiler identification is GNU 4.8.4 -- The CXX compiler identification is GNU 4.8.4 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") -- Found GLEW: /usr/include/GL;/usr/include/libdrm /usr/lib/x86_64-linux-gnu/libGLEW.so;/usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so -- Could NOT find GL3W -- Could NOT find GLES3 -- Found GLFW: /usr/include /usr/lib/libglfw.so -- Could NOT find GLFW3 -- Found GLUT: /usr/lib/x86_64-linux-gnu/libglut.so
-- Found wxWidgets: TRUE
-- Could NOT find SDL -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so -- Found EGL: /usr/include/libdrm /usr/lib/x86_64-linux-gnu/libEGL.so -- GLM header files not found -- Found PNG: /usr/include /usr/lib/x86_64-linux-gnu/libpng.so -- Found Pango/Cairo -- Detecting support for c++ feature 'SCOPED_ENUMS': TRUE -- Detecting support for c++ feature 'SCOPED_ENUM_TEMPLATE_PARAMS': TRUE -- Detecting support for c++ feature 'VARIADIC_MACROS': TRUE -- Detecting support for c++ feature 'VARIADIC_TEMPLATES': TRUE -- Detecting support for c++ feature 'UNIFIED_INITIALIZATION_SYNTAX': TRUE -- Detecting support for c++ feature 'INITIALIZER_LISTS': TRUE -- Detecting support for c++ feature 'DEFAULTED_FUNCTIONS': TRUE -- Detecting support for c++ feature 'DELETED_FUNCTIONS': TRUE -- Detecting support for c++ feature 'EXPLICIT_CONVERSION_OPERATORS': TRUE -- Detecting support for c++ feature 'FUNCTION_TEMPLATE_DEFAULT_ARGS': TRUE -- Detecting support for c++ feature 'UNICODE_LITERALS': TRUE -- Detecting support for c++ feature 'USER_DEFINED_LITERALS': TRUE -- Detecting support for c++ feature 'INHERITED_CONSTRUCTORS': TRUE -- Detecting support for c++ feature 'GENERALIZED_ATTRIBUTES': TRUE -- Detecting support for c++ feature 'TEMPLATE_ALIASES': TRUE -- Detecting support for c++ feature 'CONSTEXPR': TRUE -- Detecting support for c++ feature 'NOEXCEPT': TRUE -- Detecting support for c++ feature 'LAMBDAS': TRUE -- Detecting support for c++ feature 'CHRONO': TRUE -- Detecting support for c++ feature 'THREADS': TRUE -- Boost version: 1.54.0 -- Using GLFW for GL context initialization. -- Using GLEW as GL API library -- Detecting OpenGL version -- Found GL version 3.3 -- Found GL extension: ARB_shader_atomic_counters -- Found GL extension: ARB_transform_feedback2 -- Found GL extension: NV_path_rendering -- Found GLEW extension: ARB_compatibility -- Found GLEW extension: EXT_direct_state_access -- Found GLEW extension: ARB_debug_output -- Found GLEW extension: ATI_meminfo -- Found GLEW extension: NV_path_rendering -- Found GLEW extension: AMD_performance_monitor -- OGLplus library can be built -- Found Doxygen: /usr/bin/doxygen (found version "1.8.6") -- Skipping '026_nv_path_rendering' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '030_pool_tiles' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '031_neon' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '025_reflected_torus' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '022_vase' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '033_steam' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '030_rain' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '032_bar_grid' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_flares' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '023_waves' because 'GL_ARB_tessellation_shader' not implemented properly. -- Skipping '028_ripples' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '033_metal_and_glass' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '027_depth_of_field' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '022_blender_mesh' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_waves' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '020_texture_projection' because 'GL_EXT_direct_state_access' not implemented properly. -- Skipping '021_morphing' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_fire_hydrant' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '019_bpatch_tess' because 'GL_ARB_tessellation_shader' not implemented properly. -- Skipping '026_clouds' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '028_monkeycraft' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '028_depth_map_sss' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '028_glass_shape' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '041_blob_mt' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_gpu_sort_tfb' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '027_reflected_shape' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '021_overdraw' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '040_jelly_cube' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '025_multi_viewport' because 'GL_ARB_viewport_array' not implemented properly. -- Skipping '019_tessellation' because 'GL_ARB_tessellation_shader' not implemented properly. -- Skipping '027_tessellation' because 'GL_ARB_tessellation_shader' not implemented properly. -- Skipping '014_multi_cube_ssbo' because 'GL_VERSION_4_3' not implemented properly. -- Skipping '018_atomic_counters' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '024_extruded_torus' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '031_blob' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '031_sketch' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '032_transitions' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '025_rendered_texture' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '022_volumetric_light' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_surface' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '029_shadow_mapping' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '026_shape_halo' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '034_billiard_balls' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '028_volume' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '026_furry_torus' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '030_pin_display' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '023_sky' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '022_xyz_planes' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '026_stencil_shadow' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly. -- Skipping '027_brain_scan_vis' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '026_ssao' because 'GL_ARB_separate_shader_objects' not implemented properly. -- Skipping '025_subroutines' because 'GL_ARB_shader_subroutine' not implemented properly. -- Configuring done -- Generating done -- Build files have been written to: /home/luque/LIBS/oglplus-0.63.0/_build Configuration completed successfully. To build OGLplus do the following:

cd _build make -j 5 make install

NOTE: installing to '/usr/local' may require administrative privilegues

It skips a lot of stuff, regardless, it is said that the configuration is ok and it compiles(with many warnings but no errors). But when I tried to run the example "standalone/001_triangle_glut_glew.cpp" it crushes in execution (it was compiled correctly) and shows me the following error: Error (in '): OpenGL shading language compilation error [/usr/local/include/oglplus/shader.ipp:50]

Any clue about what is happening? Thanks in advance!

cguentherTUChemnitz commented 9 years ago

Your system seem to run OpenGL 3.3. I guess you are running an Intel mesa driver. So a lot of extensions provided by OpenGL >4.0 and vendor specific stuff (NV equals Nvidia) is disabled.

So it seems to me that the configuration itself is correct. But the crash occurs during the shader compilation. That might be the case if the some >OpenGL 3.3 functionality is used.

So it might be useful to specify the minimum required OpenGL version for this wrapper. Also additional pressure on side of Intel might be useful that they update their mesa driver part faster. Their corresponding windows drivers are currently OpenGL 4.x compatible for some current integrated GPU versions.

matus-chochlik commented 9 years ago

Hi, Yes unfortunately the OGLplus examples mostly use GLSL 330 so the shaders won't currently compile with Mesa. I plan to change some of them to use GLSL 140, but I'm rather busy with my day job at the moment so it will take some time.

matus-chochlik commented 9 years ago

OK, I've changed four of the standalone examples to use GLSL 120 so at least some of the should run with Mesa.

Phasdermut commented 9 years ago

Can you tell me exactly which examples have you change?, so I can check if they work in my computer. Thanks!

matus-chochlik commented 9 years ago

The following examples use GLSL 120 (on the develop branch)

example/standalone/001_triangle_glut_glew.cpp example/standalone/001_triangle_sdl_glew.cpp example/standalone/001_triangle_wxgl_glew.cpp example/standalone/001_triangle_screenshot.cpp example/standalone/020_oglplus_oalplus.cpp

example/oglplus/001_triangle_glsl120.cpp example/oglplus/010_cmy_cube_glsl120.cpp example/oglplus/016_textured_cube_glsl120.cpp

matus-chochlik commented 9 years ago

OK, most of the examples have been rewritten to use a lower GLSL version (mostly 120/130/140/150) and run even with Mesa swrast. Check the develop branch or the recent release.