https://bugs.winehq.org/show_bug.cgi?id=42979
--- Comment #3 from Henri Verbeet hverbeet@gmail.com --- (In reply to Matteo Bruni from comment #2)
Yeah, that's because currently there are no wined3d_swapchain_present() calls in ddraw games and thus the command stream is allowed to buffer a lot of frames in its queue (i.e. the check at the end of wined3d_cs_emit_present() isn't triggered).
Yeah. Note though that unless DDBLT_ASYNC is set (or implied), blits will have a similar effect. It's a little speculative, but this may come down to correctly implementing DDBLT_WAIT/DDBLT_DONOTWAIT and ddraw_surface7_GetBltStatus().