Do you have "Allow Flipping" enabled? See: https://github.com/doitsujin/dxvk/issues/267#issuecomment-387304619
Vsync is supported in DXVK and works fine on my end (AMD), not sure why it doesn't work for you.
@zaps166 Toggling "Allow Flipping" on/off doesn't seem to make a difference for me
when my fps is at 60, I get no tearing, but when my fps drops below 60 I regularly experience tearing.
I also have nvidia. The behavior which you described (without compositor) I have when "Flipping" is OFF or when game window is not full screen. It works the same on all OpenGL and Vulkan software (including DXVK).
On nvidia tearing will also happen when you don't have full screen.
Hmm, well I've tried every combination of windowed/fullscreen flipping/no flipping and get the same behavior in all cases.
Do you have any settings in your xorg.conf or in nvidia-settings that might affect this? I have no xorg.conf whatsoever
Weird. Could you try other games or try native software (e.g. examples)?
Which WM do you use? I use Xfwm4 (or sometimes Openbox).
Currently driver 396.18.11 is recommended for Vulkan software.
/etc/X11/xorg.conf.d/10-nvidia.conf (without commented lines):
Section "OutputClass"
Identifier "Nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "TripleBuffer" "1"
Option "Coolbits" "12"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
EndSection
TripleBuffer is for OpenGL only, doesn't work for Vulkan.
Unfortunately Vulkan triple buffer is not supported on Nvidia Linux drivers yet, so if your framerate is below 60 FPS, you'll get 30 FPS (otherwise you'll have tearing as currently you have).
I think I have actually figurued out the root cause: multiple monitors.
When I disable my second monitor, I get exactly the behavior you describe. Once I enable my second monitor, I get tearing as I've described no matter what I do.
Right, I also can reproduce it on two screens. Maybe it is a driver bug.
You can try to enable "Force Full Composition Pipeline" in nvidia-settings, maybe it'll help, but it can slow down gameplay ane make it not smooth is some cases.
You can also try the old mode: Option "UseNvKmsCompositionPipeline" "false" in xorg.conf, because since nvidia 390.xx it utilizes GPU on idle.
The mod/app called dynamic performance tuner on nexus works with dxvk quite well to help limit framerate and improve performance. If you want you can use that.
I still suffer from certain savegames (random) refusing to get past the loading screen in FO4, so I have given up testing for the time being until more feedback from other people is provided. F4SE btw does not fully initialize but it can be used to launch the game.
Because it fits the subject... the VSync control from within EVE Online does not work correctly. The game allows for the following settings:
Interval Immediate - meaning VSync is off
Interval One - 60fps
Interval Two - 30fps
Interval Three - 20fps
Interval Four - 12.5fps
These settings work for DX9 and DX11 over OpenGL. With DXVK however do Interval One to Four all result in only a 60fps cap, meaning, "Interval Two" for example produces 60fps instead of the expected 30fps.
is it possible to just integrate a fps limiter to dxvk so we can enabled it with environmental argument? that would be amazing because some games simply have no framerate limiting function!
With normal wine we use to be able to use libstrangle which was fantastic! but doesn't work with Vulkan obviously.
VSYNC taxes fps and causes stutter in all my tests. On top of adding 20-40ms to latency. Its not a good solution.
I'm also seeing this in non-dxvk games like Albion Online so I'm leaning towards it being an Nvidia driver issue too.
@sdack e615fc19a91891828919e0029d73cec77553636a implements the Vsync intervals.
Vsync not having any effect besides limiting the framerate sounds like a driver issue, since the framerate limit clearly indicates that DXVK does enable Vsync correctly.
I see there's a similar discussion here but I am unable to reopen that issue, so I'm making a new one.
I having vsync issues on nvidia. I'm playing Fallout 4, GTA V, and BeamNG.drive. All of these games exhibit similar behavior for me: when my fps is at 60, I get no tearing, but when my fps drops below 60 I regularly experience tearing.
If I turn off vsync in these games, the framerate will fly up above 60fps at times, so it does seem that enabling vsync does at the very least lock the fps to 60.
I have tried running my games in an environment with no compositor whatsoever, so it cannot be related to that.
System info
Also, thank you for the work you're doing, this is an amazing project. Please let me know if there is further information I can provide that may help diagnose this issue.