diff options
author | Chris Robinson <[email protected]> | 2018-12-31 04:12:20 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2018-12-31 04:12:20 -0800 |
commit | 5a9a1c8d7d97f589d978ff00859797e76b087a73 (patch) | |
tree | 3130e5c1f0c8d6e5257847c75ad3ddec4ddd3273 /Alc/mixer/mixer_c.cpp | |
parent | 5e03941701c112083b5dce14257fd8c51262f04f (diff) |
Further improve HRTF methods to avoid masking in the inner loops
Diffstat (limited to 'Alc/mixer/mixer_c.cpp')
-rw-r--r-- | Alc/mixer/mixer_c.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/Alc/mixer/mixer_c.cpp b/Alc/mixer/mixer_c.cpp index d98b8e2e..22d3642e 100644 --- a/Alc/mixer/mixer_c.cpp +++ b/Alc/mixer/mixer_c.cpp @@ -107,24 +107,23 @@ static inline void ApplyCoeffs(ALsizei Offset, ALfloat (&Values)[HRIR_LENGTH][2] const ALsizei IrSize, const ALfloat (&Coeffs)[HRIR_LENGTH][2], const ALfloat left, const ALfloat right) { - ALsizei off{Offset&HRIR_MASK}; - ALsizei count{mini(IrSize, HRIR_LENGTH - off)}; - + ASSUME(Offset >= 0 && Offset < HRIR_LENGTH); ASSUME(IrSize >= 2); ASSUME(&Values != &Coeffs); - ASSUME(count > 0); + ALsizei count{mini(IrSize, HRIR_LENGTH - Offset)}; + ASSUME(count > 0); for(ALsizei c{0};;) { for(;c < count;++c) { - Values[off][0] += Coeffs[c][0] * left; - Values[off][1] += Coeffs[c][1] * right; - ++off; + Values[Offset][0] += Coeffs[c][0] * left; + Values[Offset][1] += Coeffs[c][1] * right; + ++Offset; } if(c >= IrSize) break; - off = 0; + Offset = 0; count = IrSize; } } |