Wayland, KDE Plasma, Steam and Vulkan; change screen resolution on game launch
Table of Contents
A launch command to lower the resolution of my primary display from 4k to FullHD when playing Steam games and switch back when I exit the game.
kscreen-doctor output.DP-1.mode.1920x1080@60 ; %command% ; kscreen-doctor output.DP-1.mode.3840x2160@60
Description of my Setup
Since my CPU (Intel(R) Xeon(R) CPU E5-1607 0 @ 3.00GHz
) and GPU (AMD Radeon RX 5500 XT
)
are decent, but not anywhere near powerful enough to play
Satisfactory in 4k, I spent a moment hunting down how to
run the game under the following combination with resolution lowered to FullHD.
- Fedora 38 x86_64
- amdgpu
- Wayland
- KDE Plasma
- Vulkan
- Proton 8.0-2
- two screens, set up as follows
Generally this setup handles X11 apps well, but I did not manage to have the game lower the resolution itself to FullHD and still be in fullscreen mode.
Aim
The idea is to switch the main screen from 4k (3840x2160) to FullHD (1920x1080) when I launch the game and back to 4k when I stop playing.
The game itself is set to Fullscreen at Options → Video → Display → Full Screen.
I wanted Vulkan mode because U8 Experimental in DirectX12 mode would sometimes freeze up. No need for a reboot, I could still successfully SIGHUP the game from a terminal, but I’d of course lose all game progress since the last save.
Check Connected Displays
First check what outputs I have;
[pcfe@t3600 ~]$ kscreen-doctor --outputs
Output: 1 DP-1 enabled connected priority 1 DisplayPort Modes: 0:3840x2160@60*! 1:3840x2160@30 2:2560x1440@60 3:1920x1200@60 4:1920x1080@60 5:1920x1080@60 6:1920x1080@60 7:1920x1080@30 8:1920x1080@30 9:1600x1200@60 10:1680x1050@60 11:1600x900@60 12:1280x1024@60 13:1440x900@60 14:1280x800@60 15:1280x720@60 16:1280x720@60 17:1280x720@60 18:1024x768@60 19:800x600@60 20:720x480@60 21:720x480@60 22:720x480@60 23:720x480@60 24:640x480@60 25:640x480@60 26:640x480@60 27:720x400@70 28:1600x1200@60 29:1280x1024@60 30:1024x768@60 31:2560x1600@60 32:3200x1800@60 33:2880x1620@60 34:2560x1440@60 35:1920x1080@60 36:1600x900@60 37:1368x768@60 38:1280x720@60 Geometry: 1440,400 3840x2160 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: unknown
Output: 2 DP-2 enabled connected priority 2 DisplayPort Modes: 0:2560x1440@60*! 1:1920x1200@60 2:1920x1080@60 3:1920x1080@60 4:1920x1080@60 5:1920x1080@50 6:1920x1080@24 7:1920x1080@24 8:1600x1200@60 9:1680x1050@60 10:1280x1024@75 11:1280x1024@60 12:1440x900@60 13:1280x800@60 14:1152x864@75 15:1280x720@60 16:1280x720@60 17:1280x720@60 18:1280x720@50 19:1024x768@75 20:1024x768@60 21:800x600@75 22:800x600@60 23:720x576@50 24:720x576@50 25:720x480@60 26:720x480@60 27:720x480@60 28:720x480@60 29:720x480@60 30:640x480@75 31:640x480@60 32:640x480@60 33:640x480@60 34:720x400@70 35:1600x1200@60 36:1280x1024@60 37:1024x768@60 38:1920x1080@60 39:1600x900@60 40:1368x768@60 41:1280x720@60 Geometry: 0,0 1440x2560 Scale: 1 Rotation: 2 Overscan: 0 Vrr: incapable RgbRange: unknown
RunSatisfactory in FullHD when started from Steam
Ok, so the one on DisplayPot connector 1 (DP-1
) is the 4k screen.
Since I use gamemode and MangoHud (easily configured with Goverlay) and I want to force Satisfactory into Vulkan mode for this (so that if it does not work I can drop the fiddling and end up in DX12 fullscreen mode again), I ended up configuring these launch options (In Steam at Game Properties → General);
kscreen-doctor output.DP-1.mode.1920x1080@60 ; gamemoderun mangohud %command% -vulkan ; kscreen-doctor output.DP-1.mode.3840x2160@60
Works for me and sets resolution back to 4k when I quite the game. Obviously, if I switch to another virtual desktop while the game is running, then my main screen still only shows FullHD. I’m not fussed because I anyway tend to have the Satisfactory Wiki open on the secondary screen that is in portrait mode.
Stability of Vulkan Mode
So far rock solid on Satisfactory’s Update 8 Experimental branch.