diff options
author | Jürgen Herrmann <shadowrom@me.com> | 2013-05-15 21:00:53 +0400 |
---|---|---|
committer | Jürgen Herrmann <shadowrom@me.com> | 2013-05-15 21:00:53 +0400 |
commit | 8a89d27b87fe24bc14cde1388f843a8bacf14a6e (patch) | |
tree | 32712db12168ba53bab91f99116e7dc78e8cc722 /extern | |
parent | 65dcc6ad4f11097eeb601fcd70b3db52ed482f6f (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.cc | 7 | ||||
-rw-r--r-- | extern/libmv/libmv/tracking/lmicklt_region_tracker.cc | 7 |
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, |