From db1dd7560e29e5017d8a1309ca16fdeade7560b8 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 30 Jul 2014 09:54:01 -0400 Subject: [PATCH] XAudio2: Use XAUDIO2_VOICE_NOSAMPLESPLAYED when possible. For versions of XAudio2 with an IXAudio2SourceVoice::GetState() that offers a flags parameter, we can use XAUDIO2_VOICE_NOSAMPLESPLAYED, since we don't need this information in our current calls. According to MSDN, this makes the the call about 3x faster. --- src/audio/xaudio2/SDL_xaudio2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/audio/xaudio2/SDL_xaudio2.c b/src/audio/xaudio2/SDL_xaudio2.c index a1a18df6d..abcbdfb48 100644 --- a/src/audio/xaudio2/SDL_xaudio2.c +++ b/src/audio/xaudio2/SDL_xaudio2.c @@ -241,14 +241,14 @@ XAUDIO2_WaitDone(_THIS) SDL_assert(!this->enabled); /* flag that stops playing. */ IXAudio2SourceVoice_Discontinuity(source); #if SDL_XAUDIO2_WIN8 - IXAudio2SourceVoice_GetState(source, &state, 0); + IXAudio2SourceVoice_GetState(source, &state, XAUDIO2_VOICE_NOSAMPLESPLAYED); #else IXAudio2SourceVoice_GetState(source, &state); #endif while (state.BuffersQueued > 0) { SDL_SemWait(this->hidden->semaphore); #if SDL_XAUDIO2_WIN8 - IXAudio2SourceVoice_GetState(source, &state, 0); + IXAudio2SourceVoice_GetState(source, &state, XAUDIO2_VOICE_NOSAMPLESPLAYED); #else IXAudio2SourceVoice_GetState(source, &state); #endif