https://bugs.winehq.org/show_bug.cgi?id=42410
Bug ID: 42410 Summary: Banished (DX11) renders broken geometry (regression) Product: Wine Version: 2.1 Hardware: x86 OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: michael@fds-team.de CC: hverbeet@gmail.com Regression SHA1: e2dbbec1af8ae2ea8813148d56e14c8c211ee334 Distribution: Debian
Created attachment 57222 --> https://bugs.winehq.org/attachment.cgi?id=57222 WINEDEBUG=+d3d,+d3d11 log
During the Wine Staging release testing, I discovered that Banished stopped working in DX11 mode. When you start a new game everything is hidden behind some greenish texture and the game is unplayable. The main menu is also affected and contains random errors, sometimes houses are missing while on other runs the whole screen contains corrupted geometry. Starting a new game is a more reliable indicator though.
Since it worked fine in older versions, I did a bisect and got the following commit:
----- commit e2dbbec1af8ae2ea8813148d56e14c8c211ee334 Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Jan 31 15:47:12 2017 +0100
wined3d: Implement wined3d_buffer_upload_data() on top of wined3d_buffer_upload_ranges().
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org ----
Reverting the patch fixes the issue.
To reproduce the problem you have to apply the following patches on vanilla Wine:
https://github.com/wine-compholio/wine-staging/tree/master/patches/wined3d-c... https://github.com/wine-compholio/wine-staging/tree/master/patches/d3d11-Res...
The first one is required to enable the DX11 mode in the settings and the second one is necessary to see anything. The game uses ResolveSubresource even if you disable Antialiasing (multisampling) in the configuration.
Btw, there is a context_release missing in the patch in case wined3d_buffer_load_location fails. This is not related to the bug though.