XAudio2.7 bug workaround

This commit is contained in:
Nekotekina 2016-08-06 18:19:38 +03:00
parent 0fcbd43db9
commit b7eda71673
1 changed files with 11 additions and 0 deletions

View File

@ -129,6 +129,17 @@ void XAudio2Thread::xa27_open()
void XAudio2Thread::xa27_add(const void* src, int size) void XAudio2Thread::xa27_add(const void* src, int size)
{ {
XAUDIO2_VOICE_STATE state;
s_tls_source_voice->GetState(&state);
// XAudio 2.7 bug workaround, when it says "SimpList: non-growable list ran out of room for new elements" and hits int 3
if (state.BuffersQueued > 32)
{
LOG_WARNING(GENERAL, "XAudio2Thread : too many buffers enqueued (%d, pos=%u)", state.BuffersQueued, state.SamplesPlayed);
return xa27_flush();
}
XAUDIO2_BUFFER buffer; XAUDIO2_BUFFER buffer;
buffer.AudioBytes = size; buffer.AudioBytes = size;