I have been experiencing a strange little issue with my system and it has been bothering me for a while now. I first noticed it while playing Guild Wars 2.
Issue #1:
In Guild Wars 2, you can move the camera by holding the left or right mouse button down and then moving the mouse. Every time I press the mouse button or release it there is a very small stutter. MangoHud shows that the FPS drops to 0 at that moment.
Issue #2:
I also noticed this exact stutter when moving my cursor from the second monitor to the main monitor on which the game is running in fullscreen, even without clicking the mouse button. This issue is not exclusive to Guild Wars 2, it also occurs with other games.
I did some troubleshooting and found the following:
It only happens with a Wayland session; with X11, this is not an issue.
It only happens in fullscreen or borderless window mode, not windowed mode.
It doesn’t matter whether it’s a native game or a game using Proton.
It only happens with Vulkan games, OpenGL games are unaffected.
When I use gamescope, everything is fine.
It only happens with my RX 6700 XT. When I switch to my old RX 480, everything is fine.
I also tried disabling adaptive sync, matching the refresh rates of my monitors, and using only one monitor, but the issue persisted.
Has anyone else with an RDNA2 card experienced a similar issue? What is even causing the issue? Wayland, KWin, RADV, Mesa, the kernel? Any help or clues would be appreciated.
Is this the standalone version (with Lutris/Heroic Game Launcher/etc.?) or the version on steam? Did you try it with the Zen Version or the Mainline Kernel and did you try it with the LTS Kernel?
Edit:
What are your in-game settings? Something like this? (Unfortunately, the screenshot is a bit old since I don’t play GW2 anymore/I deleted my account)
I am using the standalone version with Faugus Launcher and Proton-EM. But since this also happens with native Linux games I don’t think this matters much.
I tried both the Zen kernel and the LTS kernel, no difference.
I also tried SnowRunner where you can also move the camera by clicking the mouse button and the stutter also appeared there.
A friend of mine that runs Bazzite with an Nvidia GPU confirmed that this also happens on his system. So I think it is not a problem with the graphics driver or Vulkan driver.
Now here is the funny thing that we discovered: We both enabled the shake pointer option in KDE, where your cursor grows while shaking the cursor. When we move the cursor from our second monitor to the game on the main monitor while the cursor is enlarged, the stutter is gone. Both games, SnowRunner and Guild Wars 2, have custom cursor designs that don’t get applied when your cursor is enlarged with this option. So could this be an issue with hardware/software cursors related to Vulkan?
We also tried the latest Minecraft snapshot that implemented Vulkan rendering. The weird thing is, that Minecraft doesn’t have a custom cursor and I still had the issue that went away with the enlarged cursor, but my Bazzite friend did not experience this issue with the Vulkan Minecraft at all.
It also seems that VSync has something to do with it. With VSync disabled, the stutter appears in both ways, moving out of a game with the cursors and moving to the game with the cursor. But with VSync enabled in the game’s settings, the stutter only appears when moving to the game with the cursor. Also with VSync enabled, when moving the camera in GW2 or SnowRunner, the stutter only appears when releasing the mouse button or rather when the cursor becomes visible again.
Could you please provide the output of inxi -Fxxc0z?
How did you disable Adaptive Sync? Have you disabled it in software and/or in the settings menu of your monitor (or monitors) (similar to FreeSync/G-Sync)?
I have disabled Adaptive Sync in software as well as in my monitors settings menu. I forgot to say I also updated to the latest BIOS and I tried it with reBAR enabled and disabled.
This is the output of inxi -Fxxc0z:
Also try to disconnect the secondary monitor (DisplayPort cable). It’s best to do this after turning off the computer for a moment and then check to see if it’s improved.
Sometimes different refresh rates and resolutions can cause these slight stutters. At least based on my experience with a Full HD monitor at 60 Hz and a WQHD monitor at 144 Hz. In the end, though, the problem might actually be the different refresh rates (maybe).
I tried both monitors with 120 Hz before and right now I tried with only one monitor again after turning off the computer. But sadly, no change.
The weird thing is, it happens with the RX 6700 XT, but not when I swap to my RX 480. And my friend running Bazzite is also experiencing this with his RTX 4070 Ti Super. When I put my 6700 XT into my older system that had the RX 480 in, then it also happens there. Maybe this is something that only happens with more modern GPUs, but not with older ones?
That’s really strange. I can tell you that I don’t experience this with an RX 7900 XTX and two monitors (connected via DP) running at WQHD at 144 Hz. There’s no stuttering on the desktop or in games, whether they’re running naively or via Proton (GE-Proton).
Right now, I have no idea what else could be causing it.
I could try it with an RX 5700 XT if you want next week.
Edit 2:
I ended up doing it tonight after all. Aside from the significant drop in performance, the deterioration in graphics quality and having to lower the settings. I sadly couldn’t find any stuttering. Here are a few screenshots of some games I tested. Frametimes are a bit higher but okay (it feels smooth).
Thank you for your efforts! Don’t get me wrong. The performance overall is not the problem, that is totally fine. It is just a small stutter, or shall I call it freeze, for like 1 ms when the cursor appears or disappears from a game.
I recorded 2 videos where I move the cursor in and out of the game and also move my camera, where the cursors becomes invisible during the duration of the movement. You can see that every time the cursor disappears or reappears, MangoHud shows 0 FPS and you can also feel this very short freeze.
I can see the stuttering in GW2, but not so much in Snowrunner. I recorded a short video in Grim Dawn. You can see that the FPS drops to 0, but I don’t notice any stuttering, and there’s nothing unusual in the frame times either.
Edit:
Could you please check if your settings match the ones in the screenshot I took? It might be related to that (though I’m not sure).
I also contacted a friend from GW2. However, he uses a RX 7900 XT and an 7800X3D (with 64GB RAM). His operating system is CachyOS with KDE Plasma (on Wayland). He uses the Steam version with Cachy-proton (latest version). He was unable to reproduce the slight stuttering issue—in other words, he doesn’t experience this problem.
I also tried the latest Proton-CachyOS, but it was still the same. BUT I still made a new discovery: Proton-CachyOS supports DXVK-Sarek, the DXVK version that supports older Vulkan standards and I enabled it with PROTON_DXVK_SAREK=1. With that enabled the issue is gone. I normally wouldn’t need that because my 6700 XT still supports the default DXVK Vulkan features.
That means it has something to do with more modern Vulkan features interacting weirdly with cursors, window managers or Wayland.