diff options
author | Chris Robinson <[email protected]> | 2012-09-16 08:27:50 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-09-16 08:27:50 -0700 |
commit | 79b6d89b3f3f49649e349d8bac1a9bb42ec3f1de (patch) | |
tree | a726f5de2a84682f5d04fd508e23625d0220e018 /Alc/mixer_sse.c | |
parent | 535e8fd0f76ac9e8a9338cfcf873aafc83d42758 (diff) |
Explicitly give the wet buffer 1 channel
Diffstat (limited to 'Alc/mixer_sse.c')
-rw-r--r-- | Alc/mixer_sse.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Alc/mixer_sse.c b/Alc/mixer_sse.c index 47a6e705..d06455dd 100644 --- a/Alc/mixer_sse.c +++ b/Alc/mixer_sse.c @@ -320,7 +320,7 @@ void MixSend_SSE(SendParams *params, const ALfloat *RESTRICT data, ALuint OutPos, ALuint SamplesToDo, ALuint BufferSize) { ALeffectslot *Slot = params->Slot; - ALfloat *RESTRICT WetBuffer = Slot->WetBuffer; + ALfloat (*RESTRICT WetBuffer)[BUFFERSIZE] = Slot->WetBuffer; ALfloat *RESTRICT WetClickRemoval = Slot->ClickRemoval; ALfloat *RESTRICT WetPendingClicks = Slot->PendingClicks; const ALfloat WetGain = params->Gain; @@ -333,12 +333,12 @@ void MixSend_SSE(SendParams *params, const ALfloat *RESTRICT data, for(pos = 0;pos < BufferSize-3;pos+=4) { const __m128 val4 = _mm_load_ps(&data[pos]); - __m128 wet4 = _mm_load_ps(&WetBuffer[OutPos+pos]); + __m128 wet4 = _mm_load_ps(&WetBuffer[0][OutPos+pos]); wet4 = _mm_add_ps(wet4, _mm_mul_ps(val4, gain)); - _mm_store_ps(&WetBuffer[OutPos+pos], wet4); + _mm_store_ps(&WetBuffer[0][OutPos+pos], wet4); } for(;pos < BufferSize;pos++) - WetBuffer[OutPos+pos] += data[pos] * WetGain; + WetBuffer[0][OutPos+pos] += data[pos] * WetGain; if(OutPos+pos == SamplesToDo) WetPendingClicks[0] += data[pos] * WetGain; } |