openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] Strange issue with half and _toFloat array.


From: Simon Smith
Subject: Re: [Openexr-devel] Strange issue with half and _toFloat array.
Date: Tue, 4 Mar 2014 09:09:29 +0000

Hi Piotr,

OK, I had a bit of downtime to check CMake and the v2.1.0 build - I've not used cmake before, so it was a first and I rather liked it I have to admit :)

I used the Windows GUI of cmake to generate for Visual Studio 11 x64 (i.e., vs2012)
I then opened the IlmBase solution in VS2012.

To build, the IEX solution needed the PLATFORM_WINDOWS define setting.
After building, and using my test program (as outlined before) it would not link with a missing half::_toFloat and half::_eLut unresolved externals.

I'm not sure if (apart from the missing PLATFORM_WINDOWS) this should just build using CMake generated projects and solutions so I've not delved deeper into this.

Just to note, whilst I got lots of "non dll-interface class 'Iex_2_1::BaseExc' used as base for dll-interface class 'Iex_2_1::ArgExc'" type warnings, I did not change the code at all to attempt this half test.


The fact that it's complaining about the _toFloat array is probably linked to the runtime errors I had - in that when I ran my test previously it was this structure that was corrupt/missing.

Hope this helps identify any problems under VS2012/x64 …..

Best Regards,
   Simon
________________________

Simon C. Smith
Co-founder & CTO
Lightmap Ltd - Creators of HDR Light Studio

Follow our Facebook page
________________________
Registered in England and Wales  06879016
International House, Brunel Drive, Newark, NG24 2EG. UK

On 13 Feb 2014, at 18:51, Piotr Stanczyk wrote:

If you have a few spare cycles, could you build using cmake?

thanks

Piotr



On 13 February 2014 10:40, Simon Smith <address@hidden> wrote:
Hi Piotr,

I used the version that's zipped up on the main OpenEXR website (v2.1.0).

I then duplicated the vc 2010 directory to build for VS2012 (just upgrading the projects on loading etc).
The projects there include the createDLL project and use them in the post-build steps.

I'm 99% sure the issue is that it's a DLL as mentioned because statically building the libs works as expected.

Best Regards,
   Simon



On 13 Feb 2014, at 17:12, Piotr Stanczyk wrote:

Which version are you using? We should be building without the createDLL path since we made a pass at setting the visibility attributes 

Piotr



On 13 February 2014 06:03, Simon Smith <address@hidden> wrote:
I've built the OpenEXR files under Windows using VS2012 from the source linked from the OpenEXR website.
Everything builds OK (after a few tweaks as mentioned on this group) and the HalfTest runs OK.

I was having issues with half/floats in my application, so I wrote a quick test command line app to check everything was OK.
Not unsurprisingly, it was not!

This was the code … 

float f1 = 0.0f;
float f2 = 4.0f;
half h1 = f1;
h1 += f2;
float fRes = h1;

assert(fRes = 4.0f);

When converting from the half to a float to get fRes I'm getting an exception reading from the _toFloat array.

I'm not quite sure how or why this happens - if I debug in the testArithmetic call in the HalfTest, it all seems OK … so why would my test program not load the DLL correctly, but the HalfTest does.

Pretty sure it's something dumb that I'm doing, but cannot think what it might be.

I'm using VS2012, Win8.1, running Debug x64 builds and the ilmbase-2.1.0 sour code (built in VS2012 too).

As a side note, when building the source I had to do the following:
1) Include config.windows to the Iex and IMath libraries
2) Manually copy the halfExport.h files over to the deploy directory.
3) Patch BaseExc to have a std::string member & change the IEX_EXPORT decorations around (as outlined in an earlier post)

So, any ideas, solutions, suggestions greatly appreciated to save my sanity :)

Best Regards,
   Simon

_______________________________________________
Openexr-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/openexr-devel






reply via email to

[Prev in Thread] Current Thread [Next in Thread]