Arch核顯下如何愉快玩Dota2和CS2

閒暇的時候,會來幾局 dota2 或者 cs2,截止 steam 上統計顯示 dota2 遊戲時間總計:6221 小時,Counter-Strike 2 遊戲時間 357 小時。cs2 玩得少主要是菜,只玩娛樂模式,見面對槍就被暴打、常年 tab 鍵排名倒數 1-4 名,局傷 35 左右😅;dota2 最近苦練卡爾和米波,鳥局玩起來很快樂的。

遊戲和音樂一樣,窮人療傷娛樂剛需。那麼,我是如何在 Linux 下游戲的呢?最近重裝 Arch 進行了一些測試,希望幫到有需要的讀者。

結果:60fps、2k 分辨率,dota2 能玩最高畫質,cs2 中畫質,方法都是網上搜索的,僅供參考。

6000 小時玩家不騙人,一點都不卡,米波、卡爾、幻影長矛手打團都不卡,我還特意開了人機局測試,真的不卡。

另外,wayland 和 xwayland 遊戲表現差異不大,xwayland 下 dota2 能打字,wayland 下 cs2 按 shift 鍵會蹦出輸入框(我玩的時候,直接關閉輸入法:killall fcitx5

1. 硬件環境介紹

電腦是零刻 ser8 準系統,額外買的固態硬盤和內存條,爲什麼這樣,我之前寫過相關文章,這裏不贅述。

 1➜  ~ fastfetch
 2                  -`                     mephisto@minipc
 3                 .o+`                    ---------------
 4                `ooo/                    OS: Arch Linux x86_64
 5               `+oooo:                   Host: SER8 (V10)
 6              `+oooooo:                  Kernel: Linux 6.18.2-arch2-1
 7              -+oooooo+:                 Uptime: 2 hours, 2 mins
 8            `/:-:++oooo+:                Packages: 1261 (pacman)
 9           `/++++/+++++++:               Shell: fish 4.2.1
10          `/++++++++++++++:              Display (Q27N3S2): 2560x1440 in 27", 60 Hz [External]
11         `/+++ooooooooooooo/`            DE: wlroots
12        ./ooosssso++osssssso+`           WM: labwc 0.9.3 (Wayland)
13       .oossssso-````/ossssss+`          Cursor: breeze (24px)
14      -osssssso.      :ssssssso.         Terminal: tmux 3.6a
15     :osssssss/        osssso+++.        CPU: AMD Ryzen 7 8845HS (16) @ 5.14 GHz
16    /ossssssss/        +ssssooo/-        GPU: AMD Radeon 780M Graphics [Integrated]
17  `/ossssso+/:-        -:/+osssso+-      Memory: 3.13 GiB / 23.25 GiB (13%)
18 `+sso+:-`                 `.-/+oso:     Swap: 4.00 KiB / 4.00 GiB (0%)
19`++:.                           `-/+/    Disk (/): 156.34 GiB / 952.87 GiB (16%) - btrfs
20.`                                 `/    Local IP (wlan0): 192.168.124.5/24
21                                         Locale: en_US.UTF-8

現在這個電腦都下架了,對我來說不玩大型遊戲,性能嚴重過剩。

本文讀者只需要關注上面的:

  • GPU: AMD Radeon 780M Graphics [Integrated]
  • Memory: 3.13 GiB / 23.25 GiB (13%)(爲什麼不是 32G 後面再說)
  • Display (Q27N3S2): 2560x1440 in 27", 60 Hz [External]

核顯 AMD Radeon 780M、2 根 16G 的內存條、2k@60Hz 的丐版顯示器。

2. 遊戲關鍵設置

調整顯存大小

默認好像是 4G 需要調整成 8G(因爲我有 32G 內存,分配 8G 顯存還是合理的),這是最關鍵的,能滿足 dota2 和 CS2 的要求。 操作步驟:

  1. 首先關閉主機,按下電源啓動後,當屏幕上出現 logo 後,迅速按下鍵盤上的 Del 鍵進入 BIOS
  2. 進入 BIOS 後,使用方向鍵切換到【Advanced】,進入【AMD CBS】選項
  3. 進入【NBIO Common Options】選項
  4. 進入【GFX Configuration】選項
  5. 在【UMA Frame buffer Size】這裏可以調整顯存的大小,可以根據自己的需求進行修改:

自定義顯存大小修改參數: 【igpu Configuration】改爲 UMA_SPECIFIED 【UMA Version】改爲 Auto 【UMA Frame buffer Size】默認爲 8G,可根據自己的需求進行調整大小 【GPU Host Translation Cache】改爲 Auto 【TCON INSTANT ON LOGO】改爲 Auto

  1. 修改完成後,按【F4】,選擇【Y】進行保存退出即可生效

重啓後進入系統,內存顯示會少了 8G,即 24G 少一點,正常。

開啓 Re-Size BAR

在 BIOS 中開啓 Re-Size BAR Support(CAM)。這在 Linux 下同樣有效,能讓 CPU 更高效地訪問顯存,提升幀數。 操作:在 BIOS 中找到 Advanced -> PCI Subsystem Settings -> Re-Size BAR Support,設置爲 Enabled。 效果:這能讓 CPU 一次性訪問全部顯存,大幅提高在很多現代遊戲(特別是支持 DirectX 12 的遊戲)中的幀數,提升幅度有時能達到 10%-15%。

老實說,這個到底有沒有用,反正看描述我信了,打開的。

內核參數優化

1➜  ~ cat /boot/loader/entries/2025-12-09_09-04-59_linux.conf
2# Created by: archinstall
3# Created on: 2025-12-09_09-04-59
4title   Arch Linux (linux)
5linux   /vmlinuz-linux
6initrd  /initramfs-linux.img
7options root=PARTUUID=9443f4c6-b17e-4771-8ecf-987627f0551c zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs video=2560x1440@60 amdgpu.runpm=0 amdgpu.gpu_recovery=1
  • amdgpu.runpm=0 作用:禁用 Runtime Power Management(運行時電源管理),設置爲 0 會強制 GPU 始終保持在工作狀態,不進入深度睡眠,某些 AMD 顯卡在啓用 runpm 後可能出現喚醒失敗、黑屏、死機等問題(尤其在較老或某些特定型號上)。
  • amdgpu.gpu_recovery=1 作用:啓用 GPU 錯誤恢復機制。當 GPU 出現掛起(hang)或超時(timeout)等錯誤時,驅動嘗試自動重置 GPU 而不是直接崩潰或凍結整個系統。如果成功,應用程序(如遊戲、圖形程序)可能會崩潰,但系統本身仍可繼續運行

沒碰到,上面說的這些問題,爲了安穩遊戲,也加上去了😅。

顯卡驅動

請看 vulkan 概要輸出:

 1➜  ~ vulkaninfo --summary
 2==========
 3VULKANINFO
 4==========
 5Vulkan Instance Version: 1.4.335
 6Instance Extensions: count = 24
 7-------------------------------
 8VK_EXT_acquire_drm_display             : extension revision 1
 9VK_EXT_acquire_xlib_display            : extension revision 1
10VK_EXT_debug_report                    : extension revision 10
11VK_EXT_debug_utils                     : extension revision 2
12VK_EXT_direct_mode_display             : extension revision 1
13VK_EXT_display_surface_counter         : extension revision 1
14VK_EXT_headless_surface                : extension revision 1
15VK_EXT_surface_maintenance1            : extension revision 1
16VK_EXT_swapchain_colorspace            : extension revision 5
17VK_KHR_device_group_creation           : extension revision 1
18VK_KHR_display                         : extension revision 23
19VK_KHR_external_fence_capabilities     : extension revision 1
20VK_KHR_external_memory_capabilities    : extension revision 1
21VK_KHR_external_semaphore_capabilities : extension revision 1
22VK_KHR_get_display_properties2         : extension revision 1
23VK_KHR_get_physical_device_properties2 : extension revision 2
24VK_KHR_get_surface_capabilities2       : extension revision 1
25VK_KHR_portability_enumeration         : extension revision 1
26VK_KHR_surface                         : extension revision 25
27VK_KHR_surface_protected_capabilities  : extension revision 1
28VK_KHR_wayland_surface                 : extension revision 6
29VK_KHR_xcb_surface                     : extension revision 6
30VK_KHR_xlib_surface                    : extension revision 6
31VK_LUNARG_direct_driver_loading        : extension revision 1
32
33Instance Layers: count = 8
34--------------------------
35VK_LAYER_MANGOHUD_overlay_x86_64  Vulkan Hud Overlay                                           1.3.0    version 1
36VK_LAYER_MESA_anti_lag            Open-source implementation of the VK_AMD_anti_lag extension. 1.4.303  version 1
37VK_LAYER_MESA_device_select       Linux device selection layer                                 1.4.303  version 1
38VK_LAYER_RENDERDOC_Capture        Debugging capture layer for RenderDoc                        1.4.324  version 41
39VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer                                 1.3.207  version 1
40VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer                                 1.3.207  version 1
41VK_LAYER_VALVE_steam_overlay_32   Steam Overlay Layer                                          1.3.207  version 1
42VK_LAYER_VALVE_steam_overlay_64   Steam Overlay Layer                                          1.3.207  version 1
43
44Devices:
45========
46GPU0:
47	apiVersion         = 1.4.328
48	driverVersion      = 25.3.2
49	vendorID           = 0x1002
50	deviceID           = 0x1900
51	deviceType         = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
52	deviceName         = AMD Radeon 780M Graphics (RADV PHOENIX)
53	driverID           = DRIVER_ID_MESA_RADV
54	driverName         = radv
55	driverInfo         = Mesa 25.3.2-arch1.1
56	conformanceVersion = 1.4.0.0
57	deviceUUID         = 00000000-c400-0000-0000-000000000000
58	driverUUID         = 414d442d-4d45-5341-2d44-525600000000

現在 AMD 想通了,Arch 下就安裝vulkan-radeon,不玩 amdvlk 了,直接安裝即可。

1sudo pacman -S  vulkan-radeon

3. steam 啓動項

  • dota2 啓動項:-perfectworld -novid -vulkan -nojoy
  • cs2 啓動項:-perfectworld -novid -vulkan -nojoy -threads 8 -freq 60

freq 60 因爲我顯示器就是 60Hz,受 HDMI 線制約,要換 dp 線,懶得換。

如果你要體驗純 wayland 運行,可以修改遊戲啓動腳本,比如 cs2,(下面設置啓用 wayland,pipewire,實際測試和 xwayland 對面比沒什麼區別)

1➜  ~ grep -i "sdl" .steam/steam/steamapps/common/Counter-Strike\ Global\ Offensive/game/cs2.sh
2# There is Wayland support in SDL but a recent (7/30/2025) attempt at
3# allowing SDL to default to Wayland caused a number of customer issues so
4	if [ -z "$SDL_VIDEO_DRIVER" ]; then
5		#export SDL_VIDEO_DRIVER=x11
6		export SDL_VIDEO_DRIVER=wayland
7		export SDL_AUDIO_DRIVER=pipewire

改動方法如上所示。

4. 截圖證明

最好的證明是錄視頻,可是文章裏面不方便嵌入。截個圖應付下:

Dota2 截圖

steam-dota2-settings
steam-dota2-ai-mangohud
看地上有綠葉,河道符點那裏有幾隻蜻蜓(懶得截圖),說明時開了高畫質。

cs2 截圖

特別說明,這個截圖裏面沒有 60 幀,是因爲只要開啓截圖軟件,cs2 幀率就掉,所以沒辦法,實際是穩定 60。

steam-cs2-settings
steam-cs2-ai-mangohud

有讀者可能會嘀咕?60fps 也配說,2k 顯示器 60Hz,玩起來真的一點不卡,調高幀率對我的硬件來說沒有什麼作用。

核顯能愉快打遊戲,別要求太高,畢竟一個高端獨顯都能買整個電腦了。

有錢有閒,直接上高端設備,人窮,至今沒體驗過高端獨顯在 Linux 下是什麼效果。

最後修改於: Saturday, December 27, 2025

相關文章:

翻譯: