diff --git a/thirdparty/README.md b/thirdparty/README.md index c008680b62..d0ca54b8af 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -16,6 +16,9 @@ Files extracted from upstream source: - `src/*` apart from CMakeLists.txt and premake4.lua files - `LICENSE.txt`, and `VERSION` as `VERSION.txt` +Note: Includes fixes sent upstream. +Patch files for the changes are included in the patches folder. + ## certs diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h index 8d2f108fae..4db7309eec 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h @@ -51,12 +51,7 @@ struct btSimdScalar int m_ints[4]; btScalar m_unusedPadding; }; - SIMD_FORCE_INLINE __m128 get128() - { - return m_vec128; - } - - SIMD_FORCE_INLINE const __m128 get128() const + SIMD_FORCE_INLINE __m128 get128() const { return m_vec128; } diff --git a/thirdparty/bullet/LinearMath/btVector3.h b/thirdparty/bullet/LinearMath/btVector3.h index 9da162772c..e15a8ab391 100644 --- a/thirdparty/bullet/LinearMath/btVector3.h +++ b/thirdparty/bullet/LinearMath/btVector3.h @@ -1092,6 +1092,11 @@ class btVector4 : public btVector3 mVec128 = rhs.mVec128; } + SIMD_FORCE_INLINE btVector4(const btVector4& rhs) + { + mVec128 = rhs.mVec128; + } + SIMD_FORCE_INLINE btVector4& operator=(const btVector4& v) { diff --git a/thirdparty/bullet/patches/0001-fix-missing-copy-constructor.patch b/thirdparty/bullet/patches/0001-fix-missing-copy-constructor.patch new file mode 100644 index 0000000000..e4b37e0dc3 --- /dev/null +++ b/thirdparty/bullet/patches/0001-fix-missing-copy-constructor.patch @@ -0,0 +1,16 @@ +diff --git a/thirdparty/bullet/LinearMath/btVector3.h b/thirdparty/bullet/LinearMath/btVector3.h +index 9da16277..e15a8ab3 100644 +--- a/thirdparty/bullet/LinearMath/btVector3.h ++++ b/thirdparty/bullet/LinearMath/btVector3.h +@@ -1092,6 +1092,11 @@ public: + mVec128 = rhs.mVec128; + } + ++ SIMD_FORCE_INLINE btVector4(const btVector4& rhs) ++ { ++ mVec128 = rhs.mVec128; ++ } ++ + SIMD_FORCE_INLINE btVector4& + operator=(const btVector4& v) + { diff --git a/thirdparty/bullet/patches/0002-create-single-get128-method.patch b/thirdparty/bullet/patches/0002-create-single-get128-method.patch new file mode 100644 index 0000000000..796a533ac3 --- /dev/null +++ b/thirdparty/bullet/patches/0002-create-single-get128-method.patch @@ -0,0 +1,18 @@ +diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +index 8d2f108f..4db7309e 100644 +--- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h ++++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h +@@ -51,12 +51,7 @@ struct btSimdScalar + int m_ints[4]; + btScalar m_unusedPadding; + }; +- SIMD_FORCE_INLINE __m128 get128() +- { +- return m_vec128; +- } +- +- SIMD_FORCE_INLINE const __m128 get128() const ++ SIMD_FORCE_INLINE __m128 get128() const + { + return m_vec128; + }