[Bf-committers] LIBMV: Workaround for Internal Compiler error on VS2012

Jürgen Herrmann shadowrom at me.com
Fri May 17 07:56:45 CEST 2013


Hi Keir,

why is it so hard to remove these sources if they are unused?

/Jürgen


Am 15. Mai 2013 um 00:04 schrieb Keir Mierle <mierle at gmail.com>:

> These trackers are all obsolete now and replaced by the new planar tracker
> (region_tracker.cc). Deleting all that code is not so simple though. The VS
> patch suggested should not impact Blender's motion tracking at all; I see
> no problem committing it.
>
>
> On Tue, May 14, 2013 at 2:21 PM, Brecht Van Lommel <
> brechtvanlommel at pandora.be> wrote:
>
> > Probably Sergey can judge this best, I don't know how important these
> > files are to performance. Maybe there's a specific function or line of
> > code that is causing the issue that we can tweak as well.
> >
> > On Tue, May 14, 2013 at 8:42 PM, Jürgen Herrmann <shadowrom at me.com> wrote:
> > > Hi again,
> > >
> > > still trying to fix this nasty ICE on VS 2012 64bit and I think I found
> > a way to work around this issue without losing too much speed.
> > >
> > > Instead of turning optimizations off globally for these 2 files I found
> > a way to reduce optimization level slightly by doing this:
> > >
> > > ------------PATCH----------------
> > > Index: extern/libmv/libmv/tracking/esm_region_tracker.cc
> > > ===================================================================
> > > --- extern/libmv/libmv/tracking/esm_region_tracker.cc (revision 56800)
> > > +++ extern/libmv/libmv/tracking/esm_region_tracker.cc (working copy)
> > > @@ -61,6 +61,13 @@
> > > 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("sp", 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,
> > > Index: extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
> > > ===================================================================
> > > --- extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
> > (revision 56800)
> > > +++ extern/libmv/libmv/tracking/lmicklt_region_tracker.cc (working
> > copy)
> > > @@ -52,6 +52,13 @@
> > > 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("sp", on)
> > > +#endif
> > > +
> > > // Estimate "reasonable" error by computing autocorrelation for a small
> > shift.
> > > static double EstimateReasonableError(const FloatImage &image,
> > > double x, double y,
> > > ------------PATCH----------------
> > >
> > >
> > > -----Ursprüngliche Nachricht-----
> > > Von: bf-committers-bounces at blender.org [mailto:
> > bf-committers-bounces at blender.org] Im Auftrag von Jürgen Herrmann
> > > Gesendet: Dienstag, 14. Mai 2013 16:05
> > > An: bf-committers at blender.org
> > > Betreff: [Bf-committers] [Proposal] LIBMV: Workaround for Internal
> > Compiler error on VS2012
> > >
> > > Hey ;)
> > >
> > > we have a problem, when compiling extern_libmv on VS2012 x64 the
> > compiler crashes.
> > > It seems that this inlining problem is known to MS and they are working
> > on a fix.
> > > This does not happen on x86 builds though.
> > > I could not find a real fix for this yet.
> > > So I'd like to commit the following workaround patch, any suggestions or
> > comments?
> > >
> > >
> > > ---------------SNIP--------------
> > > Index: extern/libmv/libmv/tracking/esm_region_tracker.cc
> > > ===================================================================
> > > --- extern/libmv/libmv/tracking/esm_region_tracker.cc (revision 56794)
> > > +++ extern/libmv/libmv/tracking/esm_region_tracker.cc (working copy)
> > > @@ -32,7 +32,12 @@
> > > #include "libmv/tracking/track_region.h"
> > >
> > > namespace libmv {
> > > -
> > > +/* 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("", off)
> > > +#endif
> > > // TODO(keir): Reduce duplication between here and the other region
> > trackers.
> > > static bool RegionIsInBounds(const FloatImage &image1,
> > > double x, double y,
> > > Index: extern/libmv/libmv/tracking/lmicklt_region_tracker.cc
> > > ===================================================================
> > > --- extern/libmv/libmv/tracking/lmicklt_region_tracker.cc (revision
> > 56794)
> > > +++ extern/libmv/libmv/tracking/lmicklt_region_tracker.cc (working
> > copy)
> > > @@ -27,7 +27,12 @@
> > > #include "libmv/numeric/numeric.h"
> > >
> > > namespace libmv {
> > > -
> > > +/* 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("", off)
> > > +#endif
> > > // TODO(keir): Reduce duplication between here and the other region
> > trackers.
> > > static bool RegionIsInBounds(const FloatImage &image1,
> > > double x, double y,
> > > ---------------SNIP--------------
> > >
> > > Best regards
> > >
> > > /Jürgen
> > > _______________________________________________
> > > Bf-committers mailing list
> > > Bf-committers at blender.org
> > > http://lists.blender.org/mailman/listinfo/bf-committers
> > >
> > > _______________________________________________
> > > Bf-committers mailing list
> > > Bf-committers at blender.org
> > > http://lists.blender.org/mailman/listinfo/bf-committers
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list