[Bug 35776] Crysis is extremely slow in Wine 1.7.14

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jul 13 19:12:35 CDT 2014


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

--- Comment #9 from Kol <kol at MV8660.spb.edu> ---
First, the above debug patch from Comment#7 with WINEDEBUG="fixme+all"
prints nothing about "Filtering redundant WINED3D_MAP_DISCARD".
I tested Crysis 1 running under Wine 1.7.19 with patch from Bug#35718
fixing bug (1). Also double buffering was forced, otherwise the game
crashes on load due to Bug#18799. The framerate was measured by the GPU
benchmark of the game.

I carried out some experiments absolutely not understanding what I do and
found that the cause of bug (2) is connected with the WINED3D_BUFFER_NOSYNC
flag. With commit c1032e977bb9f850e3aea28dd79e3d7c2244cd6c the framerate
is <30 but if
    buffer->flags |= WINED3D_BUFFER_NOSYNC;
is set unconditionally in "wined3d_buffer_map()" function in
"dlls/wined3d/buffer.c" the framerate grows to ~50 FPS as before the commit.
In this case some graphical glitches (green flashes on textures) are seen.

The other way to improve the framerate is to restore a structure which
"wined3d_buffer_map()" has before the commit. If I replace
    else if (!buffer_is_dirty(buffer))
by
    else if (!dirty)
and insert
    BOOL dirty = buffer_is_dirty(buffer);
at the start of "wined3d_buffer_map()", I have 50 FPS again.
In this case the game runs correctly.

Maybe, the bug (2) is specific to my video system (Nvidia driver 331.20,
GTX460), because the slowdown is absent on the Radeon card (Comment#8).

Also I checked that patch "http://bugs.winehq.org/attachment.cgi?id=48915"
from Bug#36787 does not affect the considered problem.

-- 
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