I recently upgraded to FMOD 4.02.10 from 4.02.03 and have started getting deadlocks in my game (game hasn’t crashed but all threads are waiting in critical sections). The only things that have changed (other than the new FMOD) are the sound creation flags from FMOD_HARDWARE to FMOD_SOFTWARE | FMOD_CREATECOMPRESSEDSAMPLE. No other code changes.

If I don’t use FMOD_CREATECOMPRESSEDSAMPLE, the dead locks go away (although the memory usage is very high from all the streams buffers). If I go back to using FMOD_HARDWARE sounds (but still use compressed samples), the deadlocks go away. I do get some occasional error messages from XAudio when using hardware sounds though:

[quote:1j5prhwv][XAUDIO] —————
[XAUDIO] —————
[XAUDIO] Detected an XMA Hardware hang!
[XAUDIO] —————
[XAUDIO] — XMAPlaybackDebugDump —
[XAUDIO] Status bits: 00050000
[XAUDIO] Context 0, hardware index 82
[XAUDIO] SizeRead0 9
[XAUDIO] NumLoops 0
[XAUDIO] ValidBuffer 1
[XAUDIO] SizeWrite 31
[XAUDIO] OffsetWrite 11
[XAUDIO] SizeRead1 0
[XAUDIO] LoopSubframeEnd 0
[XAUDIO] LoopSubframeSkip 0
[XAUDIO] NumSubframeToDecode 8
[XAUDIO] NumSubframesToSkip 0
[XAUDIO] SampleRate 3
[XAUDIO] NumChannels 0
[XAUDIO] ValidWrite 1
[XAUDIO] OffsetRead 146969
[XAUDIO] ErrorStatus 2
[XAUDIO] ErrorSet 1
[XAUDIO] LoopStartOffset 0
[XAUDIO] ParserErrorStatus 0
[XAUDIO] ParserErrorSet 0
[XAUDIO] LoopEndOffset 0
[XAUDIO] PacketMetaData 16
[XAUDIO] CurrentBuffer 0
[XAUDIO] PtrRead0 1e5c4000
[XAUDIO] PtrRead1 00000000
[XAUDIO] PtrWrite 1c1f1080
[XAUDIO] PtrOverlapAdd 1c1f2f80
[XAUDIO] WriteBufferOffsetRead 20
[XAUDIO] StopWhenDone 0
[XAUDIO] InterruptWhenDone 0
[XAUDIO] —————
[XAUDIO] —————
[XAUDIO] Error: >> Breaking to allow examination of the XMA hardware hang <<
[XAUDIO] —————
[XAUDIO] Recovering (all data in these streams will be flushed)…
[XAUDIO] —————

Might the XAudio errors be related to the deadlocks in software mixing mode? Has anyone run into anything like this before?


  • You must to post comments
Showing 0 results
Your Answer

Please first to submit.