From e8852d630ed353eb822d2b140f7eed096f01bd07 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 12 Jun 2014 22:02:15 +0200 Subject: [PATCH] SSE2: Add FIXME_SSE2 notes --HG-- branch : sse2 --- code/nel/include/nel/3d/shadow_poly_receiver.h | 2 +- code/nel/include/nel/misc/matrix.h | 5 +++++ code/nel/include/nel/misc/vector.h | 5 +++++ code/nel/src/3d/mesh_mrm_skin_template.cpp | 2 +- code/nel/src/3d/mesh_mrm_skinned_template.cpp | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/code/nel/include/nel/3d/shadow_poly_receiver.h b/code/nel/include/nel/3d/shadow_poly_receiver.h index c781578ea..0d97a00ad 100644 --- a/code/nel/include/nel/3d/shadow_poly_receiver.h +++ b/code/nel/include/nel/3d/shadow_poly_receiver.h @@ -83,7 +83,7 @@ public: ); // a vertex - struct CRGBAVertex + struct CRGBAVertex // FIXME_SSE2 { #if USE_SSE2 float X, Y, Z; diff --git a/code/nel/include/nel/misc/matrix.h b/code/nel/include/nel/misc/matrix.h index 700eb4a14..7c7d7d666 100644 --- a/code/nel/include/nel/misc/matrix.h +++ b/code/nel/include/nel/misc/matrix.h @@ -53,6 +53,7 @@ class CPlane; * \author Nevrax France * \date 2000 */ +NL_ALIGN(16) class CMatrix { public: @@ -363,6 +364,10 @@ private: float Scale33; uint32 StateBit; // BitVector. 0<=>identity. +#if USE_SSE2 + void setMulMatrixSSE2(const CMatrix &m1, const CMatrix &m2); +#endif + // Methods For inversion. bool fastInvert33(CMatrix &ret) const; bool slowInvert33(CMatrix &ret) const; diff --git a/code/nel/include/nel/misc/vector.h b/code/nel/include/nel/misc/vector.h index bbf7001b7..46df7edce 100644 --- a/code/nel/include/nel/misc/vector.h +++ b/code/nel/include/nel/misc/vector.h @@ -36,11 +36,16 @@ class IStream; * \author Nevrax France * \date 2000 */ +// NL_ALIGN(16) // FIXME_SSE2 class CVector { public: // Attributes. float x,y,z; +/*#ifdef USE_SSE2 // FIXME_SSE2 + float w; // Padding +#endif*/ + public: // const. /// Null vector (0,0,0). static const CVector Null; diff --git a/code/nel/src/3d/mesh_mrm_skin_template.cpp b/code/nel/src/3d/mesh_mrm_skin_template.cpp index 808dce31a..6e6c160ae 100644 --- a/code/nel/src/3d/mesh_mrm_skin_template.cpp +++ b/code/nel/src/3d/mesh_mrm_skin_template.cpp @@ -494,7 +494,7 @@ void CMeshMRMGeom::applySkinWithTangentSpace(CLod &lod, const CSkeletonModel *sk On a P4-2.4Ghz, for 40000 vertices skinned, both no precaching and asm saves 27% of execution time in the applyRawSkinNormal*() loop (ie 1 ms) */ -#if defined(NL_OS_WINDOWS) && !defined(NL_NO_ASM) &&!defined(USE_SSE2) +#if defined(NL_OS_WINDOWS) && !defined(NL_NO_ASM) &&!defined(USE_SSE2) // FIXME_SSE2 //#define NL3D_RAWSKIN_PRECACHE #define NL3D_RAWSKIN_ASM #endif diff --git a/code/nel/src/3d/mesh_mrm_skinned_template.cpp b/code/nel/src/3d/mesh_mrm_skinned_template.cpp index be072713f..e60a5632b 100644 --- a/code/nel/src/3d/mesh_mrm_skinned_template.cpp +++ b/code/nel/src/3d/mesh_mrm_skinned_template.cpp @@ -43,7 +43,7 @@ On a P4-2.4Ghz, for 40000 vertices skinned, both no precaching and asm saves 27% of execution time in the applyRawSkinNormal*() loop (ie 1 ms) */ -#if defined(NL_OS_WINDOWS) && !defined(NL_NO_ASM) &&!defined(USE_SSE2) +#if defined(NL_OS_WINDOWS) && !defined(NL_NO_ASM) &&!defined(USE_SSE2) // FIXME_SSE2 //#define NL3D_RAWSKIN_PRECACHE #define NL3D_RAWSKIN_ASM #endif