Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Sudden Rendering Flaws #254

Closed
iceblu3710 opened this Issue · 39 comments

5 participants

@iceblu3710

I was using OpenSCAD yesterday and it worked flawlessly but today none of the commands like difference have an effect but only visually on the top half of the screen?!

Picture to make it clear:
openscad_issue

What the heck happened?

@donbright
Collaborator

Did the computer get any updates to any drivers? Did the OS do updates overnight? Was there a change of video cards? Was there a change in the BIOS between onboard video and an addon card?

Did you reboot and perhaps only then the driver updates went into effect only then? Was there a kernel update?

Can you please post the contents of Help/Library Info?

Other question: If you move the window around, or make it non-maximized, does it make a difference?

Thanks for the bug report

@iceblu3710

Whoa.....

I moved the window around and the spot where the difference in the picture was changed, I took it to my second monitor and back and the error is gone!

I have had no updates (their disables as they love do do this exact thing) and the only thing I have changed since yesterday in install npm and some nodeJS packages and I added a remote user for XRDP. No restarts or logouts.

I have no Help/Library? Heres the Help/OpenGL Info:

GLEW version 1.6.0
OpenGL version GeForce 9500 GT/PCIe/SSE2
NVIDIA Corporation (3.3.0 NVIDIA 304.48)

RGBA(8880), depth(24), stencil(8)
Extensions:
GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth 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_ES2_compatibility GL_ARB_explicit_attrib_location 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_get_program_binary GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow 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_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query 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_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add 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_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access 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_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 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_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 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_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_texture_type_2_10_10_10_REV GL_EXT_timer_query GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_alpha_test GL_NV_blend_minmax GL_NV_blend_square GL_NV_complex_primitives GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_ES1_1_compatibility GL_NV_explicit_multisample GL_NV_fbo_color_attachments GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragdepth GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_buffer_load GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_lod_clamp GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_OES_compressed_paletted_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_point_size_array GL_OES_point_sprite GL_OES_rgb8_rgba8 GL_OES_read_format GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_vertex_half_float GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum

@kintel
Owner

You have an old version of OpenSCAD - could you install the latest release (2013.01) and try again?

@iceblu3710

On the first opening of 2013.01 the problem was exactly like in the screenshot above but when I double click the task bar and the window goes out of full screen the problem goes away.

I opened the program 20 times and it happened twice and the simple window resize fixed it. I am running the Nvidia 304 experimental graphics drivers so It might be an openGL flaw on their end as I have never had this problem before. (I upgraded for Steam)

@donbright
Collaborator

Would you be interested in compiling and running the regression test suite? There is a small chance it might help find the bug. The tests can be run as follows:

         git clone https://github.com/openscad/openscad.git
         cd openscad && git submodule update --init
         cd tests && mkdir build && cd build
         cmake .. && make && ctest -C All

more details are in doc/testing.txt

@iceblu3710
#> cmake ..

-- Boost includes found: /usr/include
-- Boost libraries found:
--   /usr/lib/libboost_thread-mt.so
--   /usr/lib/libboost_program_options-mt.so
--   /usr/lib/libboost_filesystem-mt.so
--   /usr/lib/libboost_system-mt.so
--   /usr/lib/libboost_regex-mt.so
-- Eigen found in /usr/include/eigen3
CMake Error at FindGLEW.cmake:54 (include):
  include could not find load file:

    FindPkgConfig.cmake
Call Stack (most recent call first):
  CMakeLists.txt:312 (find_package)


CMake Error at FindGLEW.cmake:66 (message):
  GLEW not found
Call Stack (most recent call first):
  CMakeLists.txt:312 (find_package)


-- Configuring incomplete, errors occurred!

I go have libglew1.6 libglew-dev and libglewmx1.6 installed and /usr/include/GL/glew.h exists

@kintel
Owner

It kind of looks like it doesn't find FindPkgConfig.cmake. Are you sure your cmake installation is recent?
Which distribution is this btw.?

@donbright
Collaborator

sorry about that, it's my fault, i just introduced the bug with the recent fixglew patch

i have pushed a fix to Master just now.

@iceblu3710
[  1%] [FLEX][OpenSCADlexer] Building scanner with flex 2.5.35
[  2%] [BISON][OpenSCADparser] Building parser with bison 2.5
Scanning dependencies of target tests-core
[  3%] Building CXX object CMakeFiles/tests-core.dir/tests-common.cc.o
[  4%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/parsersettings.cc.o
[  5%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/mathc99.cc.o
[  6%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/linalg.cc.o
[  7%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/handle_dep.cc.o
/home/uminded/Downloads/openscad/src/handle_dep.cc: In function ‘void handle_dep(const string&)’:
/home/uminded/Downloads/openscad/src/handle_dep.cc:27:28: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
[  8%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/value.cc.o
[  9%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/expr.cc.o
[ 10%] Building CXX object CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/func.cc.o
/home/uminded/Downloads/openscad/src/func.cc:46:54: fatal error: boost/random/uniform_real_distribution.hpp: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/tests-core.dir/home/uminded/Downloads/openscad/src/func.cc.o] Error 1
make[1]: *** [CMakeFiles/tests-core.dir/all] Error 2
make: *** [all] Error 2

I did :

git clone https://github.com/openscad/openscad.git
cd openscad 
git submodule update --init
/scripts/uni-get-dependencies.sh
./scripts/check-dependencies.sh
cd tests
mkdir build
cd build
cmake ..
make

dependencies:

depname     minimum     found       OKness      
qt4         4.4         4.8.1       OK          
cgal        3.6         3.9         OK          
gmp         5.0.0       5.0.2       OK          
mpfr        3.0         3.1.0       OK          
boost       1.35        1.46.1      OK          
opencsg     1.3.2       1.3.2       OK          
glew        1.5.4       1.5.4       OK          
eigen       2.0.13      2.0.17      OK          
gcc         4.2         4.6.3       OK          
bison       2.4         2.5         OK          
flex        2.5.35      2.5.35      OK          
make        3           3.81        OK  

The problem is fatal error: boost/random/uniform_real_distribution.hpp: No such file or directory I have checked the sourceforge releases for boost 1.35 and 1.46 and I have boost/random/uniform_real.hpp but nothing is labled distribution. Is their a separate boost compile step that is needed to generate this header?

@iceblu3710

And for the guy that asked distribution I am on Ubuntu 12.04 LTS 64bit, fully updated and 3.2.0-36-generic #57-Ubuntu SMP Tue Jan 8 21:44:52 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

@kintel
Owner

Turns out uniform_real_distribution.hpp requires boost >= 1.47
This requirement was added after the 2013.01 release though.

@iceblu3710

Well we are solving bugs all over the place, glad I could help. Still problems getting the test suite to work though. I had to manually install boost 1.52 as the Ubuntu reps only have 1.48 and uniform_real_distribution.hpp is NOT in that version.

depname     minimum     found       OKness      
qt4         4.4         4.8.1       OK          
cgal        3.6         3.9         OK          
gmp         5.0.0       5.0.2       OK          
mpfr        3.0         3.1.0       OK          
boost       1.35        1.52        OK          
opencsg     1.3.2       1.3.2       OK          
glew        1.5.4       1.5.4       OK          
eigen       2.0.13      2.0.17      OK          
gcc         4.2         4.6.3       OK          
bison       2.4         2.5         OK          
flex        2.5.35      2.5.35      OK          
make        3           3.81        OK 

#>Make

[ 58%] Built target tests-cgal
Scanning dependencies of target cgalcachetest
[ 59%] Building CXX object CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o
[ 60%] Building CXX object CMakeFiles/cgalcachetest.dir/bboxhelp.cc.o
make[2]: *** No rule to make target `/usr/lib/libboost_filesystem-mt.so', needed by `cgalcachetest'.  Stop.
make[1]: *** [CMakeFiles/cgalcachetest.dir/all] Error 2
make: *** [all] Error 2
@kintel
Owner

hm, could you try to remove the CMakeCache.txt, rerun cmake and make again?
There should be some output related to Boost while running cmake, which could be helpful.

@iceblu3710

#> cmake ..

-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- 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
-- Boost version: 1.52.0
-- Found the following Boost libraries:
--   thread
--   program_options
--   filesystem
--   system
--   regex
-- Boost includes found: /usr/local/include
-- Boost libraries found:
--   /usr/lib/libboost_thread-mt.so
--   /usr/lib/libboost_program_options-mt.so
--   /usr/local/lib/libboost_filesystem.so
--   /usr/local/lib/libboost_system.so
--   /usr/local/lib/libboost_regex.so
-- 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 OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt4: /usr/bin/qmake (found version "4.8.1")
-- Eigen found in /usr/include/eigen3
-- OPENCSG_DIR: 
-- OpenCSG include found in /usr/include
-- OpenCSG library found in /usr/lib/libopencsg.so
-- GLEW include: /usr/include
-- GLEW library: /usr/lib/x86_64-linux-gnu/libGLEW.so
-- Found BISON: /usr/bin/bison (found version "2.5")
-- Found FLEX: /usr/bin/flex (found version "2.5.35")
-- CGAL_DIR: 
-- CGAL config found in /usr/lib/CGAL/UseCGAL.cmake
-- CGAL include found in /usr/include
-- CGAL libraries found in /usr/lib
-- Found ImageMagick: TRUE 
-- ImageMagick convert executable found: /usr/bin/convert
-- ImageMagick version less than 6.5.9.4, cannot use -morphology comparison
-- ImageMagick Using older image comparison method
-- ImageMagick: OpenMP bug workaround - setting MAGICK_THREAD_LIMIT=1
-- Offscreen OpenGL Context - using Unix GLX
-- Found PythonInterp: /usr/bin/python (found version "2.7.3")
-- creating CTestCustom.cmake
Available test configurations: Heavy;Examples;Default;All
-- Configuring done
-- Generating done
-- Build files have been written to: /home/uminded/Downloads/openscad/tests/build

#> make

[ 60%] Building CXX object CMakeFiles/cgalcachetest.dir/bboxhelp.cc.o
Linking CXX executable cgalcachetest
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o: In function `validation_error':
/usr/local/include/boost/program_options/errors.hpp:372: undefined reference to `boost::program_options::validation_error::get_template(boost::program_options::validation_error::kind_t)'
/usr/local/include/boost/program_options/errors.hpp:372: undefined reference to `boost::program_options::error_with_option_name::error_with_option_name(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o: In function `~error_with_option_name':
/usr/local/include/boost/program_options/errors.hpp:118: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/include/boost/program_options/errors.hpp:118: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/include/boost/program_options/errors.hpp:118: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/include/boost/program_options/errors.hpp:118: undefined reference to `vtable for boost::program_options::error_with_option_name'
/usr/local/include/boost/program_options/errors.hpp:118: undefined reference to `vtable for boost::program_options::error_with_option_name'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o: In function `boost::program_options::basic_command_line_parser<char>::run()':
/usr/local/include/boost/program_options/detail/parsers.hpp:107: undefined reference to `boost::program_options::detail::cmdline::get_canonical_option_prefix()'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o: In function `error_with_option_name':
/usr/local/include/boost/program_options/errors.hpp:88: undefined reference to `vtable for boost::program_options::error_with_option_name'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost15program_options16validation_errorE[vtable for boost::program_options::validation_error]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost15program_options16validation_errorE[vtable for boost::program_options::validation_error]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[vtable for boost::exception_detail::error_info_injector<boost::program_options::validation_error>]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[vtable for boost::exception_detail::error_info_injector<boost::program_options::validation_error>]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::validation_error> >]+0x28): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::validation_error> >]+0x38): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[vtable for boost::program_options::invalid_option_value]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[vtable for boost::program_options::invalid_option_value]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[vtable for boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value>]+0x20): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[vtable for boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value>]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> >]+0x28): undefined reference to `boost::program_options::error_with_option_name::what() const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::program_options::invalid_option_value> >]+0x38): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o:(.rodata._ZTIN5boost15program_options16validation_errorE[typeinfo for boost::program_options::validation_error]+0x10): undefined reference to `typeinfo for boost::program_options::error_with_option_name'
collect2: ld returned 1 exit status
make[2]: *** [cgalcachetest] Error 1
make[1]: *** [CMakeFiles/cgalcachetest.dir/all] Error 2
make: *** [all] Error 2
@kintel
Owner

Looks like your boost installation is slightly messed up. From your output it looks like it finds some parts of boost in one place and some other part in another place (/usr/lib vs. /usr/local/lib). The cmake FindBoost doesn't recognize this as a potential problem.

-- Boost includes found: /usr/local/include
-- Boost libraries found:
--   /usr/lib/libboost_thread-mt.so
--   /usr/lib/libboost_program_options-mt.so
--   /usr/local/lib/libboost_filesystem.so
--   /usr/local/lib/libboost_system.so
--   /usr/local/lib/libboost_regex.so
@kintel
Owner

Also, according to the boost release notes, 1.47 should have uniform_real_distribution.hpp:
http://www.boost.org/users/history/version_1_47_0.html

You not finding it in 1.58 is likely to be a result of having multiple versions in different places.

Messed up boost installations appear to be a recurring issue - perhaps some sanity checking in FindBoost would be in place.

@iceblu3710

I have had nothing but horrible issues with boost when installed via apt as I find programs check the name and not the version and you can get parts from two versions at a time. For example package libboost-dev is listed as latest version 1.48.0.2 but when you try to install it you get a dependency error that it can not install libboost1.46-dev also the following boost libraries are impossible to remove as they come installed for the Unity GUI:

libboost-program-options1.46.1
libboost-filesystem1.46.1
libboostpython1.46.1
libboost-thread1.46.1
libboost-system1.46.1

so as you can see right from the git go their in two different locations. Any idea how to totally purge the system of boost libraries so I can install the single 1.52 version?

@kintel
Owner

Perhaps it would be easier to add backwards compatible code for boost 1.46.

In the meantime, could you try using the actual 2013.01 sources instead of git master?

@donbright
Collaborator

What about trying the custom lib build ?

   # from a clean fresh bash shell
    source scripts/setenv-unibuild.sh
    ./scripts/uni-build-dependencies.sh

This will build and install a working boost version to $HOME/openscad_deps and will not interfere with nor depend on the system libs.

I can work on sanity checks and also on backporting random .... wouldn't be the first time we had to backport boost..

@donbright
Collaborator

check-dependencies.sh should have printed something like this:

  Warning: you have a copy of boost under /usr/local/include
  Please verify these local copies don't conflict with the system

after detecting /usr/local/include/boost (thats what it does on my ubuntu system)

@iceblu3710

check-dependencies.sh did not print anything besides OK for everything every time I ran it.
EDIT: 1013.1 version does print a warning, the git master does not

I am building a custom lib build and see if that helps things out.

@iceblu3710

YAY! I finally won. I scraped through my system removed old programs and unneeded dependencies. Then removed Unity and a few programs that had a death grip on boost. Installed boost 1.52 to --prefix=/usr/local. compiled cgal 4.1 to --prefix=/usr/local.

check-dependencies.sh reports an issue about boost and cgal being in /usr/local but I have checked and their only in those directories and the test suite finally compiled.

SYSINFO
OpenSCAD Version: test
Compiled by: GCC 4.6.3
Compile date: Jan 29 2013
Boost version: 1_52
Eigen version: 3.0.5
CGAL version: 4.1
OpenCSG version: OpenCSG 1.3.2
GLEW version: 1.6.0
GL Renderer: GeForce 9500 GT/PCIe/SSE2
GL Vendor: NVIDIA Corporation
OpenGL Version: 3.3.0 NVIDIA 304.48
GL Extensions: 
GL_ARB_framebuffer_object: yes
GL_EXT_framebuffer_object: yes
GL_EXT_packed_depth_stencil: yes
FBO: RGBA(8888), depth(24), stencil(8)
GL context creator: GLX
PNG generator: lodepng
GLX version: 1.4
OS info: Linux 3.2.0-36-generic #57-Ubuntu SMP Tue Jan 8 21:44:52 UTC 2013
Machine: x86_64
Git branch:  from origin 
Git upstream: 
Image comparison: ImageMagick
STARTDATE: Jan 29 22:39 CST
ENDDATE: Jan 29 22:49 CST
WIKI_ROOTPATH: OpenSCAD
SYSID: linux_x86_64_geforce-9500-gt_gviw
NUMTESTS: 470
NUMPASSED: 469
PERCENTPASSED: 99
throwntogethertest_polygon-tests
Expected    Actual

385/470 Testing: throwntogethertest_polygon-tests
385/470 Test: throwntogethertest_polygon-tests
Command: "/usr/bin/python" "/home/uminded/Downloads/openscad-2013.01/tests/test_cmdline_tool.py" "--comparator=" "-c" "/usr/bin/convert" "-s" "png" "/home/uminded/Downloads/openscad-2013.01/tests/build/throwntogethertest" "/home/uminded/Downloads/openscad-2013.01/tests/../testdata/scad/features/polygon-tests.scad"
Directory: /home/uminded/Downloads/openscad-2013.01/tests/build
"throwntogethertest_polygon-tests" start time: Jan 29 22:48 CST
Output:
----------------------------------------------------------
Error output: ERROR: Unable to convert point at index 0 to a vec2 of numbers
ERROR: Unable to convert point at index 0 to a vec2 of numbers
WARNING: Duplicate vertex found during Tessellation. Render may be incorrect.
Normalized CSG tree has 12 elements

ImageMagick image comparison: /usr/bin/convert -alpha Off -compose difference -composite -threshold 10% -morphology Erode Square -format %[fx:w*h*mean] info:
 expected image: /home/uminded/Downloads/openscad-2013.01/tests/regression/throwntogethertest/polygon-tests-expected.png

 actual image:  /home/uminded/Downloads/openscad-2013.01/tests/build/throwntogethertest-output/polygon-tests-actual.png
54  pixel errors
Imagemagick return 0 output: 54


Test time =   0.56 sec
----------------------------------------------------------
Test Failed.
"throwntogethertest_polygon-tests" end time: Jan 29 22:48 CST
"throwntogethertest_polygon-tests" time elapsed: 00:00:00
@kintel
Owner

Thanks for not giving up:)
The failing test is due to issue #182.

This means that it all works when using accelerated off-screen OpenGL contexts, so the problems you're having is related to on-screen OpenGL.

Two questions:
o Are you using the latest stable nVidia drivers?
o Is this problem visible only when rendering using F5 (OpenCSG) , or also with F6 (CGAL) ?

I'm not sure how to debug this further - any ideas Don?

@iceblu3710

1) I am running Nvidia 304 Experimental graphics drivers. The steam client requires >=304 to run which is unfortunate.
2) When I use F6 their are no rendering issues but as soon as I hit F5 the problem in the screenshot reappears.

@donbright
Collaborator

IceBlu: thank you for pushing through, sorry for the bugs. . .

Marius: One idea would be to try OpenSCAD under a different OS and see what happens. If you dual boot Windows, maybe try OpenSCAD for Windows and see if it happens there. Or if you have a different linux distro or even BSD, try it on them.

Another idea is to try older Nvidia drivers on the same hardware, and see if they work or if they also have the bug. That could tell us if its a specific problem with the Nvidia drivers.

Last idea ---- if you really think there might be an issue of on-screen vs off-screen, we could enable an 'on screen' version running of the tests.... there is actually only one line of code difference between offscreen and onscreen, for both Windows and Linux.... its simply the 'mapping' of the X window to a display if i remember correctly. of course we'd need to work on the Cmake file to enable this somehow, .... do you think it should be a test that is run 'all the time' as a normal course of business, or should it be a special mode of testing only available by passing a flag to CMAKE?

Last Last Last idea --- 32 bit vs 64 bit? ? ? ? what about non-x86 machines (Nvidia makes ARM stuff right?)

Either way it is a lot of work to track down these bugs. . . .

@nophead
@kintel
Owner

Another idea: Run a stand-alone OpenCSG example to eliminate the possibility that OpenSCAD itself is doing something wrong.
This has been on the wishlist for a while: Bundle an OpenCSG demo executable with OpenSCAD to be able to have people run it and report back issues.

@kintel
Owner

PS! Talking about ARM: CGAL apparently doesn't work on ARM: #259

@iceblu3710

https://www.dropbox.com/s/y8n6o3xkgn25fpi/OpenSCAD_Feb012013_Test.zip

I purged all Nvidia related drivers and then rebuilt the 304 from source and now their are a few more issues. I don't know what all you wanted out of the testing folder so I zipped the whole thing up.

Just to note, while their are these errors the program is still totally usable. If the render issue comes up I just minimize and maximize the screen and its good until I open a new instance.

@donbright
Collaborator

Thanks for the upload. I wish we had a way to automatically upload html test results somewhere but we dont have a hosting site that can do that (that I know of...).

For the benefit of future bug checking, here are some typical images from iceblu's Test.

the boxes should have holes in the tops, and the 'cone' thing should have a hole in the side face. Of cousre the sphere and 'sphere cage' should not have that weird thing halfway down the image.

OpenSCAD_linux_x86_64_geforce-9500-gt_gviw__opencsgtest-output_difference-tests-actual
OpenSCAD_linux_x86_64_geforce-9500-gt_gviw__opencsgtest-output_example001-actual
OpenSCAD_linux_x86_64_geforce-9500-gt_gviw__opencsgtest-output_example002-actual
OpenSCAD_linux_x86_64_geforce-9500-gt_gviw__opencsgtest-output_example004-actual

@kintel
Owner

iceblu: I'm not sure if this was actually suggested yet, but did you try to turn on "Force Goldfeather" in Preferences->Advanced and see how that changes your behavior?

@elalish

For what it's worth, I've seen this behavior as well occasionally, using the current release as well as the one before, on Mac OS 10.6 through 10.8 (it seems to occur with about the same frequency regardless of OS or OpenSCAD version). It's only for F5, not F6. Lately I noticed that if I had a good F5 render, then I closed the lid of my macbook pro, when I opened it again, it would have this problem, without touching anything. Pressing F5 again, and the same problem persists until I exit OpenSCAD.

@kintel
Owner

elalish: Could you provide some info about your hardware? I've seen similar, but not really comparable, things on MacBook Air's with Intel GPUs, but every new combination would be good to know about, in case I have access to a machine where the bug is reproducible.

@elalish

It's a mid 2009 15" MacBook Pro, 2.66 GHz Intel Core 2 Duo, 8 GB 1067 MHz DDR3, NVIDIA GeForce 9400M 256 MB

@kintel
Owner

This was reported already in 2011 on the same GPU as yours: http://rocklinux.net/pipermail/openscad/2011-July/001206.html

For those of you who experience this: It would be interesting to see if this affects other OpenCSG applications, e.g. run the standard OpenCSG example.

Again, this is a reminder that it would make sense to ship an OpenCSG test program with OpenSCAD to facilitate testing.

@iceblu3710

Forgot to post this but "Force Goldfeather" solves all the rendering issues with all my driver versions. I do notice however that it requires more power to render with this option on. I have no measurements but rotating is not as smooth on large projects.

A nice feature would be a key combo that turns on "thrown together" so you can rotate these large assemblies such as prusia's i3 model which consists of around 12 imported .scad files and some .stl imports as well.

@kintel
Owner

Yes, "Force Goldfeather" will, in most cases, slow down the rendering a bit.

I believe F12 will turn on Thrown Together mode.

@kintel kintel added the Rendering label
@kintel
Owner

Is this still an issue, or can we close this blaming old GPUs with bad drivers?

@iceblu3710

Closed. I'm on Ubuntu 14.04 and the same hardware without issues.

@iceblu3710 iceblu3710 closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.