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

Could not detect GL version, assuming 3.0 #118

Open chaosink opened 9 years ago

chaosink commented 9 years ago

I am using NVIDIA graphics card(GEFORCE GT 650M notebook, driver version: nvidia-346).

Why it can't detect GL version which should be 4.5?

matus-chochlik commented 9 years ago

Could You specify the platform/compiler ?

chaosink commented 9 years ago

OS: Linux Mint 17.2 Cinnamon 64-bit Kernel: 3.13.0-24-generic Compiler: GCC & CLANG (I haven't yet compiled. The message appeared when configuring.)

When I use Intel graphics card, GL version 3.2 can be deteced.

matus-chochlik commented 9 years ago

Ok, on Linux I usually need to do

export LD_LIBRARY_PATH=/usr/lib/nvidia-###

before running configure. Where /usr/lib/nvidia-###/ is the directory where the libGL.so library is located. You can find it for example by running

locate libGL.so

HTH

chaosink commented 9 years ago
➜  oglplus git:(develop) locate libGL.so                            
/home/lin/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/share/doc/nvidia-cg-toolkit/examples/Tools/trace/libGL.so.1.gz
/home/lin/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/share/doc/nvidia-cg-toolkit/examples/Tools/trace/libGL.so.1.gz
/home/lin/.local/share/Steam/ubuntu12_32/steam-runtime.old/amd64/usr/share/doc/nvidia-cg-toolkit/examples/Tools/trace/libGL.so.1.gz
/home/lin/.local/share/Steam/ubuntu12_32/steam-runtime.old/i386/usr/share/doc/nvidia-cg-toolkit/examples/Tools/trace/libGL.so.1.gz
/opt/blender-2.74-linux-glibc211-x86_64/lib/libGL.so
/opt/blender-2.74-linux-glibc211-x86_64/lib/libGL.so.1
/opt/blender-2.74-linux-glibc211-x86_64/lib/libGL.so.1.5.08005
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/nvidia-346/libGL.so
/usr/lib/nvidia-346/libGL.so.1
/usr/lib/nvidia-346/libGL.so.346.72
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib32/nvidia-346/libGL.so
/usr/lib32/nvidia-346/libGL.so.1
/usr/lib32/nvidia-346/libGL.so.346.72
➜  oglplus git:(develop) export LD_LIBRARY_PATH=/usr/lib/nvidia-346/
➜  oglplus git:(develop) ./configure.sh                             
-- Found GLEW: /usr/local/include;/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
-- Could NOT find GLFW
-- Found GLFW3: /usr/local/include;/usr/include/libdrm /usr/local/lib/libglfw.so
-- Found Qt5
-- Found SDL: /usr/include/SDL /usr/lib/x86_64-linux-gnu/libSDL.so
-- Found EGL: /usr/local/include;/usr/include/libdrm /usr/lib/x86_64-linux-gnu/libEGL.so
-- Found PNG: /usr/include /usr/lib/x86_64-linux-gnu/libpng.so
-- Found Pango/Cairo
-- Boost version: 1.54.0
-- Using GLX for GL context initialization.
-- Using native OpenGL API library
-- Detecting OpenGL version
Could not detect GL version, assuming 3.0
-- 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
CMake Warning at config/OGLplusLib.cmake:63 (message):
  OGLplus library cannot be built!
Call Stack (most recent call first):
  CMakeLists.txt:194 (include)

-- Skipping '016_metallic_torus' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '032_object_tracking' because 'GL_ARB_transform_feedback2' not implemented properly.
-- Skipping '017_phong_torus' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '023_waves' because 'GL_ARB_tessellation_shader' not implemented properly.
-- Skipping '028_glass_shape' 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 '026_stencil_shadow' 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 '028_monkeycraft' 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 '029_fire_hydrant' 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 '014_multi_cube' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '026_clouds' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '031_brick_torus' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '027_brain_scan_vis' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '021_morphing' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '027_depth_of_field' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '032_transitions' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '017_clipped_torus' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '022_xyz_planes' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '020_octree' because 'GL_ARB_transform_feedback2' not implemented properly.
-- Skipping '024_extruded_torus' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '028_ripples' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '031_motion_blur' because 'GL_VERSION_3_3' not implemented properly.
-- Skipping '040_jelly_cube' 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 '014_multi_cube_ssbo' because 'GL_VERSION_4_3' not implemented properly.
-- Skipping '014_multi_cube_ub' because 'GL_VERSION_3_3' not implemented properly.
-- Skipping '027_reflected_shape' 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 '029_flares' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '030_pool_tiles' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '029_muddy_stones' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '031_sketch' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '022_vase' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '030_cube_mapping' because 'GL_VERSION_3_2' not implemented properly.
-- Skipping '018_atomic_counters' 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 '025_rendered_texture' because 'GL_VERSION_3_2' not implemented properly.
-- Skipping '022_volumetric_light' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '026_nv_path_rendering' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '024_simple_picking' because 'GL_ARB_transform_feedback2' not implemented properly.
-- Skipping '028_depth_map_sss' 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_blender_mesh' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '030_light_rays' because 'GL_VERSION_3_2' not implemented properly.
-- Skipping '034_billiard_balls' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '016_cartoon_torus' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '025_recursive_texture' because 'GL_VERSION_3_2' not implemented properly.
-- Skipping '033_steam' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '020_shaded_objects' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '016_noise_torus' because 'GL_VERSION_3_3' not implemented properly.
-- Skipping '020_golf_ball' because 'GL_ARB_transform_feedback2' not implemented properly.
-- Skipping '025_subroutines' because 'GL_ARB_shader_subroutine' not implemented properly.
-- Skipping '029_gpu_sort_tfb' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '041_blob_mt' 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 '029_shadow_mapping' 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 '031_fog' because 'GL_VERSION_3_3' not implemented properly.
-- Skipping '025_reflected_torus' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '027_flow' because 'GL_VERSION_3_2' not implemented properly.
-- Skipping '029_surface' 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 '032_bar_grid' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '026_ssao' because 'GL_ARB_separate_shader_objects' not implemented properly.
-- Skipping '019_helium' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '019_tessellation' because 'GL_ARB_tessellation_shader' not implemented properly.
-- Skipping '029_waves' because 'GL_ARB_separate_shader_objects;GL_EXT_direct_state_access' not implemented properly.
-- Skipping '027_tessellation' because 'GL_ARB_tessellation_shader' not implemented properly.
-- Skipping '017_sky_box' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '012_checker_sphere' because 'GL_VERSION_3_1' not implemented properly.
-- Skipping '031_neon' 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 '025_rendered_texture_mt' because 'GL_VERSION_3_2' not implemented properly.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lin/program/oglplus/_build

# Configuration completed successfully.
# To build OGLplus do the following:

cd _build &&
make -j 5

# NOTE: installing may require administrative privilegues
matus-chochlik commented 9 years ago

Ok, try the following; run configure.py but add the --debug-config and --debug-gl-ver-error options. After configure fails go to the _build/gl/CMakeFile/CMakeTmp/ directory and run make and have a look at the output. If that completes without error try running the compiled executables (there may by some linker-related error, for example).

chaosink commented 9 years ago

➜ CMakeTmp git:(develop) make /usr/local/bin/cmake -H/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp -B/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bin/cmake -E cmake_progress_start /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp/CMakeFiles /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' make -f CMakeFiles/cmTryCompileExec2890329109.dir/build.make CMakeFiles/cmTryCompileExec2890329109.dir/depend make[2]: Entering directory/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' cd /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp/CMakeFiles/cmTryCompileExec2890329109.dir/DependInfo.cmake Scanning dependencies of target cmTryCompileExec2890329109 make[2]: Leaving directory /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' make -f CMakeFiles/cmTryCompileExec2890329109.dir/build.make CMakeFiles/cmTryCompileExec2890329109.dir/build make[2]: Entering directory/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' make[2]: Nothing to be done for CMakeFiles/cmTryCompileExec2890329109.dir/build'. make[2]: Leaving directory/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_report /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp/CMakeFiles 1 [100%] Built target cmTryCompileExec2890329109 make[1]: Leaving directory `/home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_start /home/lin/program/oglplus/_build/gl/CMakeFiles/CMakeTmp/CMakeFiles 0 ➜ CMakeTmp git:(develop) ./cmTryCompileExec2991858867 [1] 18642 segmentation fault ./cmTryCompileExec2991858867 ➜ CMakeTmp git:(develop) ./cmTryCompileExec2890329109 [1] 18650 segmentation fault ./cmTryCompileExec2890329109

matus-chochlik commented 9 years ago

Hmm, could You by any chance try to run the cmTryCompile* files through gdb or valgrind to find out why it segfaults ? It will be probably necessary to re-run configure with CXXFLAGS=-g3.