Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extern
diff options
context:
space:
mode:
authorJürgen Herrmann <shadowrom@me.com>2013-05-15 21:00:53 +0400
committerJürgen Herrmann <shadowrom@me.com>2013-05-15 21:00:53 +0400
commit8a89d27b87fe24bc14cde1388f843a8bacf14a6e (patch)
tree32712db12168ba53bab91f99116e7dc78e8cc722 /extern
parent65dcc6ad4f11097eeb601fcd70b3db52ed482f6f (diff)
Libmv internal compiler error workaround for VC2012.
Will be reverted as soon as the x64 compiler is fixed. For now it shouldn't have an impact on tracking performance. My test have shown no significant speed difference to official VC2008 build of 2.67.
Diffstat (limited to 'extern')
-rw-r--r--extern/libmv/libmv/tracking/esm_region_tracker.cc7
-rw-r--r--extern/libmv/libmv/tracking/lmicklt_region_tracker.cc7
2 files changed, 14 insertions, 0 deletions
diff --git a/extern/libmv/libmv/tracking/esm_region_tracker.cc b/extern/libmv/libmv/tracking/esm_region_tracker.cc
index 1e44012e208..a0c2e4be36e 100644
--- a/extern/libmv/libmv/tracking/esm_region_tracker.cc
+++ b/extern/libmv/libmv/tracking/esm_region_tracker.cc
@@ -61,6 +61,13 @@ static bool RegionIsInBounds(const FloatImage &image1,
return true;
}
+/* Ugly but necessary fix for compilation on VS2012
+/* this file causes an Internal Compiler Error */
+// TODO: check regularly if ICE is fixed by MS!
+#if (_MSC_VER >= 1700 && _WIN64)
+#pragma optimize("s", on)
+#endif
+
// This is implemented from "Lukas and Kanade 20 years on: Part 1. Page 42,
// figure 14: the Levenberg-Marquardt-Inverse Compositional Algorithm".
bool EsmRegionTracker::Track(const FloatImage &image1,
diff --git a/extern/libmv/libmv/tracking/lmicklt_region_tracker.cc b/extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
index 9e7446c7d08..c9ad364d1d7 100644
--- a/extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
+++ b/extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
@@ -52,6 +52,13 @@ static bool RegionIsInBounds(const FloatImage &image1,
return true;
}
+/* Ugly but necessary fix for compilation on VS2012
+/* this file causes an Internal Compiler Error */
+// TODO: check regularly if ICE is fixed by MS!
+#if (_MSC_VER >= 1700 && _WIN64)
+#pragma optimize("s", on)
+#endif
+
// Estimate "reasonable" error by computing autocorrelation for a small shift.
static double EstimateReasonableError(const FloatImage &image,
double x, double y,