Bug #482
Vulkan's Vsync options are not working properly
Description
When using Vulkan, Triple buffered Vsync eliminates screen tearing but causes noticeable microstutters and generally worse performance that are unrelated to shader cache building. This effect is pronounced regardless of framecap. A game that is able to run 60 FPS cap goes down to 59.50 or even 58.0 momentarily and then bounces back to 60 (the latters behaviour is absent when Cemu is Double buffered). Capping the game to 30 fps results in the game going into 29.50 FPS and then going back up to 30. In both scenarios, be it at 60, 30 or 59.50 or 29.50, the scenes show noticeable stutter when the player is moving before smoothing itself out.
On the other hand, double buffered Vsync does not produce these frame stutters and performance is generally good with smooth frametimes (and this is perceivable immediately when switching between Vsync modes), keeping its 60 or 30 FPS cap properly. However, it does not function properly and results in large amounts screen tearing, as if Vsync was off. Neither option is great for Vulkan users.
These effects are produced regardless of whether Adaptive sync technologies are on or off, and also the games are running in Cemu's "fullscreen" mode (I've inserted quotation marks for fullscreen as I'm unsure Cemu uses an exclusive fullscreen mode or not; if not, exclusive fullscreen should be implemented at some point in the near future if possible).
This issue has been raised by numerous users in Discord with some even reporting a black bar alongside screen tearing when using Vulkan's Double buffered Vsync. This is most prevalent in Tokyo Mirage Sessions when running with the 60FPS mod and Double buffered Vsync, for example.
Unsure if this is related to NVIDIA drivers with respect to Vulkan or not as well.
Serfrost has also stated that this is an issue in one his comments in this Reddit post linked here:
https://www.reddit.com/r/cemu/comments/lb6cre/screen_tearing_in_zelda_botw_version_1225d/ stating that Triple buffered Vsync is not as smooth as Double buffered Vsync.
Related to Bug #395 most likely.
History
Updated by Serfrost over 3 years ago
Should have been resolved with 1.22.7 as mentioned by Exzap. Double Buffer and Match Emulated Display are the ideal options; it's best to avoid Triple Buffering with Cemu's Vulkan for the time being.