This website provides a better explanation and use cases than anything I could write. Some of the highlights:
- Newer games that run too slow at the resolution you would like them to run at (you can render games at 720p and play at 4k)
- Very old games insisting on running in a tiny (like 320x200) window (ie. xrick).
- Games and applications who insist on running full-screen with no option to make them appear in a window if a window is what you want for a particular game or application (many scene demos will only run full screen at your current resolution).
- Running older, non-widescreens games that do not support borderless fullscreen on Intel graphics with a desktop/external display (this is because Intel graphics do not support the --set “scaling mode” “Preserve aspect” xrandr argument on desktop/external displays)
Interestingly, Gamescope also provides a way to independently set max frame rate for the game when it is focused and unfocused, you could set it up to something really low when unfocused. Also interesting is the upscale options, you could use integer scaling for those old games, or force FSR on any title (although results can be mixed because the game UI will also be upscaled).
Gamescope becomes a very interesting option when you use it on a machine that doesn’t have easy access to a keyboard and mouse, like a handheld, a “consolized” PC or even a “normal” PC that double duties as a “console” (playing games on a couch, despite using a desk for normal usage)
Like, I remember a friend of mine saying he had trouble running Sonic Generations on Windows because depending on what he was doing, he was either playing it on a monitor or on a TV. The Game for some reason detects that change and throws a fit, asking the user to reconfigure its graphical settings. Gamescope can lie to the game and force the game to see an arbitrary resolution.