diff options
Diffstat (limited to 'alc/mixer/mixer_neon.cpp')
-rw-r--r-- | alc/mixer/mixer_neon.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/alc/mixer/mixer_neon.cpp b/alc/mixer/mixer_neon.cpp index 40cbdb23..c6ea2c60 100644 --- a/alc/mixer/mixer_neon.cpp +++ b/alc/mixer/mixer_neon.cpp @@ -276,15 +276,16 @@ void Mix_<NEONTag>(const ALfloat *data, const al::span<FloatBufferLine> OutBuffe } template<> -void MixRow_<NEONTag>(ALfloat *OutBuffer, const ALfloat *Gains, - const al::span<const FloatBufferLine> InSamples, const ALsizei InPos, const ALsizei BufferSize) +void MixRow_<NEONTag>(ALfloat *OutBuffer, const al::span<const ALfloat> Gains, + const ALfloat *InSamples, const ALsizei InStride, const ALsizei BufferSize) { ASSUME(BufferSize > 0); - for(const FloatBufferLine &input : InSamples) + for(const ALfloat gain : Gains) { - const ALfloat *RESTRICT src{al::assume_aligned<16>(input.data()+InPos)}; - const ALfloat gain{*(Gains++)}; + const ALfloat *RESTRICT src{InSamples}; + InSamples += InStride; + if(!(std::fabs(gain) > GAIN_SILENCE_THRESHOLD)) continue; |