[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54886] trunk/blender/extern/libmv: Use threaded cost function and jacobian computation
Sergey Sharybin
sergey.vfx at gmail.com
Tue Feb 26 18:52:11 CET 2013
Revision: 54886
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54886
Author: nazgul
Date: 2013-02-26 17:52:10 +0000 (Tue, 26 Feb 2013)
Log Message:
-----------
Use threaded cost function and jacobian computation
Also made it theraded linear solver, seems it makes
sense for iterative schur with inner iterations
enabled.
Use OpenMO's max therads called from bundler code
to detect how many threads to use. Could be changed
in a way that number of threads is passing in options
from blender side in the future.
Also removed redundant V3D definition from compiler's
flags.
Modified Paths:
--------------
trunk/blender/extern/libmv/CMakeLists.txt
trunk/blender/extern/libmv/bundle.sh
trunk/blender/extern/libmv/libmv/simple_pipeline/bundle.cc
trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt
trunk/blender/extern/libmv/third_party/ceres/SConscript
trunk/blender/extern/libmv/third_party/ceres/bundle.sh
Modified: trunk/blender/extern/libmv/CMakeLists.txt
===================================================================
--- trunk/blender/extern/libmv/CMakeLists.txt 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/CMakeLists.txt 2013-02-26 17:52:10 UTC (rev 54886)
@@ -216,7 +216,6 @@
endif()
add_definitions(
- -DV3DLIB_ENABLE_SUITESPARSE
-DGOOGLE_GLOG_DLL_DECL=
)
Modified: trunk/blender/extern/libmv/bundle.sh
===================================================================
--- trunk/blender/extern/libmv/bundle.sh 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/bundle.sh 2013-02-26 17:52:10 UTC (rev 54886)
@@ -195,7 +195,6 @@
endif()
add_definitions(
- -DV3DLIB_ENABLE_SUITESPARSE
-DGOOGLE_GLOG_DLL_DECL=
)
@@ -218,7 +217,6 @@
defs = []
-defs.append('V3DLIB_ENABLE_SUITESPARSE')
defs.append('GOOGLE_GLOG_DLL_DECL=')
src = env.Glob("*.cpp")
Modified: trunk/blender/extern/libmv/libmv/simple_pipeline/bundle.cc
===================================================================
--- trunk/blender/extern/libmv/libmv/simple_pipeline/bundle.cc 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/libmv/simple_pipeline/bundle.cc 2013-02-26 17:52:10 UTC (rev 54886)
@@ -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 @@
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);
Modified: trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt
===================================================================
--- trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/third_party/ceres/CMakeLists.txt 2013-02-26 17:52:10 UTC (rev 54886)
@@ -261,8 +261,15 @@
-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 {"
Modified: trunk/blender/extern/libmv/third_party/ceres/SConscript
===================================================================
--- trunk/blender/extern/libmv/third_party/ceres/SConscript 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/third_party/ceres/SConscript 2013-02-26 17:52:10 UTC (rev 54886)
@@ -23,7 +23,11 @@
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')
Modified: trunk/blender/extern/libmv/third_party/ceres/bundle.sh
===================================================================
--- trunk/blender/extern/libmv/third_party/ceres/bundle.sh 2013-02-26 17:06:05 UTC (rev 54885)
+++ trunk/blender/extern/libmv/third_party/ceres/bundle.sh 2013-02-26 17:52:10 UTC (rev 54886)
@@ -162,8 +162,15 @@
-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,7 +220,11 @@
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')
More information about the Bf-blender-cvs
mailing list