diff --git a/Engine/source/math/isa/neon/mat44.cpp b/Engine/source/math/isa/neon/mat44.cpp new file mode 100644 index 000000000..579cfe097 --- /dev/null +++ b/Engine/source/math/isa/neon/mat44.cpp @@ -0,0 +1,22 @@ +#include "neon_intrinsics.h" +#include "mat44_dispatch.h" + +#include "mat44_impl.inl" + +namespace math_backend::mat44::dispatch +{ + void install_neon() + { + gMat44.transpose = mat44_transpose_impl; + gMat44.inverse = mat44_inverse_impl; + gMat44.affine_inverse = mat44_affine_inverse_impl; + gMat44.mul_mat44 = mat44_mul_mat44_impl; + gMat44.mul_pos3 = mat44_mul_pos3_impl; + gMat44.mul_vec3 = mat44_mul_vec3_impl; + gMat44.mul_float4 = mat44_mul_float4_impl; + gMat44.scale = mat44_scale_impl; + gMat44.get_scale = mat44_get_scale_impl; + gMat44.normalize = mat44_normalize_impl; + gMat44.determinant = mat44_get_determinant; + } +} diff --git a/Engine/source/math/public/math_backend.cpp b/Engine/source/math/public/math_backend.cpp index 81e00b3c7..f8a16c3ed 100644 --- a/Engine/source/math/public/math_backend.cpp +++ b/Engine/source/math/public/math_backend.cpp @@ -91,6 +91,7 @@ void math_backend::install_from_cpu_flags(uint32_t cpu_flags) case backend::neon: float4::dispatch::install_neon(); float3::dispatch::install_neon(); + mat44::dispatch::install_neon(); break; #endif default: