diff options
author | Chris Robinson <[email protected]> | 2015-10-25 14:07:58 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2015-10-25 14:07:58 -0700 |
commit | 90349b384fe538b0d160b5ff0485d6235b1c6f9d (patch) | |
tree | 1acef7723db132f28b3f3c4b36f5616e35ff0485 /Alc/mixer_sse2.c | |
parent | fc03a955e9dd58e11cb3f165423e1629d5f07935 (diff) |
Use the correct position in the SSE resamplers for left-over processing
Diffstat (limited to 'Alc/mixer_sse2.c')
-rw-r--r-- | Alc/mixer_sse2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Alc/mixer_sse2.c b/Alc/mixer_sse2.c index 1787c196..a134b9a6 100644 --- a/Alc/mixer_sse2.c +++ b/Alc/mixer_sse2.c @@ -63,7 +63,10 @@ const ALfloat *Resample_lerp32_SSE2(const ALfloat *src, ALuint frac, ALuint incr _mm_store_ps(pos_.f, _mm_castsi128_ps(pos4)); } - pos = pos_.i[3]; + /* NOTE: These four elements represent the position *after* the last four + * samples, so the lowest element is the next position to resample. + */ + pos = pos_.i[0]; frac = _mm_cvtsi128_si32(frac4); for(;i < numsamples;i++) |