http://bugs.winehq.org/show_bug.cgi?id=27467
Summary: VSync not working - regression Product: Wine Version: 1.3.22 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv AssignedTo: wine-bugs@winehq.org ReportedBy: dredgingthelake@gmail.com
VSync is not working with games such as The Witcher and Mirror's edge. I ran a regression test and this was the offending commit:
commit 727ecc17145b98e8cfcbc85cdb7a7a5374615b93 Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Mar 7 21:45:27 2011 +0100
winex11.drv: Allow disabling vertical sync using EXT_swap_control.
EXT_swap_control redefines glXSwapIntervalSGI() as glXSwapIntervalEXT() on the current drawable (if any), and glXSwapIntervalEXT() supports disabling vsync.
:040000 040000 35dd6e5575e33c0ecf099c1a2f5a1ddddd7302a6 42758797db159dff1db9eb0d845ba4ace497be0d M dlls
I should note that I am forcing VSync with nvidia-settings and not using the games's in game VSync option. The Witcher doesn't have such an option, and Mirror's Edge VSync option doesn't work.
Perhaps this behaviour is intentional, but I would at least like the ability to override it with a regedit entry or the like. The tearing with VSync off is quite annoying.
http://bugs.winehq.org/show_bug.cgi?id=27467
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Summary|VSync not working - |VSync not working |regression |
--- Comment #1 from Jeff Zaroyko jeffz@jeffz.name 2011-06-13 05:46:17 CDT --- which video card + drivers?
http://bugs.winehq.org/show_bug.cgi?id=27467
--- Comment #2 from DL dredgingthelake@gmail.com 2011-06-13 05:57:49 CDT --- Nvidia GTX275
Using nvidia proprietary drivers. Versions tested include:
256.53, 260.19.44, 270.41.06, 275.09, 275.09.04
Could possibly be a nvidia driver bug, but it's a long standing one if so. VSync works fine with other opengl applications (such as Quake Live)
http://bugs.winehq.org/show_bug.cgi?id=27467
Alex Bradbury asb@asbradbury.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |asb@asbradbury.org
http://bugs.winehq.org/show_bug.cgi?id=27467
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression |
--- Comment #3 from Henri Verbeet hverbeet@gmail.com 2011-06-13 06:40:05 CDT --- Not a regression. That commit allows us to disable vsync again if we enabled it previously, and seems to be working as intended. If there's a bug, it's probably that the nvidia-settings option doesn't do what you want, but that would be a bug for NVIDIA.
If Mirror's Edge vsync option doesn't work, that *is* a Wine bug, provided it works on Windows of course. When did you last test that though? Working vsync in D3D is a relatively recent feature, so it's possible that one was fixed since you last tested it.
http://bugs.winehq.org/show_bug.cgi?id=27467
--- Comment #4 from DL dredgingthelake@gmail.com 2011-06-13 07:07:04 CDT --- Okay, Mirror's Edge built in vsync does work with wine-1.3.22. Turns out that I had tried it with wine-1.3.21, which didn't work.
On the subject of what the vsync commit does, is it meant to override what the driver is setting? Because that doesn't seem like behaviour that would occur under windows. Forcing vsync with the Witcher in the driver control panel on Windows works fine.
http://bugs.winehq.org/show_bug.cgi?id=27467
--- Comment #5 from DL dredgingthelake@gmail.com 2011-06-13 07:38:45 CDT --- Created an attachment (id=35117) --> (http://bugs.winehq.org/attachment.cgi?id=35117) Reverts vsync disable patch
http://bugs.winehq.org/show_bug.cgi?id=27467
--- Comment #6 from DL dredgingthelake@gmail.com 2011-06-13 07:39:56 CDT --- Just tested with nouveau and no tearing occurs (with GLXVblank = 1). So this must be a bug with the nvidia drivers. I'll file a bug with nvidia.
I also posted a patch that reverts the commit for those that don't wish to wait for this to be fixed.
http://bugs.winehq.org/show_bug.cgi?id=27467
--- Comment #7 from Henri Verbeet hverbeet@gmail.com 2011-06-13 07:51:54 CDT --- (In reply to comment #4)
On the subject of what the vsync commit does, is it meant to override what the driver is setting? Because that doesn't seem like behaviour that would occur under windows. Forcing vsync with the Witcher in the driver control panel on Windows works fine.
We just do what the application asked for. I.e., disable vsync if it asked for D3DPRESENT_INTERVAL_IMMEDIATE. The commit in question just allows us to disable vsync again if it was previously enabled. Maybe the nvidia-settings setting doesn't take EXT_swap_control into account, but it's really external to Wine. I.e., the setting should work regardless of what Wine does or doesn't do, so this can't be a Wine bug.
http://bugs.winehq.org/show_bug.cgi?id=27467
Alexey Loukianov mooroon2@mail.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mooroon2@mail.ru
--- Comment #8 from Alexey Loukianov mooroon2@mail.ru 2011-10-19 16:37:22 CDT --- This one should be CLOSED INVALID as it is not a Wine bug.
It is a bug in nVIDIA drivers which had been reported and discussed here: http://www.nvnews.net/vbulletin/showthread.php?t=163438
Actual problem is that nVIDIA allows to set swap_interval to be 0 no matter the value of nvcontrol attribute 'SyncToVBlank' and/or the value of __GL_SYNC_TO_VBLANK variable.
It seems that currently nVIDIA driver only sets internal default value for swap_interval to "1" and it resets to "0" as soon as app creates d3d context with D3DPRESENT_INTERVAL_IMMEDIATE flag.
http://bugs.winehq.org/show_bug.cgi?id=27467
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #9 from Henri Verbeet hverbeet@gmail.com 2011-10-19 16:42:14 CDT --- Yeah, this is invalid.
http://bugs.winehq.org/show_bug.cgi?id=27467
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Henri Verbeet hverbeet@gmail.com 2011-10-19 16:42:25 CDT --- Closing.