https://bugs.winehq.org/show_bug.cgi?id=46918
--- Comment #9 from Ethan Lee flibitijibibo@gmail.com --- This seems like a pretty good indicator that SetOutputVoices and SetEffectChain are even more tightly-coupled together than we already knew. What most likely needs to happen is a merge of the all the code in those functions into a single FAudio_INTERNAL_ValidateVoiceOutput so that all the validation happens together, meaning we always have enough information for all the little details in the voices (in this case, whether or not we can lock the XAPO for processing).
The good news is that the mix thread is already smart enough to not do any processing when there’s no output, we just need to be smart enough to not lock the effects until we have those output voices.