https://bugs.winehq.org/show_bug.cgi?id=43265
Bug ID: 43265 Summary: Regression makes Steam game Rabi-Ribi run too fast Product: Wine Version: 2.11 Hardware: x86 URL: http://store.steampowered.com/app/400910/RabiRibi/ OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: dark.shadow4@web.de CC: hverbeet@gmail.com Regression SHA1: e75bc6228ebcbdc1a3877a6ac6954611dedf8a71 Distribution: ArchLinux
The Steam game Rabi-Ribi, probably DX9, runs to fast when running in recent wine. Normally the game should be limited to 60 FPS, but it runs uncapped. Since the games logic seems tied to the FPS, this makes the game run way faster than it should.
Interesting to note, the game features a "144Hz Monitor" mode. This mode doesn't run uncapped, but since my monitor can't do 144Hz it in return runs about half it's original speed.
Bisected to commit e75bc6228ebcbdc1a3877a6ac6954611dedf8a71 Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Mar 23 23:58:10 2017 +0100
winex11: Use GLX_OML_sync_control to synchronise buffer swaps with X11DRV_FLUSH_GL_DRAWABLE requests.
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
When reverting the commit, it works fine again. Reverts cleanly on current master.
https://bugs.winehq.org/show_bug.cgi?id=43265
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=43265
Wyrex wyrex@openmailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wyrex@openmailbox.org
--- Comment #1 from Wyrex wyrex@openmailbox.org --- This also happens in Root Double (https://bugs.winehq.org/show_bug.cgi?id=42165#c5). Workaround is to disable DRI3 with LIBGL_DRI3_DISABLE=1, or to revert that commit.
https://bugs.winehq.org/show_bug.cgi?id=43265
--- Comment #2 from Henri Verbeet hverbeet@gmail.com --- It seems fairly likely that this is a driver issue of some kind. Which drivers (Mesa, DDX, kernel) and version of X are you using? Does the workaround from comment 2 work for you? Is this issue specific to certain applications, or does the swap interval not get applied in any Direct3D 8/9 application? (And it would be good to confirm with +d3d9,+d3d8 that this is indeed using Direct3D 8 or 9 presents instead of e.g. DirectDraw, although the Steam page does support this being d3d9.)
https://bugs.winehq.org/show_bug.cgi?id=43265
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Created attachment 58610 --> https://bugs.winehq.org/attachment.cgi?id=58610 Steam log of the game (40MB uncompressed)
You mean the workaround from Comment 1? Yes, it works with LIBGL_DRI3_DISABLE=1.
System info: -Linux 4.11.7, DRM 3.10.0 -Radeon R9 285 -Mesa 17.2.0-devel 93679.f78aa2c986 -xorg-server 1.19.3-2
Is this issue specific to certain applications, or does the swap interval not get applied in any Direct3D 8/9 application?
I don't know how to test that, to be honest. It's the first application I had that issue with.
Log proves it's a DX9 game, for completeness log attached.
https://bugs.winehq.org/show_bug.cgi?id=43265
--- Comment #4 from Fabian Maurer dark.shadow4@web.de --- Sorry for the doublepost, thought I could attach the apitrace. It's too big, so uploaded here: http://www.mediafire.com/file/y00a3tx1rly1yi4/apitraces-rabirib.7z (36MB compressed, 250MB uncompressed). Contains an apitrace for wine-git and one for wine-git with reverted commit.
Seems not like a driver issue to me. The working one is, well working. The apitrace from the broken version however shows only a single frame, and replaying shows only a blackscreen. Can someone with proprietary drivers confirm? If the closed source driver can't replay it either, it should mean that it's a wine bug.
https://bugs.winehq.org/show_bug.cgi?id=43265
--- Comment #5 from Henri Verbeet hverbeet@gmail.com --- (In reply to Fabian Maurer from comment #4)
Seems not like a driver issue to me. The working one is, well working. The apitrace from the broken version however shows only a single frame, and replaying shows only a blackscreen.
There's a known issue with apitrace not handling glXSwapBuffersMscOML() correctly.
https://bugs.winehq.org/show_bug.cgi?id=43265
--- Comment #6 from Henri Verbeet hverbeet@gmail.com --- Should be fixed by commit 147f9341031b7a808d18a2d3545e19fdd2c7c92a, please retest.
https://bugs.winehq.org/show_bug.cgi?id=43265
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- Indeed, the commit fixes the issue. Thank you.
https://bugs.winehq.org/show_bug.cgi?id=43265
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |147f9341031b7a808d18a2d3545 | |e19fdd2c7c92a
https://bugs.winehq.org/show_bug.cgi?id=43265
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |winex11.drv
https://bugs.winehq.org/show_bug.cgi?id=43265
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.13.