aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2015-10-29 01:40:23 -0700
committerChris Robinson <[email protected]>2015-10-29 01:40:23 -0700
commit62f1df77d71853f6793db6fe7e4b5dfa20209779 (patch)
treecb2d4d64ca1379691839aec8ca4762588a55db8d
parentf4a53cf6096adb63701ea36cecf941a2eaeb0ff2 (diff)
Do up to 256 samples per reverb inner loop iteration
-rw-r--r--Alc/effects/reverb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Alc/effects/reverb.c b/Alc/effects/reverb.c
index ea958f74..a0f800bb 100644
--- a/Alc/effects/reverb.c
+++ b/Alc/effects/reverb.c
@@ -34,7 +34,7 @@
/* This is the maximum number of samples processed for each inner loop
* iteration. */
-#define MAX_UPDATE_SAMPLES 64
+#define MAX_UPDATE_SAMPLES 256
typedef struct DelayLine
{
@@ -648,7 +648,8 @@ static ALuint CalcLineLength(ALfloat length, ptrdiff_t offset, ALuint frequency,
// All line lengths are powers of 2, calculated from their lengths, with
// an additional sample in case of rounding errors.
- samples = NextPowerOf2(fastf2u(length * frequency)+extra + 1);
+ samples = fastf2u(length*frequency) + extra;
+ samples = NextPowerOf2(samples + 1);
// All lines share a single sample buffer.
Delay->Mask = samples - 1;
Delay->Line = (ALfloat*)offset;