http://bugs.winehq.org/show_bug.cgi?id=58893
--- Comment #3 from Rémi Bernon rbernon@codeweavers.com --- It wasn't necessary because we used to check for events regularly even without anything to read from the X pipe. Xlib automatically flushes the output pipe as long as events are being checked.
Now, with the refactoring for ntsync, we instead let wineserver poll the X pipe and notify the client side when events are ready to be read, notifying wineserver back when all events have been processed so it starts polling again.
The client doesn't check for events needlessly anymore, but that also means that Xlib won't be able to flush output automatically in some cases (we do it *after* draining the events but that's sometimes not enough) and until we add some mechanism to poll for output too, we now need to flush requests explicitly when they are issued outside of ProcessEvents and if their effect is meant to be immediate visible.