Added a CMake option to execute GLM performance tests. Made quat and dualquat trivially constructible #263
This commit is contained in:
@@ -1018,7 +1018,6 @@ int main()
|
||||
int Error(0);
|
||||
|
||||
Error += sign::test();
|
||||
Error += sign::perf();
|
||||
Error += test_floor();
|
||||
Error += test_modf();
|
||||
Error += test_floatBitsToInt();
|
||||
@@ -1032,6 +1031,10 @@ int main()
|
||||
Error += test_isnan();
|
||||
Error += test_isinf();
|
||||
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += sign::perf();
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
|
||||
@@ -1321,11 +1321,8 @@ int main()
|
||||
int Error = 0;
|
||||
|
||||
Error += ::bitCount::test();
|
||||
Error += ::bitCount::perf();
|
||||
Error += ::bitfieldReverse::test();
|
||||
Error += ::bitfieldReverse::perf();
|
||||
Error += ::findMSB::test();
|
||||
Error += ::findMSB::perf();
|
||||
Error += ::findLSB::test();
|
||||
Error += ::umulExtended::test();
|
||||
Error += ::imulExtended::test();
|
||||
@@ -1334,5 +1331,11 @@ int main()
|
||||
Error += ::bitfieldInsert::test();
|
||||
Error += ::bitfieldExtract::test();
|
||||
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += ::bitCount::perf();
|
||||
Error += ::bitfieldReverse::perf();
|
||||
Error += ::findMSB::perf();
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
@@ -240,11 +240,15 @@ int main()
|
||||
Error += test_transpose();
|
||||
Error += test_determinant();
|
||||
Error += test_inverse();
|
||||
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
for(std::size_t i = 0; i < 1; ++i)
|
||||
{
|
||||
Error += test_inverse_perf<glm::vec3, glm::mat4>(i, "mat4");
|
||||
Error += test_inverse_perf<glm::dvec3, glm::dmat4>(i, "dmat4");
|
||||
}
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
|
||||
@@ -425,8 +425,11 @@ int main()
|
||||
|
||||
std::size_t const Size(1000000);
|
||||
|
||||
Error += test_vec4_perf_AoS(Size);
|
||||
Error += test_vec4_perf_SoA(Size);
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += test_vec4_perf_AoS(Size);
|
||||
Error += test_vec4_perf_SoA(Size);
|
||||
# endif
|
||||
|
||||
Error += test_vec4_ctor();
|
||||
Error += test_vec4_size();
|
||||
Error += test_vec4_operators();
|
||||
|
||||
@@ -637,7 +637,9 @@ int main()
|
||||
Error += ::bitfieldInterleave::test();
|
||||
//Error += ::bitRevert::test();
|
||||
|
||||
Error += ::mask::perf();
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += ::mask::perf();
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
@@ -273,6 +273,20 @@ int test_quat_ctr()
|
||||
{
|
||||
int Error(0);
|
||||
|
||||
#if (GLM_LANG & GLM_LANG_CXX11_FLAG) || (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)
|
||||
// Error += std::is_trivially_default_constructible<glm::quat>::value ? 0 : 1;
|
||||
// Error += std::is_trivially_default_constructible<glm::dquat>::value ? 0 : 1;
|
||||
// Error += std::is_trivially_copy_assignable<glm::quat>::value ? 0 : 1;
|
||||
// Error += std::is_trivially_copy_assignable<glm::dquat>::value ? 0 : 1;
|
||||
Error += std::is_trivially_copyable<glm::quat>::value ? 0 : 1;
|
||||
Error += std::is_trivially_copyable<glm::dquat>::value ? 0 : 1;
|
||||
|
||||
Error += std::has_trivial_copy_constructor<glm::quat>::value ? 0 : 1;
|
||||
Error += std::has_trivial_copy_constructor<glm::dquat>::value ? 0 : 1;
|
||||
Error += std::is_copy_constructible<glm::quat>::value ? 0 : 1;
|
||||
Error += std::is_copy_constructible<glm::dquat>::value ? 0 : 1;
|
||||
#endif
|
||||
|
||||
# if GLM_HAS_INITIALIZER_LISTS
|
||||
{
|
||||
glm::quat A{0, 1, 2, 3};
|
||||
|
||||
@@ -299,7 +299,10 @@ int main()
|
||||
|
||||
Error += isPowerOfTwo::test();
|
||||
Error += ceilPowerOfTwo::test();
|
||||
Error += ceilPowerOfTwo::perf();
|
||||
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += ceilPowerOfTwo::perf();
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace fastCos
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastCos Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("cos Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastCos
|
||||
@@ -53,6 +54,7 @@ namespace fastSin
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastSin Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("sin Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastSin
|
||||
@@ -75,6 +77,7 @@ namespace fastTan
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastTan Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("tan Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastTan
|
||||
@@ -97,6 +100,7 @@ namespace fastAcos
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastAcos Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("acos Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastAcos
|
||||
@@ -119,6 +123,7 @@ namespace fastAsin
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastAsin Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("asin Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastAsin
|
||||
@@ -141,6 +146,7 @@ namespace fastAtan
|
||||
const std::clock_t time_default = timestamp3 - timestamp2;
|
||||
std::printf("fastAtan Time %d clocks\n", static_cast<unsigned int>(time_fast));
|
||||
std::printf("atan Time %d clocks\n", static_cast<unsigned int>(time_default));
|
||||
|
||||
return time_fast < time_default ? 0 : 1;
|
||||
}
|
||||
}//namespace fastAtan
|
||||
@@ -149,12 +155,14 @@ int main()
|
||||
{
|
||||
int Error(0);
|
||||
|
||||
Error += ::fastCos::perf();
|
||||
Error += ::fastSin::perf();
|
||||
Error += ::fastTan::perf();
|
||||
Error += ::fastAcos::perf();
|
||||
Error += ::fastAsin::perf();
|
||||
Error += ::fastAtan::perf();
|
||||
# ifdef GLM_TEST_ENABLE_PERF
|
||||
Error += ::fastCos::perf();
|
||||
Error += ::fastSin::perf();
|
||||
Error += ::fastTan::perf();
|
||||
Error += ::fastAcos::perf();
|
||||
Error += ::fastAsin::perf();
|
||||
Error += ::fastAtan::perf();
|
||||
# endif
|
||||
|
||||
return Error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user