aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer/mixer_c.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2018-12-31 04:12:20 -0800
committerChris Robinson <[email protected]>2018-12-31 04:12:20 -0800
commit5a9a1c8d7d97f589d978ff00859797e76b087a73 (patch)
tree3130e5c1f0c8d6e5257847c75ad3ddec4ddd3273 /Alc/mixer/mixer_c.cpp
parent5e03941701c112083b5dce14257fd8c51262f04f (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.cpp15
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;
}
}