forked from bartvdbraak/blender
Disable fixed-sized specializations for schur solver
As far as i remember Keir, this should be safe for our usages of ceres and it should save noticeable amount of time and used memory when compiling blender with libmv support. Quick tests with tracking went smooth after this.
This commit is contained in:
parent
1f19bacf8e
commit
554107b6a1
36
extern/libmv/third_party/ceres/CMakeLists.txt
vendored
36
extern/libmv/third_party/ceres/CMakeLists.txt
vendored
@ -58,21 +58,6 @@ set(SRC
|
||||
internal/ceres/detect_structure.cc
|
||||
internal/ceres/evaluator.cc
|
||||
internal/ceres/file.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_2.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_2_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_9.cc
|
||||
internal/ceres/generated/schur_eliminator_2_3_d.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_2_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_2.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_3.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_4.cc
|
||||
internal/ceres/generated/schur_eliminator_4_4_d.cc
|
||||
internal/ceres/generated/schur_eliminator_d_d_d.cc
|
||||
internal/ceres/gradient_checking_cost_function.cc
|
||||
internal/ceres/implicit_schur_complement.cc
|
||||
@ -191,6 +176,26 @@ set(SRC
|
||||
internal/ceres/visibility.h
|
||||
)
|
||||
|
||||
#if(FALSE)
|
||||
# list(APPEND SRC
|
||||
# internal/ceres/generated/schur_eliminator_2_2_2.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_2_3.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_2_4.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_2_d.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_3_3.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_3_4.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_3_9.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_3_d.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_4_3.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_4_4.cc
|
||||
# internal/ceres/generated/schur_eliminator_2_4_d.cc
|
||||
# internal/ceres/generated/schur_eliminator_4_4_2.cc
|
||||
# internal/ceres/generated/schur_eliminator_4_4_3.cc
|
||||
# internal/ceres/generated/schur_eliminator_4_4_4.cc
|
||||
# internal/ceres/generated/schur_eliminator_4_4_d.cc
|
||||
# )
|
||||
#endif()
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND INC
|
||||
../glog/src/windows
|
||||
@ -213,6 +218,7 @@ add_definitions(
|
||||
-D"CERES_HASH_NAMESPACE_END=}}"
|
||||
-DCERES_NO_SUITESPARSE
|
||||
-DCERES_DONT_HAVE_PROTOCOL_BUFFERS
|
||||
-DCERES_RESTRICT_SCHUR_SPECIALIZATION
|
||||
)
|
||||
|
||||
blender_add_lib(extern_ceres "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
4
extern/libmv/third_party/ceres/SConscript
vendored
4
extern/libmv/third_party/ceres/SConscript
vendored
@ -13,13 +13,15 @@ src = []
|
||||
defs = []
|
||||
|
||||
src += env.Glob('internal/ceres/*.cc')
|
||||
src += env.Glob('internal/ceres/generated/*.cc')
|
||||
src += env.Glob('internal/ceres/generated/schur_eliminator_d_d_d.cc')
|
||||
#src += env.Glob('internal/ceres/generated/*.cc')
|
||||
|
||||
defs.append('CERES_HAVE_PTHREAD')
|
||||
defs.append('CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {')
|
||||
defs.append('CERES_HASH_NAMESPACE_END=}}')
|
||||
defs.append('CERES_NO_SUITESPARSE')
|
||||
defs.append('CERES_DONT_HAVE_PROTOCOL_BUFFERS')
|
||||
defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION')
|
||||
|
||||
incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags'
|
||||
|
||||
|
20
extern/libmv/third_party/ceres/bundle.sh
vendored
20
extern/libmv/third_party/ceres/bundle.sh
vendored
@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
if false; then
|
||||
if [ "x$1" = "x--i-really-know-what-im-doing" ] ; then
|
||||
echo Proceeding as requested by command line ...
|
||||
else
|
||||
@ -36,7 +37,10 @@ done
|
||||
|
||||
rm -rf $tmp
|
||||
|
||||
sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | sort -d`
|
||||
fi
|
||||
|
||||
sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | grep -v -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d`
|
||||
generated_sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//#\t\t/' | grep -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d`
|
||||
headers=`find ./include ./internal -type f -iname '*.h' | sed -r 's/^\.\//\t/' | sort -d`
|
||||
|
||||
src_dir=`find ./internal -type f -iname '*.cc' -exec dirname {} \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {} \; | sed -r 's/^\.\//\t/' | sort -d | uniq`
|
||||
@ -48,6 +52,10 @@ for x in $src_dir $src_third_dir; do
|
||||
continue;
|
||||
fi
|
||||
|
||||
if test `echo "$x" | grep -c generated` -eq 1; then
|
||||
continue;
|
||||
fi
|
||||
|
||||
if stat $x/*.cpp > /dev/null 2>&1; then
|
||||
t="src += env.Glob('`echo $x'/*.cpp'`')"
|
||||
fi
|
||||
@ -121,6 +129,12 @@ ${sources}
|
||||
${headers}
|
||||
)
|
||||
|
||||
#if(FALSE)
|
||||
# list(APPEND SRC
|
||||
${generated_sources}
|
||||
# )
|
||||
#endif()
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND INC
|
||||
../glog/src/windows
|
||||
@ -143,6 +157,7 @@ add_definitions(
|
||||
-D"CERES_HASH_NAMESPACE_END=}}"
|
||||
-DCERES_NO_SUITESPARSE
|
||||
-DCERES_DONT_HAVE_PROTOCOL_BUFFERS
|
||||
-DCERES_RESTRICT_SCHUR_SPECIALIZATION
|
||||
)
|
||||
|
||||
blender_add_lib(extern_ceres "\${SRC}" "\${INC}" "\${INC_SYS}")
|
||||
@ -164,12 +179,15 @@ src = []
|
||||
defs = []
|
||||
|
||||
$src
|
||||
src += env.Glob('internal/ceres/generated/schur_eliminator_d_d_d.cc')
|
||||
#src += env.Glob('internal/ceres/generated/*.cc')
|
||||
|
||||
defs.append('CERES_HAVE_PTHREAD')
|
||||
defs.append('CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {')
|
||||
defs.append('CERES_HASH_NAMESPACE_END=}}')
|
||||
defs.append('CERES_NO_SUITESPARSE')
|
||||
defs.append('CERES_DONT_HAVE_PROTOCOL_BUFFERS')
|
||||
defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION')
|
||||
|
||||
incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user