# gamescope ## Preface I'm using endeavourOS, KDE Plasma 6.1, a RTX 3080, Wayland, and my main monitor is a Samsung Odyssey Neo G7 (3840x2160 165hz "HDR10") --- Ideally, these are my launch options for each game: ```sh gamemoderun gamescope -W 3840 -H 2160 -r 165 --hdr-enabled --hdr-itm-enable --hdr-itm-sdr-nits 300 -f -e --mangoapp -- %command% ``` There are some issues with it: - Steam overlay and input won't work (`-e` flag is broken) - `--mangoapp` won't show GPU and gamemode info - Game might freeze randomly - Performance is incredibly low after a while - `-W -H -w -h -f -b` don't do anything ## and the workarounds... ### Steam overlay and input [GitHub issue](https://github.com/ValveSoftware/gamescope/issues/835) Creating a gamescope window on the terminal and attaching the game to it will work. First I run this on a terminal: ```sh gamescope -W 3840 -H 2160 -r 165 --hdr-enabled --hdr-itm-enable --hdr-itm-sdr-nits 300 -f --mangoapp ``` Then set the game's launch options: ```sh DISPLAY=:x gamemoderun %command% ``` Where `x` is the display number, shown on the gamescope terminal output, example: `wlserver: [xwayland/server.c:107] Starting Xwayland on :2` In this case, the launch option would be `DISPLAY=:2` The game might take a while to open up and also to completely exit, but it works just fine. ### mangohud and --mangoapp Running it as `mangohud` before `%command%` will show GPU info but not gamemode, and apparently there are issues running it this way. I have to investigate if I have these supposed issues, and if they are related to any config about vsync and/or framerate locks on mangohud. ### Game freezing Possibly due to HDR flags but I'm not certain. Needs a reboot for the game to open again. I haven't had this issue in a while, might've been fixed in an update, might've been something I did. ### Performance Have to set the niceness of gamescope. Run: ```sh sudo setcap 'CAP_SYS_NICE=eip' $(which gamescope)` ``` It seems that after a while it loses its niceness, so I made a systemd service that runs on login checking if the niceness is set, and setting it if it's not. Check the [gamescope-niceness.service](gamescope-niceness.service) gist ### Placebo flags `-W -H -w -h -f -b` don't have any effect. I can freely change my resolution and fullscreen settings ingame and it'll work just fine. Reading gamescope's readme, it mentions: > You can spoof a virtual screen with a desired resolution and refresh rate as the only thing the game sees, and control/resize the output as needed. > > This can be useful in exotic display configurations like ultrawide or multi-monitor setups that involve rotation. Probably I can run the game on a lower resolution without impacting my desktop's resolution and use the FSR flags to upscale it. Maybe I can even downscale the game? `-r` seems funky though. Sometimes not setting it will lock the game to 60FPS, sometimes it has no effect at all. There's also a flag to limit the max FPS but it doesn't do anything, or a setting on mangohud might be conflicting with both flags.