[Bug 30019] The Chosen (Well of Souls) demo - terrible performance in mid-game

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Feb 26 14:34:24 CST 2012


http://bugs.winehq.org/show_bug.cgi?id=30019

--- Comment #1 from Stefan Dösinger <stefan at codeweavers.com> 2012-02-26 14:34:24 CST ---
Created attachment 39092
  --> http://bugs.winehq.org/attachment.cgi?id=39092
ddraw: Make D3DVBCAPS_WRITEONLY vertex buffers dynamic

I can reproduce the bug. The main problem is that the app is using a dynamic
buffer, but ddraw.dll doesn't forward this to wined3d correctly. Thus wined3d
ignores the DISCARD and NOOVERWRITE flags, forcing a CPU-GPU sync every time
the buffer is locked. This patch fixes the ddraw side of the problem.

The next issue is that the app sets up the lighting in a way that forces us
into drawStridedSlow("Using software emulation because not all material
properties could be tracked"). This in turn requires a system memory copy of
the dynamic buffer, which is (for some reason) just as slow as a static buffer.
So the attached patch doesn't fix the performance on its own.

The best fix for the lighting problem is a vertex pipeline replacement, which
will not happen for Wine 1.4. The next best fix is not using a VBO for dynamic
vertex buffers if a system memory copy has to be maintained. Once that is done,
6c53871d302cdd257675b88a01a7b6fc4944b06e can be reverted since the
functionality is no longer needed.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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