快轉到主要內容

Gamescope縮放遊戲解析度 + Linux開機直接進入Big Picture Mode

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux玩遊戲
標籤   Steam Linux Wayland
目錄

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了!

  1. 新增以下Desktop Entry。
sudo vim /usr/share/wayland-sessions/steam-big-picture.desktop
  1. 填入以下內容。用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
  1. 然後重開機,就會在Linux的登入界面看到Steam的選項,進入後就只會啟動Steam。

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

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

參考資料
#

Gamescope - Arch Wiki

相關文章

在Linux玩柚子社的遊戲,譬如千戀萬花、魔女的夜宴
分類   Linux系統 Linux玩遊戲
標籤   Visual Novel Steam Linux
MangoHud教學:在Linux螢幕顯示CPU、GPU、FPS、溫度、RAM使用量的遊戲輔助軟體
分類   Linux系統 Linux玩遊戲
標籤   Vulkan Linux Steam
如何在Linux系統玩Steam的Windows遊戲:Steam客戶端 + Steam Play安裝教學
分類   Linux系統 Linux玩遊戲
標籤   Steam Linux

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。