ref: 5b83c82c3cc13dd2eeec47758fde4cd61d455bd6
parent: 796c801be6b1db3a800a844ab58b9a5454951ace
author: Chris Moeller <kode54@gmail.com>
date: Wed Jun 12 01:56:32 EDT 2013
Fixed intermittent noise with SSE resonant filters by special casing zero length render calls
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -767,7 +767,7 @@
}
currsample = _mm_cvtss_si32( temp1 );
- temp1 = _mm_shuffle_ps( temp1, temp1, _MM_SHUFFLE(0, 0, 0, 2) );
+ temp1 = _mm_shuffle_ps( temp1, data, _MM_SHUFFLE(0, 0, 0, 2) );
prevsample = _mm_cvtss_si32( temp1 );
if (cr) {
@@ -5427,6 +5427,7 @@
static void render(DUMB_IT_SIGRENDERER *sigrenderer, float volume, float delta, long pos, long size, sample_t **samples)
{
+ if (size == 0) return;
if (sigrenderer->n_channels == 1 || sigrenderer->n_channels == 2)
render_normal(sigrenderer, volume, delta, pos, size, samples);
else if (sigrenderer->n_channels == 3)