lucas95123 / bullet

Automatically exported from code.google.com/p/bullet
Other
0 stars 0 forks source link

btVector3 does not compile in MSVC2005 due to missing intrinics #670

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Use provided premake to create MSVC2005 solution
2. Open solution and Build.

linearmath\btVector3.h(238) : error C3861: '_mm_cvtss_f32': identifier not found

What is the expected output? What do you see instead?
Instead of a successful build, errors are:
2>btVector3.cpp
2>src\linearmath\btVector3.h(238) : error C3861: '_mm_cvtss_f32': identifier 
not found
2>src\linearmath\btVector3.h(349) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(420) : error C3861: '_mm_cvtss_f32': identifier 
not found
2>src\linearmath\btVector3.h(637) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(715) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(716) : error C3861: '_mm_castpd_ps': identifier 
not found
2>src\linearmath\btVector3.h(716) : error C3861: '_mm_castps_pd': identifier 
not found
2>src\linearmath\btVector3.h(716) : error C3861: '_mm_castps_pd': identifier 
not found
2>src\linearmath\btVector3.h(775) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(793) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(847) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(956) : error C3861: '_mm_castsi128_ps': identifier 
not found
2>src\linearmath\btVector3.h(1102) : error C3861: '_mm_castsi128_ps': 
identifier not found
2>src\LinearMath\btVector3.cpp(49) : error C3861: '_mm_castsi128_ps': 
identifier not found
2>src\LinearMath\btVector3.cpp(49) : error C3861: '_mm_castps_si128': 
identifier not found

What version of the product are you using? On what operating system?
This happens with bullet-2.81-rev2613. Bullet 2.79 compiled fine.
Visual Studio version is 2005 (8.0.50727.867) with Vista hotfixes.
Operating System is Windows 7.
Platform SDK version is the default from MSVC 2005.

Please provide any additional information below.

_mm_cvtss_f32 only have MSDN-pages for MSVC2008 and up.

Original issue reported on code.google.com by p.de.gr...@ncim.nl on 13 Nov 2012 at 8:59

GoogleCodeExporter commented 8 years ago
There is a simple solution to this.

In btScalar.h, line 70, change 

#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400) && (!defined 
(BT_USE_DOUBLE_PRECISION))

to

#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER > 1400) && (!defined 
(BT_USE_DOUBLE_PRECISION))

This will disable all the _mm_* functions in VS 2005.

Original comment by anwilew...@gmail.com on 6 Dec 2012 at 9:04

GoogleCodeExporter commented 8 years ago
It is fixed in latest trunk:
https://code.google.com/p/bullet/source/detail?r=2625

You fix would disable ALL sse, making it slower. The fix in trunk only disables 
the newer intrinsics in btVector3.

Thanks for the report!

Original comment by erwin.coumans on 7 Dec 2012 at 6:17

GoogleCodeExporter commented 8 years ago
I'm having the same issue with the current svn (r2636),

you can find a fix of btMatrix3x3.h and btQuaternion.h attached

Original comment by anael.se...@gmail.com on 4 Feb 2013 at 11:46

Attachments:

GoogleCodeExporter commented 8 years ago
Thanks Anael, fixed in trunk:
https://code.google.com/p/bullet/source/detail?r=2685

Original comment by erwin.coumans on 16 Oct 2013 at 9:26