diff options
author | Chris Robinson <[email protected]> | 2018-01-07 05:32:07 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2018-01-07 05:32:07 -0800 |
commit | 4cc1c646466737ba411aa23ce4a6116936ada8c2 (patch) | |
tree | 796fc698eb910630ac5f398fe38f26aef2cd456c /Alc/mixer_defs.h | |
parent | 0e1fd34c89d8f09f68c2c243ceccd0dab4f7c6c0 (diff) |
Replace the sinc4 resampler with cubic
Turns out the C version of the cubic resampler is just slightly faster than
even the SSE3 version of the FIR4 resampler. This is likely due to not using a
64KB random-access lookup table along with unaligned loads, both offseting the
gains from SSE.
Diffstat (limited to 'Alc/mixer_defs.h')
-rw-r--r-- | Alc/mixer_defs.h | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/Alc/mixer_defs.h b/Alc/mixer_defs.h index 364bbf7a..fe19cef4 100644 --- a/Alc/mixer_defs.h +++ b/Alc/mixer_defs.h @@ -15,7 +15,7 @@ struct HrtfState; const ALfloat *Resample_copy_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); const ALfloat *Resample_point_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); const ALfloat *Resample_lerp_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); -const ALfloat *Resample_fir4_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); +const ALfloat *Resample_cubic_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); const ALfloat *Resample_bsinc_C(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); @@ -83,13 +83,6 @@ const ALfloat *Resample_lerp_SSE41(const InterpState *state, const ALfloat *rest ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei numsamples); -const ALfloat *Resample_fir4_SSE3(const InterpState *state, const ALfloat *restrict src, - ALsizei frac, ALint increment, ALfloat *restrict dst, - ALsizei numsamples); -const ALfloat *Resample_fir4_SSE41(const InterpState *state, const ALfloat *restrict src, - ALsizei frac, ALint increment, ALfloat *restrict dst, - ALsizei numsamples); - const ALfloat *Resample_bsinc_SSE(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); @@ -119,9 +112,6 @@ void MixRow_Neon(ALfloat *OutBuffer, const ALfloat *Gains, const ALfloat *Resample_lerp_Neon(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei numsamples); -const ALfloat *Resample_fir4_Neon(const InterpState *state, const ALfloat *restrict src, - ALsizei frac, ALint increment, ALfloat *restrict dst, - ALsizei numsamples); const ALfloat *Resample_bsinc_Neon(const InterpState *state, const ALfloat *restrict src, ALsizei frac, ALint increment, ALfloat *restrict dst, ALsizei dstlen); |