https://bugs.winehq.org/show_bug.cgi?id=45901
Bug ID: 45901 Summary: Avoid GPU synchronization due to GPU-CPU transfer (Overwatch) Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: awesie@gmail.com Distribution: ---
Created attachment 62422 --> https://bugs.winehq.org/attachment.cgi?id=62422 Patch to avoid GPU synchronization
One performance gap with Overwatch on Wine + AMD + Mesa is GPU synchronization due to transfers from GPU texture to CPU texture. By using PBOs and glReadPixels with GL_PIXEL_PACK_BUFFER, we can avoid this synchronization leading to improved performance.
The attached patch is one approach to resolve the performance issue, but I am not sure that it is the best way. Feedback is appreciated.
Also attached is before and after screenshots with Mesa's HUD. You can observe that the buffer wait time decreases with the patched version. Both the before and after screenshots are on wine-staging master plus my patch for 45723.