From: Matteo Bruni <mbruni@codeweavers.com> I suspect denormals might be the cause of the unexplained slowness mentioned in a few of the later comments on bug 30639. Denormals can be much slower than normal floats, although the penalty is generally significant only on older CPUs. 64-bit processes default to flushing, so this only really matters for 32-bit. --- dlls/dsound/mixer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/dsound/mixer.c b/dlls/dsound/mixer.c index f7192bfb1b6..623c15496a8 100644 --- a/dlls/dsound/mixer.c +++ b/dlls/dsound/mixer.c @@ -767,8 +767,10 @@ static void DSOUND_PerformMix(DirectSoundDevice *device) DWORD CALLBACK DSOUND_mixthread(void *p) { DirectSoundDevice *dev = p; + TRACE("(%p)\n", dev); SetThreadDescription(GetCurrentThread(), L"wine_dsound_mixer"); + _controlfp_s(NULL, _DN_FLUSH, _MCW_DN); while (dev->ref) { DWORD ret; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10048