快轉到主要內容

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

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

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也能夠當成一個桌面環境使用,也就是開機後,直接啟動Steam,跑在Gamescope下,進入Big Picture Mode玩遊戲,把你的Linux電腦變成一台DIY的Steam Machine的感覺。

影片示例:

1. Gamescope支援的顯示卡
#

推薦使用Intel與AMD。

Nvidia專有驅動需要515以上版本,且要記得在GRUB啟用nvidia-drm-nomodeset=1

講些技術性的東西:Gamescope有一個隱藏功能,就是在啟動後將OpenGL的程式轉成Vulkan(有點類似用Zink去跑OpenGL的操作)。雖說,Proton執行的遊戲本來就是用Vulkan執行了。不過對那些原生支援Linux的遊戲來說,仍有一部分是使用OpenGL。轉成Vulkan後或許能提昇一些效能。

2. 安裝Gamescope
#

雖然Gamescope沒有說一定要跟Steam一起用,不過我還是建議先安裝Linux版Steam客戶端

Gamescope原始碼位於Github

Arch Linux安裝Gamescope:

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與VRR,除了遊戲本身要支援外,電腦硬體也要支援才有用:

gamescope --hdr-enabled --adaptive-sync -- %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%

如果要在Big Picture Mode裡面使用MangoHud,則是得手動編輯遊戲啟動選項,不用加上gamescope指令:

mangohud %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應該會嘗試偵測顯示器解析度,不過你也可以在這裡用參數-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。於Big Picure Mode所有遊戲會自動用gamescope啟動,不需要在啟動選項加上gamescope指令。

  2. Gamescope可能不會自動啟動Linux的網路服務,所以需要用nmcli device set wlan0 autoconnect yes指令設定Wifi開機自動連線,並編輯藍牙設定/etc/bluetooth/main.conf,啟用AutoEnable=true自動連線。

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

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

  5. 要將以上動作復原,按Ctrl + Alt + F2,進入tty,編輯SDDM的自動登入設定檔/etc/sddm.conf.d/,將User=Session的數值設定為空就可以了。

參考資料
#

Gamescope - Arch Wiki

相關文章

如何在Linux當個盜版仔,玩Windows exe遊戲
分類   Linux系統 Linux玩遊戲
標籤   Lutris Wine Steam RetroArch
在Linux玩柚子社的遊戲,譬如千戀萬花、魔女的夜宴
分類   Linux系統 Linux玩遊戲
標籤   Visual Novel Steam Linux
Lutris使用教學,安裝與管理Linux的遊戲收藏
分類   Linux系統 Linux玩遊戲
標籤   Lutris Wine Steam Steam Deck RetroArch

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

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

Click here to edit your comments.

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