https://bugs.winehq.org/show_bug.cgi?id=44623
--- Comment #11 from Sveinar Søpler cybermax@dexter.no --- (In reply to Henri Verbeet from comment #10)
The point was not to "just disable vsync", the point was to be able to CHOOSE that option. Like, if i tick OFF a "vsync" option in a game, vsync should be disabled, and it was not.
Well, yes, but your patch does not do that. It will just map intervals larger than 4 (including WINED3D_SWAP_INTERVAL_DEFAULT) to 0, which effectively disables vsync for Direct3D 11 applications.
Interesting that it works as it's supposed to then.
Starting Unigine Heaven DX11, with vsync disabled = disabled. Setting it enabled, will enable it and i get 60fps cap (on my 60Hz monitor). Closing the program, and starting it with vsync enabled will have vsync enabled. Closing and starting it with vsync DISABLED, will leave it disabled, and i get whatever fps my hardware can muster.
This is not the case with wine-3.x, as starting it with vsync disabled will cap at 60 hz, and enable/disable will cap at 60hz. No vsync setting will get me past 60hz.
This is not just with Unigine Valley (so dont blame the app), but all DX11 games/apps i have tried. Vsync ingame options = NOT WORKING.
With swapchain->desc.swap_interval > 4 ? 0 : swapchain->desc.swap_interval; atleast ingame vsync option works as intended.
Just so we are clear: This is with the aforementioned patch for swapchain, which is basically the same as in wine-staging-3.x.
Are you saying that vsync works as its supposed to with just the patch from staging?