- Add simd aligned_vec3 (and sse aligned_dvec3 - 2 x xmm)
- Fast packed_vec3 <=> aligned_vec3 and packed_vec4 <=> aligned_vec4 conversion
- Fast aligned_vec3 <=> aligned_vec4 conversion
- Optimized aligned_mat x aligned_mat and aligned_mat x aligned_vec
- Inverse aligned_mat3 simd version (actually slower than ssid on my computer even it has 30% less instruction ?)
It is used as default configuration for Visual Studio 64 bits compilation (needs Language Extension).
code changes:
- add new qualifiers:
unaligned_simd_highp
unaligned_simd_mediump
unaligned_simd_lowp
- add use_simd and replace is_aligned
(code for ARM NEON is added but not tested)
Fixes for compiler errors when building the tests using Clang 15,
including:
* Use explicit cast to silence Wimplicit-int-float-conversion
warning for conversion of spin count in implementation of
glm::slerp.
* Use GLM_FORCE_MESSAGES instead of removed GLM_MESSAGES for
messages in glm/gtx/hash.hpp, avoiding Wundef warning.
* Encode en dash in URL for Gram-Schmit Process wikipedia page and
replace similar en dashes in comments with regular dashes, to
avoid Winvalid-utf8 warnings in glm/gtx/matrix_factorisation.inl.
* Replace degree sign symbol with text "degrees" to avoid
Winvalid-utf8 warnings in test/gtc/gtc_quaternion.cpp.
* When using Clang, build tests with -Wno-float-equal to silence
Wfloat-equal warning in implementation of glm::vec<L,T,Q>::equal.
* For performance tests in test/gtx/gtx_fast_trigonometry.cpp, add
statement explicitly casting result to void, to silence
Wunused-but-set-variable warnings.
* Add newline at end of test/gtx/gtx_hash.cpp to silence
Wnewline-eof warning.
* Rename namespace _1aga to agarose in test/gtx/gtx_pca.cpp to
avoid Wreserved-identifier warning.
Depending on the developer environment, the output of round for o.5 or -0.5 may be different (according to the GLSL spec). So the test was too restrictive.