Gamescope是Valve開發的迷你合成器,主要用於Steam Deck的系統,提供良好的掌機體驗。對Linux桌面的用戶來說,它是增進遊戲體驗的一個小工具。
它會在遊戲執行的時候啟動一個XWayland的巢狀工作階段,然後遊戲會以XWayland客戶端在這個合成器當中執行。這個時候,合成畫面的工作會從你目前的Linux桌面的合成器,移交給Gamescope處理,透過這個合成器達成我們想要修改的畫面效果。
比如,給遊戲啟用HDR與VRR功能。HDR在Linux上是相對新穎的技術,Gamescope幾年前剛出來的時候,還沒有半個Linux桌面支援HDR協定呢!Gamescope是率先實現這個技術的。
Gamescope有縮放解析度的功能,可以用AMD FSR縮放低解析度的遊戲,讓遊戲以指定的解析度執行。這個功能很像Winecfg的虛擬桌面功能,不過Gamescope還可以強制讓遊戲全螢幕執行,並兼具放大解析度的效果。
例如,你在4K的顯示器玩20年前的老遊戲,視窗化會覺得太小,放大後又會糊掉,Gamescope能緩解這個問題。
又或者,你可以透過Gamescope,強制放大《Undertale》這類遊戲的視窗大小。
Gamescope也能降低畫質,限制遊戲執行中的螢幕更新率。嗯?為什麼要降低畫質和FPS?推測是延長Steam Deck續航力的操作,以及降低高畫質遊戲對效能的需求。不過一般Linux電腦的用戶應該是用不到這個功能。
最後,Gamescope也能夠當成一個桌面環境使用,也就是Linux開機後,直接啟動Steam,跑在Gamescope下,進入Big Picture Mode玩遊戲,把你的電腦變成一台DIY的Steam Machine的感覺。
1. Gamescope支援的顯示卡#
推薦使用Intel與AMD。
Nvidia專有驅動需要515以上版本,且要記得啟用nvidia-drm-nomodeset=1。
講些技術性的東西:Gamescope有一個隱藏功能,就是在啟動後將OpenGL的程式轉成Vulkan(有點類似用Zink去跑OpenGL的操作)。雖說,Proton執行的遊戲本來就是用Vulkan執行了。不過對那些原生支援Linux的遊戲來說,仍有一部分是使用OpenGL。轉成Vulkan後或許能提昇一些效能。
2. 安裝Gamescope#
Gamescope原始碼位於Github
Arch Linux安裝:
sudo pacman -S gamescope
Ubuntu與Debian沒有收錄Gamescope套件,我是用這個人做的.deb檔安裝的:https://github.com/akdor1154/gamescope-pkg。不然你可能要考慮手動編譯。
如果要用Flatpak安裝Gamescope也可以,但請注意它只能被其他Flatpak的程式(例如Lutris、Bottles、Steam Flatpak)調用,無法獨立執行。
flatpak install org.freedesktop.Platform.VulkanLayer.gamescope
3. Gamescope指令語法#
格式如下,Gamescope的參數與實際要執行的程式,中間用--分隔。`
gamescope <參數> -- <要啟動的程式指令>
後面啟動的程式,可以是Linux原生程式的執行檔路徑,也可以是Wine指令。不過通常我是在Steam內使用比較多,所以這裡我都會以Steam當範例。
例如,給Steam遊戲啟用HDR:
gamescope --hdr-enabled -- %command%
修改遊戲執行時的解析度,將解析度為1080p的遊戲,縮放到4K輸出:
gamescope -w 1920 -h 1080 -W 3840 -H 2160 -F fsr -- %command%
有時候啟動遊戲的時候抓不到滑鼠,加上參數--force-grab-cursor強制擷取。
Gamescope所啟動的遊戲視窗,預設會強制壓縮成720p。可以使用AMD FSR縮放程式到1440p解析度,螢幕更新率60Hz。加上-f可以強制進入全螢幕,如果不加-f則會以視窗啟動程式。
gamescope -h 720 -H 1440 -r 60 -F fsr -- %command%
使用縮放的時候,可以按以下快捷鍵觀察效果:
- Windows鍵 +n 開啟最近過濾放大
- Windows鍵 + u 開關AMD FSR
- Windows鍵 + y 開關Nvidia NIS(另一種放大技術)
- Windows鍵 + o 增加AMD FSR銳利度, Windows鍵 + i減少AMD FSR銳利度。
4. 給Steam遊戲啟用Gamescope#
在Steam遊戲收藏庫點選右鍵 → 內容,編輯啟動選項。
指令基本格式如下,%command%是固定值,不要變更。
gamescope <參數> -- %command%
5. 在遊戲中顯示FPS#
這個功能是搭配MangoHud使用的,請先在Linux系統安裝MangoHud。
使用Gamescope啟動遊戲的時候,不能同時執行MangoHud,需要使用以下語法啟動:
gamescope --mangoapp -- %command%
6. 開機直接進入Steam Big Picture Mode#
Linux開機後,啟動Gamescope工作階段,然後啟動Steam,進入Big Picture Mode玩遊戲。剩下的桌面操作,都在Steam界面進行。在Big Picture Mode開啟的遊戲,都會用Gamescope執行。
說實話,除非你的電腦沒有接上鍵盤滑鼠,只用手把操作,否則沒有使用這個模式的必要。因為Steam客戶端在Linux桌面執行的時候,本來就可以手動進入全螢幕的Big Picture Mode了!
- 新增以下Desktop Entry。
sudo vim /usr/share/wayland-sessions/steam-big-picture.desktop
- 填入以下內容。用
which steam確認Steam執行檔路徑,應該是/usr/bin/steam。Gamescope預設解析度會鎖在720p,記得在參數位置用-W 1920 -H 1080指定你的顯示器所支援的最大解析度。
[Desktop Entry]
Name=Steam Big Picture Mode
Comment=Start Steam in Big Picture Mode
Exec=/usr/bin/gamescope -e -- /usr/bin/steam -tenfoot
Type=Application
然後重開機,就會在Linux的登入界面看到Steam的選項,進入後就只會啟動Steam。

如果要自動登入Gamescope,就修改顯示管理器設定,例如我使用SDDM,就在KDE的系統設定,開啟自動登入Gamescope工作階段。

需要注意:Steam選單的「切換到桌面模式」,在這裡是不可以使用的。需要手動用kill指令殺掉Steam行程,退回顯示管理器的界面。