https://bugs.winehq.org/show_bug.cgi?id=39080
Bug ID: 39080 Summary: The Settlers: Rise of an Empire: world geometry broken Product: Wine Version: 1.7.49 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com Distribution: ---
Created attachment 52067 --> https://bugs.winehq.org/attachment.cgi?id=52067 terminal output
I believe this is different from bug #39079, because the problem isn't present in the demo version. It was one of the updates to the game (patch 1.6 or 1.7) which "introduced" the problem under Wine. World geometry (terrain rendering) is severely broken in many areas, most noticeable in the vicinity of water and hills. It's as if part of the terrain would be rendered higher or lower than the rest of the world, but you should see the attached screenshot.
Disabling GLSL or reducing graphical details to the minimum doesn't help. The problem is present with nouveau and nvidia blob 340.76 too. Wine 1.4/1.6 also have the problem.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #1 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 52068 --> https://bugs.winehq.org/attachment.cgi?id=52068 screenshot
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #2 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 52069 --> https://bugs.winehq.org/attachment.cgi?id=52069 screenshot #2
In many places where terrain is broken there are big black "patches". It's kinda similar to bug #28916, except that that bug has already been fixed in recent Wine.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- The workaround from bug #39079 (reducing shader quality) doesn't help with the broken terrain rendering.Water looks a bit better, but those black patches as well as the broken hills remained.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #4 from Béla Gyebrószki gyebro69@gmail.com --- Still an issue in wine-1.9.7-133-gad7cb43.
OpenGL vendor string: nouveau OpenGL renderer string: Gallium 0.4 on NV92 OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.3.0-devel OpenGL core profile shading language version string: 3.30
https://bugs.winehq.org/show_bug.cgi?id=39080
Jaime Rave jaimerave@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jaimerave@gmail.com
--- Comment #5 from Jaime Rave jaimerave@gmail.com --- Still a problem in wine-1.9.11-27-gc89dc58, MacOS 10.11.5 and NVIDIA GeForce GT 750M
https://bugs.winehq.org/show_bug.cgi?id=39080
Aaron Franke arnfranke@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |arnfranke@yahoo.com
--- Comment #6 from Aaron Franke arnfranke@yahoo.com --- Confirmed for Wine 2.5. Problem occurs on both 32-bit and 64-bit wineprefixes. My system: Xubuntu 16.04 LTS 64-bit, i5-6600k, Nvidia GTX 770 2GB with 375.39 drivers.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #7 from Aaron Franke arnfranke@yahoo.com --- Image showing the issue: https://appdb.winehq.org/appimage.php?iId=51054
https://bugs.winehq.org/show_bug.cgi?id=39080
Sławek slawek@lach.art.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |slawek@lach.art.pl
--- Comment #8 from Sławek slawek@lach.art.pl --- I don't know this bug is related, but on Intel graphic card (on Lenovo Ideapad 100) face on portals is damaged. People are looking like there are injury (there's no skins on some part of face and bones are visible).
I will attach screenshot in near future. Tell me if I have to do something, like collect data about my system/hardware or open new bug report.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #9 from Sławek slawek@lach.art.pl --- Created attachment 59878 --> https://bugs.winehq.org/attachment.cgi?id=59878 Portairs render error
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #10 from Aaron Franke arnfranke@yahoo.com --- Album with each character's broken faces https://imgur.com/a/46qq4
https://bugs.winehq.org/show_bug.cgi?id=39080
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #11 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with plain current wine (4.0-rc7)?
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #12 from Béla Gyebrószki gyebro69@gmail.com --- Still present in Wine 4.0-rc7.
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 730/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 415.22.05
https://bugs.winehq.org/show_bug.cgi?id=39080
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #13 from Paul Gofman gofmanp@gmail.com --- Created attachment 63336 --> https://bugs.winehq.org/attachment.cgi?id=63336 wined3d: Ignore multisample quality for MULTISAMPLE_NONE in context_find_fbo_entry().
I tested the demo and could reproduce broken faces but not broken terrain. I did not go deep inside the game though.
At least broken faces are because the game creates depth / stencil surface with no multisample, but with multisample quality 1:
0009:trace:d3d9:d3d9_device_CreateDepthStencilSurface iface 0x409e6c8, width 512, height 512, format 0x4b, multisample_type 0, multisample_quality 1.
And later:
003a:warn:d3d:context_find_fbo_entry Color multisample type 0 and quality 0, depth stencil has 0 and 1, disabling ds buffer.
Multisample quality check should probably be ignored for no multisample. I am attaching a patch (with a test which I run on Windows 7) which fixes the issue with faces for me. It might be that issue with terrain is fixed this way too (the pictures attach to the bug may be explained by missing Z-test also), but I could not check that as did not find issue with terrain on demo.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #14 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Paul Gofman from comment #13)
Created attachment 63336 [details] wined3d: Ignore multisample quality for MULTISAMPLE_NONE in context_find_fbo_entry().
I tested the demo and could reproduce broken faces but not broken terrain. I did not go deep inside the game though.
The patch indeed fixes the issue with broken faces, but doesn't resolve the broken terrain bug. The later isn't present in the demo version.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #15 from Paul Gofman gofmanp@gmail.com --- Created attachment 63342 --> https://bugs.winehq.org/attachment.cgi?id=63342 wined3d: Return stream frequency of 1 if it was not set.
I tested full game (purchased 'Gold Edition' from GoG.com). The game is using the value returned by GetStreamSourceFreq() to restore the frequency after it has used its specific one, like this: --- 0009:trace:d3d9:d3d9_device_GetStreamSourceFreq iface 0x409d408, stream_idx 0, freq 0x32efe8. 0009:trace:d3d:wined3d_device_get_stream_source_freq device 0x418b420, stream_idx 0, divider 0x32efe8. 0009:trace:d3d:wined3d_device_get_stream_source_freq Returning 0. 0009:trace:d3d9:d3d9_device_SetStreamSourceFreq iface 0x409d408, stream_idx 0, freq 1073741833. 0009:trace:d3d:wined3d_device_set_stream_source_freq device 0x418b420, stream_idx 0, divider 0x40000009. 0009:trace:d3d9:d3d9_device_GetStreamSourceFreq iface 0x409d408, stream_idx 1, freq 0x32efdc. 0009:trace:d3d:wined3d_device_get_stream_source_freq device 0x418b420, stream_idx 1, divider 0x32efdc. 0009:trace:d3d:wined3d_device_get_stream_source_freq Returning 0. 0009:trace:d3d9:d3d9_device_SetStreamSourceFreq iface 0x409d408, stream_idx 1, freq 2147483649. 0009:trace:d3d:wined3d_device_set_stream_source_freq device 0x418b420, stream_idx 1, divider 0x80000001. 0009:trace:d3d9:d3d9_device_SetStreamSourceFreq iface 0x409d408, stream_idx 0, freq 0. 0009:trace:d3d:wined3d_device_set_stream_source_freq device 0x418b420, stream_idx 0, divider 0. 0009:warn:d3d:wined3d_device_set_stream_source_freq Divider is 0, returning D3DERR_INVALIDCALL. 0009:trace:d3d9:d3d9_device_SetStreamSourceFreq iface 0x409d408, stream_idx 1, freq 0. 0009:trace:d3d:wined3d_device_set_stream_source_freq device 0x418b420, stream_idx 1, divider 0. 0009:warn:d3d:wined3d_device_set_stream_source_freq Divider is 0, returning D3DERR_INVALIDCALL. ---
So the the device has a leftover frequency for consequent drawing. Attached patch fixes the issue for me.
https://bugs.winehq.org/show_bug.cgi?id=39080
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #63342|0 |1 is obsolete| |
--- Comment #16 from Paul Gofman gofmanp@gmail.com --- Created attachment 63343 --> https://bugs.winehq.org/attachment.cgi?id=63343 Return stream frequency of 1 if it was not set.
This is a better version of the patch fixing terrain rendering. This version does not break existing tests and adds a new one.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #17 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Paul Gofman from comment #16)
Created attachment 63343 [details] Return stream frequency of 1 if it was not set.
This is a better version of the patch fixing terrain rendering. This version does not break existing tests and adds a new one.
The patch works here as well, thank you.
https://bugs.winehq.org/show_bug.cgi?id=39080
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=39080
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/wined3d-multisam | |ple-quality
--- Comment #18 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Also Requires https://github.com/wine-staging/wine-staging/tree/master/patches/wined3d-str...
https://bugs.winehq.org/show_bug.cgi?id=39080
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |44f5ca7f88f96b359834d2bef67 | |0f5d84a25b86c Status|STAGED |RESOLVED
--- Comment #19 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Both patches to fix this issue have been accepted.
https://source.winehq.org/git/wine.git/?a=commit;h=44f5ca7f88f96b359834d2bef...
https://source.winehq.org/git/wine.git/?a=commit;h=53b6e77a5d9fa7c7b331c49d4...
https://bugs.winehq.org/show_bug.cgi?id=39080
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.2.
https://bugs.winehq.org/show_bug.cgi?id=39080
--- Comment #21 from Aaron Franke arnfranke@yahoo.com --- Tested using Wine 4.9, I can confirm this bug is fixed. Thanks very much!