diff options
Diffstat (limited to 'extern')
-rw-r--r-- | extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h | 2 | ||||
-rw-r--r-- | extern/Eigen3/patches/blender.diff | 12 | ||||
-rw-r--r-- | extern/bullet2/patches/blender.patch | 31 | ||||
-rw-r--r-- | extern/bullet2/src/LinearMath/btScalar.h | 7 |
4 files changed, 49 insertions, 3 deletions
diff --git a/extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h b/extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h index fc8ae50fed7..cb535e1b78f 100644 --- a/extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +++ b/extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h @@ -335,7 +335,7 @@ template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { _mm_p template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); } template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); } -#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER) +#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER) && !defined(__clang__) // The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010 // Direct of the struct members fixed bug #62. template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; } diff --git a/extern/Eigen3/patches/blender.diff b/extern/Eigen3/patches/blender.diff new file mode 100644 index 00000000000..3d7ba6e7006 --- /dev/null +++ b/extern/Eigen3/patches/blender.diff @@ -0,0 +1,12 @@ +diff -Naur c:\blender-git\blender\extern\Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h k:\BlenderGit\blender\extern\Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +--- c:\blender-git\blender\extern\Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h 2018-05-25 13:29:14 -0600 ++++ k:\BlenderGit\blender\extern\Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h 2018-05-26 19:56:36 -0600 +@@ -335,7 +335,7 @@ + template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); } + template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); } + +-#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER) ++#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER) && !defined(__clang__) + // The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010 + // Direct of the struct members fixed bug #62. + template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; } diff --git a/extern/bullet2/patches/blender.patch b/extern/bullet2/patches/blender.patch index 96357ddd315..cb3bf2ba38a 100644 --- a/extern/bullet2/patches/blender.patch +++ b/extern/bullet2/patches/blender.patch @@ -1,3 +1,34 @@ +diff --git a/extern/bullet2/src/LinearMath/btScalar.h b/extern/bullet2/src/LinearMath/btScalar.h +--- a/extern/bullet2/src/LinearMath/btScalar.h ++++ b/extern/bullet2/src/LinearMath/btScalar.h +@@ -16,6 +16,9 @@ + + #ifndef BT_SCALAR_H + #define BT_SCALAR_H ++#if defined(_MSC_VER) && defined(__clang__) /* clang supplies it's own overloads already */ ++#define BT_NO_SIMD_OPERATOR_OVERLOADS ++#endif + + #ifdef BT_MANAGED_CODE + //Aligned data types not supported in managed code +@@ -83,7 +86,7 @@ + #ifdef BT_USE_SSE + + #if (_MSC_FULL_VER >= 170050727)//Visual Studio 2012 can compile SSE4/FMA3 (but SSE4/FMA3 is not enabled by default) +- #define BT_ALLOW_SSE4 ++ //#define BT_ALLOW_SSE4 //disable this cause blender targets sse2 + #endif //(_MSC_FULL_VER >= 160040219) + + //BT_USE_SSE_IN_API is disabled under Windows by default, because +@@ -102,7 +105,7 @@ + #endif //__MINGW32__ + + #ifdef BT_DEBUG +- #ifdef _MSC_VER ++ #if defined(_MSC_VER) && !defined(__clang__) + #include <stdio.h> + #define btAssert(x) { if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);__debugbreak(); }} + #else//_MSC_VER diff --git a/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.h b/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.h index be9eca6..ec40c96 100644 --- a/extern/bullet2/src/BulletCollision/CollisionDispatch/btCollisionWorld.h diff --git a/extern/bullet2/src/LinearMath/btScalar.h b/extern/bullet2/src/LinearMath/btScalar.h index 0bfd255bdb4..898669f86e2 100644 --- a/extern/bullet2/src/LinearMath/btScalar.h +++ b/extern/bullet2/src/LinearMath/btScalar.h @@ -16,6 +16,9 @@ subject to the following restrictions: #ifndef BT_SCALAR_H #define BT_SCALAR_H +#if defined(_MSC_VER) && defined(__clang__) /* clang supplies it's own overloads already */ +#define BT_NO_SIMD_OPERATOR_OVERLOADS +#endif #ifdef BT_MANAGED_CODE //Aligned data types not supported in managed code @@ -83,7 +86,7 @@ inline int btGetVersion() #ifdef BT_USE_SSE #if (_MSC_FULL_VER >= 170050727)//Visual Studio 2012 can compile SSE4/FMA3 (but SSE4/FMA3 is not enabled by default) - #define BT_ALLOW_SSE4 + //#define BT_ALLOW_SSE4 //disable this cause blender targets sse2 #endif //(_MSC_FULL_VER >= 160040219) //BT_USE_SSE_IN_API is disabled under Windows by default, because @@ -102,7 +105,7 @@ inline int btGetVersion() #endif //__MINGW32__ #ifdef BT_DEBUG - #ifdef _MSC_VER + #if defined(_MSC_VER) && !defined(__clang__) #include <stdio.h> #define btAssert(x) { if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);__debugbreak(); }} #else//_MSC_VER |