Skip to content

Commit dd185b0

Browse files
committed
- fixed Eigen alignment
1 parent fd72cf5 commit dd185b0

File tree

26 files changed

+221
-231
lines changed

26 files changed

+221
-231
lines changed

CMake/Common.cmake

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,40 @@ set(PBD_BINARY_DEBUG_POSTFIX "_d" CACHE INTERNAL "Postfix for executables")
1212
set(PBD_BINARY_RELWITHDEBINFO_POSTFIX "_rd" CACHE INTERNAL "Postfix for executables")
1313
set(PBD_BINARY_MINSIZEREL_POSTFIX "_ms" CACHE INTERNAL "Postfix for executables")
1414

15+
if (NOT WIN32)
16+
if (NOT EXISTS ${CMAKE_BINARY_DIR}/CMakeCache.txt)
17+
if (NOT CMAKE_BUILD_TYPE)
18+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
19+
endif()
20+
endif()
21+
endif()
22+
23+
option(USE_OpenMP "Use OpenMP" ON)
24+
if(USE_OpenMP)
25+
FIND_PACKAGE(OpenMP)
26+
if(OPENMP_FOUND)
27+
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
28+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
29+
endif()
30+
endif()
31+
1532
if (WIN32)
1633
set(CMAKE_USE_RELATIVE_PATHS "1")
1734
# Set compiler flags
18-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP /openmp /bigobj")
19-
set(CMAKE_CXX_FLAGS_RELEASE "/MD /MP /Ox /Ob2 /Oi /Ot /D NDEBUG /openmp")
20-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Zi /MP /Ox /Ob2 /Oi /Ot /D NDEBUG /openmp /bigobj")
35+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP /bigobj")
36+
set(CMAKE_CXX_FLAGS_RELEASE "/MD /MP /Ox /Ob2 /Oi /Ot /D NDEBUG")
37+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Zi /MP /Ox /Ob2 /Oi /Ot /D NDEBUG /bigobj")
2138
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO")
2239
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO")
2340
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO")
2441
endif (WIN32)
2542

2643
if (UNIX)
2744
set(CMAKE_USE_RELATIVE_PATHS "1")
28-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG -fopenmp")
45+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
2946
# Set compiler flags for "release"
30-
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -fopenmp")
31-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -DNDEBUG -march=native -fopenmp")
47+
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -march=native")
48+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -DNDEBUG -march=native")
3249
endif (UNIX)
3350

3451
if(APPLE)

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ include(${PROJECT_PATH}/CMake/Common.cmake)
1212

1313
add_definitions(-DPBD_DATA_PATH="../data")
1414

15+
if (NOT WIN32)
16+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
17+
endif()
18+
1519
if (DEFINED PBD_EXTERNALINSTALLDIR)
1620
set(ExternalInstallDir "${PBD_EXTERNALINSTALLDIR}" CACHE INTERNAL "External install directory")
1721
else()

Common/Common.h

Lines changed: 9 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -25,58 +25,18 @@ typedef float Real;
2525
#define RealVectorParameterType ParameterBase::VEC_FLOAT
2626
#endif
2727

28-
using Vector2r = Eigen::Matrix<Real, 2, 1>;
29-
using Vector3r = Eigen::Matrix<Real, 3, 1>;
30-
using Vector4r = Eigen::Matrix<Real, 4, 1>;
31-
using Vector5r = Eigen::Matrix<Real, 5, 1>;
32-
using Vector6r = Eigen::Matrix<Real, 6, 1>;
33-
using Matrix2r = Eigen::Matrix<Real, 2, 2>;
34-
using Matrix3r = Eigen::Matrix<Real, 3, 3>;
35-
using Matrix4r = Eigen::Matrix<Real, 4, 4>;
28+
using Vector2r = Eigen::Matrix<Real, 2, 1, Eigen::DontAlign>;
29+
using Vector3r = Eigen::Matrix<Real, 3, 1, Eigen::DontAlign>;
30+
using Vector4r = Eigen::Matrix<Real, 4, 1, Eigen::DontAlign>;
31+
using Vector5r = Eigen::Matrix<Real, 5, 1, Eigen::DontAlign>;
32+
using Vector6r = Eigen::Matrix<Real, 6, 1, Eigen::DontAlign>;
33+
using Matrix2r = Eigen::Matrix<Real, 2, 2, Eigen::DontAlign>;
34+
using Matrix3r = Eigen::Matrix<Real, 3, 3, Eigen::DontAlign>;
35+
using Matrix4r = Eigen::Matrix<Real, 4, 4, Eigen::DontAlign>;
3636
using AlignedBox2r = Eigen::AlignedBox<Real, 2>;
3737
using AlignedBox3r = Eigen::AlignedBox<Real, 3>;
3838
using AngleAxisr = Eigen::AngleAxis<Real>;
39-
using Quaternionr = Eigen::Quaternion<Real>;
40-
41-
//allocators to be used in STL collections containing Eigen structures
42-
using Alloc_Vector2r = Eigen::aligned_allocator<Vector2r>;
43-
using Alloc_Vector3r = Eigen::aligned_allocator<Vector3r>;
44-
using Alloc_Vector4r = Eigen::aligned_allocator<Vector4r>;
45-
using Alloc_Matrix2r = Eigen::aligned_allocator<Matrix2r>;
46-
using Alloc_Matrix3r = Eigen::aligned_allocator<Matrix3r>;
47-
using Alloc_Matrix4r = Eigen::aligned_allocator<Matrix4r>;
48-
using Alloc_AlignedBox2r = Eigen::aligned_allocator<AlignedBox2r>;
49-
using Alloc_AlignedBox3r = Eigen::aligned_allocator<AlignedBox3r>;
50-
using Alloc_AngleAxisr = Eigen::aligned_allocator<AngleAxisr>;
51-
using Alloc_Quaternionr = Eigen::aligned_allocator<Quaternionr>;
52-
53-
#if EIGEN_ALIGN
54-
#define PDB_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW
55-
#define REPORT_MEMORY_LEAKS
56-
57-
#if defined(WIN32) || defined(_WIN32) || defined(WIN64)
58-
#ifdef _DEBUG
59-
// Enable memory leak detection for Eigen new
60-
#undef PDB_MAKE_ALIGNED_OPERATOR_NEW
61-
#define PDB_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW \
62-
void *operator new(size_t size, int const block_use, char const* file_name, int const line_number) { \
63-
\
64-
return _aligned_malloc_dbg(size, 16, file_name, line_number); \
65-
} \
66-
void *operator new[](size_t size, int const block_use, char const* file_name, int const line_number) { \
67-
return operator new(size, block_use, file_name, line_number); \
68-
}\
69-
void operator delete(void* block, int const block_use, char const* file_name, int const line_number) { \
70-
\
71-
return _aligned_free_dbg(block); \
72-
} \
73-
void operator delete[](void* block, int const block_use, char const* file_name, int const line_number) { \
74-
return operator delete(block, block_use, file_name, line_number); \
75-
}
76-
#endif
77-
#endif
78-
#else
79-
#define PDB_MAKE_ALIGNED_OPERATOR_NEW
39+
using Quaternionr = Eigen::Quaternion<Real, Eigen::DontAlign>;
8040

8141
#if defined(WIN32) || defined(_WIN32) || defined(WIN64)
8242
// Enable memory leak detection
@@ -97,8 +57,6 @@ using Alloc_Quaternionr = Eigen::aligned_allocator<Quaternionr>;
9757
#endif
9858

9959

100-
#endif
101-
10260
#if defined(WIN32) || defined(_WIN32) || defined(WIN64)
10361
#define FORCE_INLINE __forceinline
10462
#else

Demos/BarDemo/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/ClothDemo/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/CosseratRodsDemo/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/CouplingDemos/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/DistanceFieldDemos/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/FluidDemo/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

Demos/GenericConstraintsDemos/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ if(WIN32)
55
set(SIMULATION_LINK_LIBRARIES freeglut opengl32.lib glu32.lib ${SIMULATION_LINK_LIBRARIES})
66
set(SIMULATION_DEPENDENCIES freeglut ${SIMULATION_DEPENDENCIES})
77
else()
8+
set(OpenGL_GL_PREFERENCE GLVND)
89
find_package(GLUT REQUIRED)
910
find_package(OpenGL REQUIRED)
1011

0 commit comments

Comments
 (0)