diff options
Diffstat (limited to 'Alc/mixer_neon.c')
-rw-r--r-- | Alc/mixer_neon.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Alc/mixer_neon.c b/Alc/mixer_neon.c index 73395aeb..8c96aef1 100644 --- a/Alc/mixer_neon.c +++ b/Alc/mixer_neon.c @@ -144,7 +144,7 @@ void Mix_Neon(const ALfloat *data, ALuint OutChans, ALfloat (*restrict OutBuffer } } -void MixRow_Neon(ALfloat *OutBuffer, const ALfloat *Gains, ALfloat (*restrict data)[BUFFERSIZE], ALuint InChans, ALuint BufferSize) +void MixRow_Neon(ALfloat *OutBuffer, const ALfloat *Gains, const ALfloat (*restrict data)[BUFFERSIZE], ALuint InChans, ALuint InPos, ALuint BufferSize) { float32x4_t gain4; ALuint c; @@ -159,12 +159,12 @@ void MixRow_Neon(ALfloat *OutBuffer, const ALfloat *Gains, ALfloat (*restrict da gain4 = vdupq_n_f32(gain); for(;BufferSize-pos > 3;pos += 4) { - const float32x4_t val4 = vld1q_f32(&data[c][pos]); + const float32x4_t val4 = vld1q_f32(&data[c][InPos+pos]); float32x4_t dry4 = vld1q_f32(&OutBuffer[pos]); dry4 = vmlaq_f32(dry4, val4, gain4); vst1q_f32(&OutBuffer[pos], dry4); } for(;pos < BufferSize;pos++) - OutBuffer[pos] += data[c][pos]*gain; + OutBuffer[pos] += data[c][InPos+pos]*gain; } } |