[of-dev] windows 0071 status

Matthew Gingold m at gingold.com.au
Fri May 11 11:06:43 PDT 2012


Hey Theo

I'll make a GH issue in a sec. I think your comments answer the problem. I
tested very thoroughly different compile options for 2.3.0, 2.3.1 and 2.4.0
each time only against opencvExample and opencvHaarFinderExample.

I used latest distro's from openCV sourceforge (not SVN), and made sure to
rebuild projects with PG and clean/build every time.

My mistake: I assumed that we used SSE/SSE2 optimizations. These are the
problem. Current libs in Develop must have been compiled with these switched
on (openCV 2.3.1 distro defaults to these on - same reason I left them on
for a long time until this afternoon).

To summarise:

1. With openCV compiled with SSE/SSE2 on, release and -O3 there IS problems
- eg., cvThreshold and cvFindContours crash with SIGSEGV. Current openCV
libs in develop seem to be compiled with these settings as they exhibit same
crash pattern.

2. With openCV compiled with SSE/SSE2 off, release and -O3 there is no
problem.
3. With openCV compiled with SSE/SSE2 on, debug and -O3 there is no problem.
4. With openCV compiled with SSE/SSE2 on, release and -O1 there is no
problem.

Libs in my branch are compiled as per 4, but it is easy to replace them with
a version compiled as per 2, above (I just left the office but can upload
them over the weekend)

I don't think the issue was with openMP or ofxFerns etc...just the SSE/SSE2
optimizations. 100% sure this is the issue.

M


On 11/05/12 7:26 PM, "Theodore Watson" <theo at openframeworks.cc> wrote:

> Hi Matthew,
> 
> I'm just looking at this for the first time.
> Can you make a github issue about this, with as much info as you can - as I
> think it would be good to have on GH.
> 
> I have had some similar experiences with opencv threading issues in CB and
> also optimization issues in CB.
> 
> 1) Don't use any SSE optimizations. Also don't use fast math.
> I've had crashing issues with ofxFerns and opencv which was directly related
> to using both of those.
> 
> 2) Might be good to look at issues with OpenMP. For some reason that can cause
> crazy issues like you're seeing.
> See the entirety of this thread and especially this post:
> http://forum.openframeworks.cc/index.php/topic,2994.msg16275.html#msg16275
> Also check dlls aren't old ones.
> 
> Thanks!
> Theo
> 
> ----------------------------------------------
> Theo Watson
> http://theowatson.com
> http://openframeworks.cc
> ----------------------------------------------
> 
> On May 11, 2012, at 1:06 PM, Matthew Gingold wrote:
> 
>> Ok I'll take a look at VS problems soon...
>> 
>> Been chasing the CB openCV lib problem...it's been super annoying (2 days of
>> compile and re-compile), but I finally found some leads with:
>> 
>> http://code.opencv.org/issues/596
>> and
>> http://code.opencv.org/issues/1896
>> 
>> Unfortunately -O2 does not work for me...the most optimized I can get to is
>> -O1. Id on't know too much about optimization settings - will that be ok for
>> 0071?
>> 
>> I didn't apply the patch (cf issue 1896, above), but manually changed
>> CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" to CMAKE_CXX_FLAGS_RELEASE "-O1
>> -DNDEBUG" in CmakeCache before making the libs.
>> 
>> What's really annoying about this is that the bug is 1+ years old and also
>> breaks 2.4.0 if compiled in Release with SSE/SSE2 support.
>> 
>> I could not get 2.4.0 to work with -O2 either, again I had to set to -O1.
>> 
>> Perhaps someone else would like to try? I'm using g++ version 4.4.1 so maybe
>> a more recent version would do a better job?
>> 
>> @Zach: did you make an issue for this problem on git? If so let me know so I
>> can tag a PR with it...
>> 
>> You can try the libs I compiled at
>> https://github.com/gameoverhack/openframeworks/tree/bugfix-openCV231
>> 
>> M
>> 
>> 
>> On 11/05/12 3:01 PM, "Zachary Lieberman" <zach at eyebeam.org> wrote:
>> 
>>> I haven't had a chance to look too closely, but wrt to the debug vs
>>> release libs, the project generator code here:
>>> 
>>> void visualStudioProject::addAddon(ofAddon & addon){
>>> 
>>> specifically:
>>> 
>>> found = addon.libs[i].find_last_of("\\")
>>> 
>>> looks very windows specific, and probably the logic is not the same on
>>> non windows machines.   We should try to take a look more closely at
>>> the logic, maybe test on linux and mac and see if there's something
>>> either with path parsing or enumeration that's different.
>>> 
>>> take care,
>>> zach
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Thu, May 10, 2012 at 11:14 PM, Elliot Woods
>>> <elliot at kimchiandchips.com> wrote:
>>>> Hmm seems super strange
>>>> Working on other OS's with same compiler
>>>> Working on same OS with different compiler
>>>> :(
>>>> 
>>>> I'll try and have a look at this too (VS + CB).
>>>> 
>>>> On Friday, 11 May 2012, Matthew Gingold wrote:
>>>>> 
>>>>> Re VS: I re-ran the PG before trying the project...unfortunately I just
>>>>> left the office with the PC I've been using...perhaps could you try
>>>>> rerunning the PG and see if it always does this with the latest dev? I'll
>>>>> try in a couple of hours after some dinner...
>>>>> 
>>>>> As for the CB openCV problem the only thing I can think to do is try
>>>>> compiling 2.3.0, 2.4.0 and maybe even 2.2.x just to eliminate any possible
>>>>> blame with OF code and then take it to the openCV forums...?
>>>>> 
>>>>> Sent from my phone
>>>>> 
>>>>> On 10/05/2012, at 5:18 PM, Zachary Lieberman <zach at eyebeam.org> wrote:
>>>>> 
>>>>> 
>>>>> On the VS side, the linking looks odd for release:
>>>>> 
>>>>> debug is fine:
>>>>> 
>>>>> 
>>>>> <AdditionalDependencies>%(AdditionalDependencies);opencv_highgui231d.lib;o
>>>>> pe
>>>>> ncv_calib3d231d.lib;opencv_imgproc231d.lib;opencv_haartraining_engined.lib
>>>>> ;o
>>>>> pencv_gpu231d.lib;opencv_flann231d.lib;opencv_contrib231d.lib;opencv_video
>>>>> 23
>>>>> 1d.lib;opencv_objdetect231d.lib;zlibd.lib;opencv_core231d.lib;opencv_ml231
>>>>> d.
>>>>> lib;opencv_features2d231d.lib;opencv_legacy231d.lib</AdditionalDependencie
>>>>> s>
>>>>> 
>>>>> but the release project has both debug and release libs -- maybe there's
>>>>> some logic that needs to be fixed in the PG wrt figuring out the
>>>>> difference
>>>>> between debug and release libs?
>>>>> 
>>>>> 
>>>>> <AdditionalDependencies>%(AdditionalDependencies);opencv_highgui231d.lib;o
>>>>> pe
>>>>> ncv_calib3d231.lib;opencv_imgproc231d.lib;opencv_haartraining_engined.lib;
>>>>> op
>>>>> encv_gpu231d.lib;opencv_flann231.lib;opencv_contrib231d.lib;opencv_video23
>>>>> 1d
>>>>> .lib;opencv_objdetect231d.lib;zlib.lib;opencv_core231d.lib;opencv_contrib2
>>>>> 31
>>>>> .lib;opencv_ml231d.lib;opencv_features2d231.lib;opencv_core231.lib;opencv_
>>>>> gp
>>>>> u231.lib;opencv_legacy231d.lib;opencv_haartraining_engine.lib;opencv_highg
>>>>> ui
>>>>> 231.lib;opencv_ml231.lib;opencv_imgproc231.lib;opencv_objdetect231.lib;ope
>>>>> nc
>>>>> v_legacy231.lib;opencv_video231.lib</AdditionalDependencies>
>>>>> 
>>>>> This was in the project that was generated by arturo in the packages he
>>>>> put up...  I'll check the develop branch, maybe something in how the files
>>>>> are enumerated, etc are different and the logic breaks down?
>>>>> 
>>>>> thanks,
>>>>> zach
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, May 10, 2012 at 11:13 AM, Matthew Gingold <m at gingold.com.au>
>>>>> wrote:
>>>>> 
>>>>> Ok I¹ve been looking into:
>>>>> 
>>>>>  a) openCV VS issues ­ I¹m not having this problem...are you still seeing
>>>>> this Zach? With both openCvExample and haar? Or just one of them?
>>>>> 
>>>>> And
>>>>> 
>>>>> a) openCV CB issues ‹ ok this is really frustrating. I¹ve recompiled
>>>>> openCV 2.3.1 as static release libs. The problem persists ­ still getting
>>>>> immediate crash with openCvExample in both debug and release modes.
>>>>> Uber-confoundingly after compiling debug static libs and linking against
>>>>> those the example runs fine in both release and debug modes....so...I¹m
>>>>> now
>>>>> stumped ­ the problem seems to be actually in the libs themselves unless
>>>>> I¹m
>>>>> missing something completely...it is very consistently with cvThreshold
>>>>> command, although sometimes cvFindContours crashes sigsegv too...should I
>>>>> try 2.3.0 or 2.4.0 to confirm it¹s a specific problem with 2.3.1 ? Any
>>>>> common flags we use for oF would good to know about...right now I¹m
>>>>> compiling with standard/defaults...
>>>>> 
>>>>> M
>>>>> 
>>>>> 
>>>>> 
>>>>> On 10/05/12 2:01 AM, "Zachary Lieberman" <zach at eyebeam.org> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>> here's a hit list for what needs to be done for 0071 / windows.
>>>>> Matthew and Elliot,  (and anyone else windows based)  do you think you can
>>>>> take a look?     We're almost there but switching the libs always leads to
>>>>> stuff like this.
>>>>> 
>>>>> + + + + + +
>>>>> VS
>>>>> + + + + + +
>>>>> 
>>>>> a) we have some linking errors with the new opencv VS libs -- the debug
>>>>> projects that use opencv are unhappy and don't compile:
>>>>> 
>>>>> opencv_core231d.lib(lapack.obj) : error LNK2038: mismatch detected for
>>>>> '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
>>>>> 
>>>>> b) release versions of all OSC examples are all failing to build
>>>>> 
>>>>> c) GPUparticleSystemExample fails to build (debug and release)
>>>>> 
>>>>> error C2668: 'sqrt' : ambiguous call to overloaded function [C:\Documents
>>>>> and Settings\Administrator\My
>>>>> Documents\0071\of_preRelease_v0071_vs2010\examples\gl\GPUparticleSystemExa
>>>>> mp
>>>>> le\GPUparticleSystemExample.vcxproj]
>>>>>           C:\Program Files\Mic
>>>> 
>>>> 
>>>> 
>>>> --
>>>> --
>>>> Elliot Woods
>>>> elliot at KimchiAndChips.com
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> of-dev mailing list
>>>> of-dev at dev.openframeworks.cc
>>>> http://dev.openframeworks.cc/listinfo.cgi/of-dev-openframeworks.cc
>>>> 
>>> _______________________________________________
>>> of-dev mailing list
>>> of-dev at dev.openframeworks.cc
>>> http://dev.openframeworks.cc/listinfo.cgi/of-dev-openframeworks.cc
>> 
>> 
>> _______________________________________________
>> of-dev mailing list
>> of-dev at dev.openframeworks.cc
>> http://dev.openframeworks.cc/listinfo.cgi/of-dev-openframeworks.cc
> 
> _______________________________________________
> of-dev mailing list
> of-dev at dev.openframeworks.cc
> http://dev.openframeworks.cc/listinfo.cgi/of-dev-openframeworks.cc





More information about the of-dev mailing list