Why is the correct solution to modify wglFlush()/wglFinish(), rather than modifying ddraw to do a full present?
I am not sure how that can be changed in ddraw at all, only in wined3d in theory as in this case ddraw correctly hits wined3d swapchain present path? It seems to me there is nothing wrong in ddraw or wined3d. The issue comes from child window rendering implementation in winex11.drv and is specific to winex11, I am not sure how and why that should be detected and worked around in d3d side?
Yes, or wined3d, I'm using metonymy to some degree. The point is, if what we need is for the image to get on screen, should we be actually presenting it, rather than just flushing?
E.g. have we tested that wglFlush() is sufficient to get an image on screen with a bare GL application?