How to play Dota2 and CS2 happily under Arch core display
In my spare time, I will play a few games of Dota2 or CS2. As of the statistics on steam, the total game time of Dota2 is 6221 hours, and the game time of Counter-Strike 2 is 357 hours. I donāt play CS2 mainly as a novice, I only play in entertainment mode, I get beaten violently when I meet with guns, my tab key ranking is 1-4 at the bottom all year round, and my round damage is about 35š ; in Dota2, I have been practicing hard on Carl and Meepo recently, and I am very happy to play in the bird round.
Games, like music, are just what the poor need for healing and entertainment. So, how do I play games under Linux? I recently reinstalled Arch and conducted some tests, hoping to help readers in need.
Result: 60fps, 2k resolution, dota2 can be played with the highest image quality, CS2 with medium image quality, the methods are all searched online, for reference only.
6,000 hours of playing. Iām not lying. Thereās no lag at all. Meepo, Carl, and Phantom Lancer donāt play in a group. I also specially conducted a human-machine game test, and it really doesnāt lag.
In addition, there is not much difference in game performance between wayland and xwayland. You can type in dota2 under xwayland, and when you press the shift key under cs2 in wayland, the input box will pop up (when I play, I directly turn off the input method: killall fcitx5)
1. Introduction to hardware environment
The computer is a zero-core ser8 barebone system, and I bought additional solid-state drives and memory sticks. I have written a related article before about why this is the case, so I wonāt go into details here.
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`/+++oooooooooooo/` 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
21Locale: en_US.UTF-8
Now this computer has been taken off the shelves. For me, I donāt play large games, and the performance is seriously excessive.
Readers of this article only need to pay attention to the above:
- GPU: AMD Radeon 780M Graphics [Integrated]
- Memory: 3.13 GiB / 23.25 GiB (13%) (why not 32G will be discussed later)
- Display (Q27N3S2): 2560x1440 in 27", 60 Hz [External]
Core display AMD Radeon 780M, 2 16G memory sticks, 2k@60Hz beggar's version monitor.
2. Key game settings
Adjust video memory size
The default seems to be 4G and needs to be adjusted to 8G (because I have 32G of memory, it is reasonable to allocate 8G of video memory). This is the most critical, and it can meet the requirements of dota2 and CS2. Operation steps:
- First turn off the host, press the power button to start, and when the logo appears on the screen, quickly press the Del key on the keyboard to enter the BIOS.
- After entering the BIOS, use the arrow keys to switch to [Advanced] and enter the [AMD CBS] option
- Enter the [NBIO Common Options] option
- Enter the [GFX Configuration] option
- In [UMA Frame buffer Size], you can adjust the size of the video memory and modify it according to your own needs:
Customize the video memory size modification parameters: [igpu Configuration] changed to UMA_SPECIFIED ćUMA VersionćChanged to Auto [UMA Frame buffer Size] The default is 8G, you can adjust the size according to your own needs [GPU Host Translation Cache] changed to Auto ćTCON INSTANT ON LOGOćchanged to Auto
- After the modification is completed, press [F4], select [Y] to save and exit, and it will take effect.
After restarting and entering the system, the memory display will be 8G less, which is a little less than 24G, which is normal.
Turn on Re-Size BAR
Enable Re-Size BAR Support (CAM) in BIOS. This also works under Linux, allowing the CPU to access video memory more efficiently and improve frame rates. Action: Find Advanced -> PCI Subsystem Settings -> Re-Size BAR Support in BIOS and set it to Enabled. Effect: This allows the CPU to access all video memory at once, dramatically increasing frame rates in many modern games (especially those that support DirectX 12), sometimes by as much as 10%-15%.
To be honest, I donāt know if this is useful. Anyway, I believed it after reading the description and opened it.
Kernel parameter optimization
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=0Function: Disable Runtime Power Management. Setting it to 0 will force the GPU to always stay in working state and not enter deep sleep. Some AMD graphics cards may have problems such as failure to wake up, black screen, and freeze after enabling runpm (especially on older or certain models).amdgpu.gpu_recovery=1Function: Enable GPU error recovery mechanism. When the GPU encounters an error such as hang or timeout, the driver attempts to automatically reset the GPU instead of directly crashing or freezing the entire system. If successful, applications (e.g. games, graphics programs) may crash, but the system itself may continue to run
I havenāt encountered it yet. The problems mentioned above have been added in order to stabilize the gameš .
Graphics driver
Please vulkan summary output:
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:
47apiVersion = 1.4.328
48driverVersion = 25.3.2
49vendorID = 0x1002
50deviceID = 0x1900
51deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
52deviceName = AMD Radeon 780M Graphics (RADV PHOENIX)
53driverID = DRIVER_ID_MESA_RADV
54driverName = radv
55driverInfo = Mesa 25.3.2-arch1.1
56conformanceVersion = 1.4.0.0
57deviceUUID = 00000000-c400-0000-0000-000000000000
58driverUUID = 414d442d-4d45-5341-2d44-525600000000
Now AMD has figured it out, just install vulkan-radeon under Arch. No need to play with amdvlk, just install it directly.
1sudo pacman -S vulkan-radeon
3. steam startup items
- dota2 startup items:
-perfectworld -novid -vulkan -nojoy - cs2 startup items:
-perfectworld -novid -vulkan -nojoy -threads 8 -freq 60
freq 60 Because my monitor is 60Hz and is restricted by the HDMI cable. I have to change the dp cable and I am too lazy to change it.
If you want to experience pure wayland operation, you can modify the game startup script, such as cs2, (the following settings enable wayland and pipewire, there is no difference between the actual test and 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
4if [ -z "$SDL_VIDEO_DRIVER" ]; then
5#export SDL_VIDEO_DRIVER=x11
6export SDL_VIDEO_DRIVER=wayland
7export SDL_AUDIO_DRIVER=pipewire
The modification method is shown above.
4. Screenshot proof
The best proof is to record a video, but it is not convenient to embed it in the article. Take a screenshot to deal with it:
Dota2 screenshot
cs2 screenshot
Special note, there is no 60 frames in this screenshot because as long as the screenshot software is turned on, the cs2 frame rate will drop, so there is nothing you can do. It is actually a stable 60.
Some readers may mutter? 60fps is also worthy of being said. With a 2k monitor and 60Hz, there is really no lag when playing. Increasing the frame rate has no effect on my hardware.
Core graphics can play games happily, donāt ask too much, after all, a high-end discrete graphics can buy an entire computer.
If you have money and leisure, you can directly buy high-end equipment, but if you are poor, you have never experienced the effect of high-end independent graphics under Linux.
Copyright statement:
- All content that is not sourced is original., please do not reprint without authorization (because the typesetting is often disordered after reprinting, the content is uncontrollable, and cannot be continuously updated, etc.);
- For non-profit purposes, to deduce any content of this blog, please give the relevant webpage address of this site in the form of 'source of original text' or 'reference link' (for the convenience of readers).
See Also:
- Mini console assembly notes
- Rime Adds Dota 2 Dictionary
- Arch/labwc Environment Network Related Settings
- Recommended Clipboard Management Tool: Clipcat
- MangoHud Performance Monitoring
- WeChat Mini Program Development Notes
- Solve the problem that VSCode cannot input Chinese under Arch
- Greetd and greetd tutorial
- My Toolbox
- A Brief Introduction to Scientific Internet Access with Xray