diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index c2d92ed7c13..102ddc970ef 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -3456,7 +3456,10 @@ static void surface_blt_fbo(IWineD3DDeviceImpl *device, const WINED3DTEXTUREFILT LEAVE_GL(); - if (wined3d_settings.strict_draw_ordering) wglFlush(); /* Flush to ensure ordering across contexts. */ + if (wined3d_settings.strict_draw_ordering + || (dst_location == SFLAG_INDRAWABLE + && dst_surface->container.u.swapchain->front_buffer == dst_surface)) + wglFlush(); context_release(context); }