http://bugs.winehq.org/show_bug.cgi?id=29731
Bug #: 29731 Summary: Corrupted 3d overlay graphics in Temple of Elemental Evil. Product: Wine Version: 1.3.37 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: i30817@gmail.com Classification: Unclassified
Some of the temple of elemental evil overlays 3d over 2D that the game uses for "advanced" effects like flames, particles and spells are misbehaving in recent wine versions.
I am using the fglrx driver: Catalyst™ Version 11.11 Driver Packaging Version 8.911-111025a-128237C-ATI 2D Driver Version 8.91.4 Catalyst™ Control Center Version 2.13 RandR Version 1.3 OpenGL Provider Advanced Micro Devices, Inc. OpenGL Renderer ATI Mobility Radeon HD 4500 Series OpenGL Version 3.3.11251 Compatibility Profile Context
You can test it in the current version by running the game; waiting a while in the menu: some flames in the scrolling background should appear. If the error exists they flicker in and out of existence - they almost can't be seen - (or the demo, i'm not sure if one exists and has a menu)
I have bisected it to:
cf421e1b3f29c0df242f43bc235dab1f7410dd6b is the first bad commit commit cf421e1b3f29c0df242f43bc235dab1f7410dd6b Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Jul 15 01:14:49 2011 +0200
wined3d: Don't set GL_MAP_UNSYNCHRONIZED_BIT for WINED3D_BUFFER_DISCARD maps.
WINED3D_BUFFER_DISCARD means the (current) buffer contents are undefined for subsequent operations. I.e., the map doesn't have to wait for any pending operations to finish, and can just return a new buffer with undefined contents. GL_MAP_UNSYNCHRONIZED_BIT means the driver doesn't wait for previous operations to finish, and just maps a buffer that's potentially in use. Proper synchronization is left to the application. Note that we set both GL_MAP_INVALIDATE_BUFFER_BIT and GL_MAP_UNSYNCHRONIZED_BIT. GL_MAP_INVALIDATE_BUFFER_BIT corresponds to WINED3D_BUFFER_DISCARD, and might cause the driver to return a new buffer, but it's not required to make that optimization.
:040000 040000 073e95d9d973196ef547deddea7652e265e5fa07 553af26c9b506e0694ad55bfb7be96e29db1cf5e M dlls
You must be aware that "before" the effect wasn't correct either; just "differently broken"; where instead of the flame disappearing almost completely there are graphical artefact's - this bisect pinpoints the "graphical artifacts" change, the earliest error (before all looked ok):
68b15bc5ffe6ddf5d08cbc13479eaf718ad5e39f is the first bad commit commit 68b15bc5ffe6ddf5d08cbc13479eaf718ad5e39f Author: Stefan Dösinger stefan@codeweavers.com Date: Tue Apr 19 21:24:26 2011 +0200
wined3d: Give GL_ARB_map_buffer_range another try.
Nvidia's 270.xx.yy driver series fix the glMapBuffer alignment issues that caused major performance problems. If the user is using an older driver we now drop the VBO instead of using doublebuffered loading, which means that we fall back to the current behavior(no dynamic VBO) as needed. Dynamic VBOs are needed on Nvidia drivers for GL_ARB_instanced_arrays.
:040000 040000 0cada15043b731febf2ef2a673aaaecc4af75f8d c474ade74a8db2a9c547674dbb4c809841087a3d M dlls
Before this bisect; the flames and spell effects were ok. After it has the graphical artifacts; And after it (on the first bisect); it has the "flashing" 3d particles/objects. I am i no way saying that the other artifacts are better than the "flashing" (they're not), only that it's not completely fixed yet.
That GL ARB regression seems a duplicate of : http://bugs.winehq.org/show_bug.cgi?id=27600 )
http://bugs.winehq.org/show_bug.cgi?id=29731
paulo i30817@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
http://bugs.winehq.org/show_bug.cgi?id=29731
Vitaliy Margolen vitaliy-bugzilla@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |cf421e1b3f29c0df242f43bc235 | |dab1f7410dd6b
http://bugs.winehq.org/show_bug.cgi?id=29731
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1|cf421e1b3f29c0df242f43bc235 |68b15bc5ffe6ddf5d08cbc13479 |dab1f7410dd6b |eaf718ad5e39f
--- Comment #1 from Henri Verbeet hverbeet@gmail.com 2012-01-28 11:50:42 CST --- It's useful information that cf421e1b3f29c0df242f43bc235dab1f7410dd6b changed the behaviour, but 68b15bc5ffe6ddf5d08cbc13479eaf718ad5e39f is what broke it.
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #2 from Henri Verbeet hverbeet@gmail.com 2012-01-28 11:52:11 CST --- Also, since this helped for some similar bugs, does enabling the StrictDrawOrdering registry key help?
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #3 from paulo i30817@gmail.com 2012-01-28 12:22:29 CST --- in wine 1.3.37 with wine reg add "HKCU\Software\Wine\Appdefaults\toee.exe\Direct3D" /v "StrictDrawOrdering" /t REG_SZ /d "enabled"
it did nothing (same with "UseGLSL" disabled or "AlwaysOffscreen" enabled, haven't tested the others yet)
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #4 from paulo i30817@gmail.com 2012-01-28 14:18:32 CST --- It doesn't help with other artifacts if i revert cf421e1b3f29c0df242f43bc235dab1f7410dd6b from 1.3.37 either.
http://bugs.winehq.org/show_bug.cgi?id=29731
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://download.cnet.com/Th | |e-Temple-of-Elemental-Evil- | |demo/3000-7536_4-10319340.h | |tml CC| |stefan@codeweavers.com
http://bugs.winehq.org/show_bug.cgi?id=29731
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |gyebro69@gmail.com Ever Confirmed|0 |1
--- Comment #5 from GyB gyebro69@gmail.com 2012-05-02 13:42:54 CDT --- I also see the problem with the Nvidia proprietary driver (295.40) and with the GOG.com version of ToEE. The open source Nouveau driver is free from the problem.
wine-1.5.3-73-g93a0ca7
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #6 from GyB gyebro69@gmail.com 2012-05-23 13:02:40 CDT --- Just would like to add that the bug changed a bit between 1.5.3 and 1.5.4: those objects/effects are completely missing (invisible?) now. This is due to http://source.winehq.org/git/wine.git/commitdiff/29893d81621b50e3acca1f2c347...
Tested with Nvidia binary driver 295.49
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #7 from Stefan Dösinger stefan@codeweavers.com 2013-01-07 18:37:22 CST --- I tried to run the demo, but it shows a html page where it tries to persuade me to buy the full game. The "Play Demo" button on that page doesn't work, not even on Windows. Is there a way past this obstacle?
http://bugs.winehq.org/show_bug.cgi?id=29731
--- Comment #8 from Stefan Dösinger stefan@codeweavers.com 2013-01-08 07:01:10 CST --- I bought the game on gog.com, and I can reproduce the bug. This is another game that asks us to throw away the vertex buffer data and then breaks because the data is gone. I suspect it gets away with this on Windows because it sets D3DCREATE_SOFTWARE_VERTEXPROCESSING.
http://bugs.winehq.org/show_bug.cgi?id=29731
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |151407e5bfbd393ed83526649e1 | |b2a62878c7690 Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #9 from Stefan Dösinger stefan@codeweavers.com 2013-01-15 15:04:14 CST --- Should be fixed by 151407e5bfbd393ed83526649e1b2a62878c7690.
http://bugs.winehq.org/show_bug.cgi?id=29731
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org 2013-01-18 14:57:17 CST --- Closing bugs fixed in 1.5.22.