If I may ask, why do we want to enable tearing now? There are pages and pages across the wikis on how to fix tearing...
In general you are right. We want to avoid screen tearing. Gaming doesn't have to be but can be an exception. If you were to play some fast paced game like a competitive shooter for example. Then permitting tearing would reduce latency. In my case, I can feel the difference when tearing is allowed in The Finals. It is easier to follow the target with your crosshair. That doesn't mean everyone would feel the same. Nvidia's driver version 560 also got released recently. That might have something to do with me perceiving the gameplay as more smooth. All I'm saying is, smooth and enjoyable gameplay not only depends on a high fps count. Framerate, frame pacing, and latency are all factors in this.
Oh, and by the way. this doesn't at all mean that one is going to see/perceive any screen tearing when this is enabled. I haven't noticed any at all. I'm sure one could find some when one was to go and really look for it. I'm simply not too sensitive about that stuff.
This reminds me of the time I got my first 160hz monitor. Games felt buttery smooth. Like there was some friction that I never thought was present was magically gone. Days later I found out that the monitor was set at a whooping 60Hz in the settings.
I agree. It's not only placebo, though. I will gladly admit that I'm not very sensitive to these things and can't immediately tell if something is wrong. I had this experience and I even had it in reverse. After days of playing very badly I realised Sway all of the sudden was running my monitor at 60Hz. After fixing it with kanshi (which I didn't have to use prior to that) everything in game was so much easier.
You really put it well: A friction that you didn't even know was there.
...instead of having to create an entry for every single game.
I think I might be shot and burnt alive in a cross for saying this, but... have you tried adding class="*" instead of restricting it to the steam client only? Oh, and I tried this on my opi zero 3 and it works. The performance boost was really noticeable.
I think that would enable tearing for all windows no matter what they are as long as they are fullscreen. I'm not sure that would be desirable. Although I lack the knowledge to judge this. So sure, that is an option. I would really like to restrict this to games only, though.
Are your games all wine/proton games? For me in sway they all have the same class followed by some uid thing:
] > swaymsg -t get_tree
[...]
#92: output "DP-5"
#70: workspace "21"
#126: con "Automobilista 2" (xwayland, pid: 171976, instance: "steam_app_1066890", class: "steam_app_1066890", X11 window: 0x5400001)
Or gamescope:
] > swaymsg -t get_tree
[...]
#92: output "DP-5"
#70: workspace "21"
#124: con "Assetto Corsa" (xdg_shell, pid: 170694, app_id: "gamescope")
EDIT: Also allow_tearing was added to master 3 weeks ago, so this is definitely not in the current release. FYI to anyone who might try it.
I usually don't use gamescope. So I'm looking at the first of your two examples and I'm not sure I follow. The class is "steam_app_1066890", right? The number at the end should change with every game installed by Steam. It's a unique identifier Steam seems to use for all the games on Steam. So how does the class stay the same for your games? And thanks for noting that allow_tearing isn't in any current release at the time of writing. It's the same for Hyprland. I should have mentionend that.
Ah, I should have been more clear. The CRITERIA
section of the sway documentation states that class matches support regex, so instead of using a *
as you did in your example you'd use a regex any .*
. So I think (untested of course) that for_window [class="steam_app_.*"] allow_tearing yes
should work.
The comment in the code for allow_tearing notes that it must be enabled on the output as well. Here is the relevant output documentation. There are several other notes/recommendations there as well you should probably pay attention to.
Thank you, I will add this to my Sway config (and change it for Hyprland as well).
Linux Gaming
Gaming on the GNU/Linux operating system.
Recommended news sources:
Related chat:
Related Communities:
Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.