https://bugs.winehq.org/show_bug.cgi?id=45723
Bug ID: 45723 Summary: Occlusion queries always flush (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: ---
While investigating the D3D performance of Overwatch, one issue that I identified is that Wine does not support queries without flushing. Part of the problem is that while GetData (directx9+) supports passing a flag to control flush, the OpenGL equivalent, glGetQueryObject, has no such flag.
The result is that Wine currently introduces a lot of flushes if the original program uses a lot of queries each frame.
I wrote a sample implementation that uses query buffer objects to prevent the flush. This also allowed me to query for the occlusion query result on the main thread instead of the cs thread, because it is now just reading from a mapped buffer instead of an OpenGL call. The result was a significant improvement (~30%) in fps in my test area, though mileage may vary.
https://bugs.winehq.org/show_bug.cgi?id=45723
--- Comment #1 from Henri Verbeet hverbeet@gmail.com --- Using query buffer objects sounds fine, on the face of it.
https://bugs.winehq.org/show_bug.cgi?id=45723
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- With https://source.winehq.org/git/wine.git/?a=commit;h=580ea44bc65472c0304d74b7e..., is this fixed?
https://bugs.winehq.org/show_bug.cgi?id=45723
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Version|unspecified |3.16 CC| |joseph.kucia@gmail.com Fixed by SHA1| |580ea44bc65472c0304d74b7e87 | |3acfb7f680b85 Status|UNCONFIRMED |RESOLVED
--- Comment #3 from Józef Kucia joseph.kucia@gmail.com --- Fixed.
https://bugs.winehq.org/show_bug.cgi?id=45723
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.18.