https://bugs.winehq.org/show_bug.cgi?id=39744
--- Comment #9 from Andrew Eikum aeikum@codeweavers.com --- (In reply to NoYzE from comment #8)
But is it normal to need 200ms with pulse instead of the prior 30ms with alsa?
The short answer is there's no actual latency difference.
In winepulse, we don't do any local buffering. We depend on PulseAudio to give us the full buffer size that the application requested. In winealsa, however, we do buffer locally because ALSA makes no guarantees about the allocated buffer size. That means the small PA latency setting will be absorbed by winealsa's local buffer, instead of causing underruns like it does with winepulse.
It's possible that winepulse should buffer locally, too, to account for setups like yours. On the other hand, maybe users are expected to let PA do its latency calculations itself, and so testing with that environment variable set is invalid. I don't know.
I've forgotten (or never knew) the precise details of why it helped, but setting the environment variable when using winealsa with PulseAudio would change the buffering characteristics of the alsa-pulse plugin and help prevent underruns. With winepulse, it's no longer needed since the alsa-pulse plugin is no longer used.