diff options
-rw-r--r-- | extern/libmv/CMakeLists.txt | 1 | ||||
-rwxr-xr-x | extern/libmv/bundle.sh | 2 | ||||
-rw-r--r-- | extern/libmv/libmv/simple_pipeline/bundle.cc | 9 | ||||
-rw-r--r-- | extern/libmv/third_party/ceres/CMakeLists.txt | 7 | ||||
-rw-r--r-- | extern/libmv/third_party/ceres/SConscript | 4 | ||||
-rwxr-xr-x | extern/libmv/third_party/ceres/bundle.sh | 11 |
6 files changed, 31 insertions, 3 deletions
diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt index 200e20de91b..1c289cd2778 100644 --- a/extern/libmv/CMakeLists.txt +++ b/extern/libmv/CMakeLists.txt @@ -216,7 +216,6 @@ else() endif() add_definitions( - -DV3DLIB_ENABLE_SUITESPARSE -DGOOGLE_GLOG_DLL_DECL= ) diff --git a/extern/libmv/bundle.sh b/extern/libmv/bundle.sh index 6b26bd95157..21d0308268a 100755 --- a/extern/libmv/bundle.sh +++ b/extern/libmv/bundle.sh @@ -195,7 +195,6 @@ ${third_glog_headers} endif() add_definitions( - -DV3DLIB_ENABLE_SUITESPARSE -DGOOGLE_GLOG_DLL_DECL= ) @@ -218,7 +217,6 @@ Import('env') defs = [] -defs.append('V3DLIB_ENABLE_SUITESPARSE') defs.append('GOOGLE_GLOG_DLL_DECL=') src = env.Glob("*.cpp") diff --git a/extern/libmv/libmv/simple_pipeline/bundle.cc b/extern/libmv/libmv/simple_pipeline/bundle.cc index 7502ca389c4..c29eb3d5df6 100644 --- a/extern/libmv/libmv/simple_pipeline/bundle.cc +++ b/extern/libmv/libmv/simple_pipeline/bundle.cc @@ -33,6 +33,10 @@ #include "libmv/simple_pipeline/reconstruction.h" #include "libmv/simple_pipeline/tracks.h" +#ifdef _OPENMP +# include <omp.h> +#endif + namespace libmv { // The intrinsics need to get combined into a single parameter block; use these @@ -332,6 +336,11 @@ void EuclideanBundleCommonIntrinsics(const Tracks &tracks, options.use_inner_iterations = true; options.max_num_iterations = 100; +#ifdef _OPENMP + options.num_threads = omp_get_max_threads(); + options.num_linear_solver_threads = omp_get_max_threads(); +#endif + ceres::Solver::Summary summary; ceres::Solve(options, &problem, &summary); diff --git a/extern/libmv/third_party/ceres/CMakeLists.txt b/extern/libmv/third_party/ceres/CMakeLists.txt index 5e58c2964ce..b71fe1d5cdb 100644 --- a/extern/libmv/third_party/ceres/CMakeLists.txt +++ b/extern/libmv/third_party/ceres/CMakeLists.txt @@ -261,8 +261,15 @@ add_definitions( -DCERES_NO_CXSPARSE -DCERES_NO_PROTOCOL_BUFFERS -DCERES_RESTRICT_SCHUR_SPECIALIZATION + -DCERES_HAVE_RWLOCK ) +if(WITH_OPENMP) + add_definitions( + -DCERES_USE_OPENMP + ) +endif() + if(MSVC10) add_definitions( -D"CERES_HASH_NAMESPACE_START=namespace std {" diff --git a/extern/libmv/third_party/ceres/SConscript b/extern/libmv/third_party/ceres/SConscript index 6d0d2cd5c40..6e490cfd5cf 100644 --- a/extern/libmv/third_party/ceres/SConscript +++ b/extern/libmv/third_party/ceres/SConscript @@ -23,6 +23,10 @@ defs.append('CERES_NO_SUITESPARSE') defs.append('CERES_NO_CXSPARSE') defs.append('CERES_NO_PROTOCOL_BUFFERS') defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION') +defs.append('CERES_HAVE_RWLOCK') + +if env['WITH_BF_OPENMP']: + defs.append('CERES_USE_OPENMP') if 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']: defs.append('CERES_NO_TR1') diff --git a/extern/libmv/third_party/ceres/bundle.sh b/extern/libmv/third_party/ceres/bundle.sh index b2c8330ec3e..65af263f7c4 100755 --- a/extern/libmv/third_party/ceres/bundle.sh +++ b/extern/libmv/third_party/ceres/bundle.sh @@ -162,8 +162,15 @@ add_definitions( -DCERES_NO_CXSPARSE -DCERES_NO_PROTOCOL_BUFFERS -DCERES_RESTRICT_SCHUR_SPECIALIZATION + -DCERES_HAVE_RWLOCK ) +if(WITH_OPENMP) + add_definitions( + -DCERES_USE_OPENMP + ) +endif() + if(MSVC10) add_definitions( -D"CERES_HASH_NAMESPACE_START=namespace std {" @@ -213,6 +220,10 @@ defs.append('CERES_NO_SUITESPARSE') defs.append('CERES_NO_CXSPARSE') defs.append('CERES_NO_PROTOCOL_BUFFERS') defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION') +defs.append('CERES_HAVE_RWLOCK') + +if env['WITH_BF_OPENMP']: + defs.append('CERES_USE_OPENMP') if 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']: defs.append('CERES_NO_TR1') |