[Bug 45723] New: Occlusion queries always flush (Overwatch)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Aug 28 19:23:15 CDT 2018


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 at winehq.org
          Reporter: awesie at 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.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list