diff options
Diffstat (limited to 'alc/alu.cpp')
-rw-r--r-- | alc/alu.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/alc/alu.cpp b/alc/alu.cpp index 6e243412..45f518ee 100644 --- a/alc/alu.cpp +++ b/alc/alu.cpp @@ -55,6 +55,7 @@ #include "core/buffer_storage.h" #include "core/context.h" #include "core/cpu_caps.h" +#include "core/cubic_tables.h" #include "core/devformat.h" #include "core/device.h" #include "core/effects/base.h" @@ -211,6 +212,14 @@ inline ResamplerFunc SelectResampler(Resampler resampler, uint increment) #endif return Resample_<LerpTag,CTag>; case Resampler::Cubic: +#ifdef HAVE_NEON + if((CPUCapFlags&CPU_CAP_NEON)) + return Resample_<CubicTag,NEONTag>; +#endif +#ifdef HAVE_SSE + if((CPUCapFlags&CPU_CAP_SSE)) + return Resample_<CubicTag,SSETag>; +#endif return Resample_<CubicTag,CTag>; case Resampler::BSinc12: case Resampler::BSinc24: @@ -262,7 +271,9 @@ ResamplerFunc PrepareResampler(Resampler resampler, uint increment, InterpState { case Resampler::Point: case Resampler::Linear: + break; case Resampler::Cubic: + state->cubic.filter = gCubicSpline.Tab; break; case Resampler::FastBSinc12: case Resampler::BSinc12: |