Gamemode adalah kombo Daemon/Lib untuk Linux yang memungkinkan game untuk meminta satu set optimisasi diterapkan sementara untuk OS host dan/atau proses game.
Gamemode dirancang terutama sebagai solusi stop-gap untuk masalah dengan Intel dan AMD CPU PowerSave atau OnDemand Gubernur, tetapi sekarang menjadi tuan rumah untuk berbagai fitur dan konfigurasi optimasi.
Saat ini gamemode termasuk dukungan untuk optimisasi termasuk:
SCHED_ISO
)Paket Gamemode tersedia untuk Ubuntu, Debian, Solus, Arch, Gentoo, Fedora, OpenSUSE, Mageia dan mungkin lebih banyak lagi.
Masalah dengan gamemode harus dilaporkan di sini di bagian masalah, dan tidak dilaporkan secara langsung.
Untuk game/peluncur yang mengintegrasikan dukungan GameMode (lihat daftar nanti), cukup menjalankan game akan secara otomatis mengaktifkan GameMode.
Untuk orang lain, Anda harus secara manual meminta Gamemode saat menjalankan game. Ini dapat dilakukan dengan meluncurkan game melalui gamemoderun
:
gamemoderun ./game
Atau edit opsi peluncuran uap:
gamemoderun %command%
Catatan: Untuk versi Gamemode yang lebih lama (sebelum 1.3) Gunakan string ini sebagai pengganti gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
Harap perhatikan backslash di sini di $LIB
diperlukan.
Daemon dikonfigurasi dengan file gamemode.ini
. Contoh/gamemode.ini adalah contoh dari seperti apa file ini, dengan penjelasan untuk semua variabel.
File konfigurasi dimuat dan digabungkan dari direktori berikut, dari prioritas tertinggi hingga terendah:
$PWD
("tidak aman" - [gpu]
Pengaturan tidak berpengaruh dalam file ini )$XDG_CONFIG_HOME
atau $HOME/.config/
("tidak aman" - [gpu]
pengaturan tidak berpengaruh dalam file ini )/etc/
/usr/share/gamemode/
Tidak mungkin untuk mengintegrasikan perintah seperti Optirun secara otomatis di dalam Gamemode, karena permintaan Gamemode dibuat setelah game sudah dimulai. Namun dimungkinkan untuk menggunakan pembungkus GPU hybrid seperti Optirun dengan memulai game dengan gamemoderun
.
You can do this by setting the environment variable GAMEMODERUNEXEC
to your wrapper's launch command, so for example GAMEMODERUNEXEC=optirun
, GAMEMODERUNEXEC="env DRI_PRIME=1"
, or GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only"
. Variabel lingkungan gamemoderun
dapat diatur secara global (mis.
Gamemode tidak akan disuntikkan ke pembungkus.
Game berikut diketahui mengintegrasikan dukungan GameMode (artinya mereka tidak memerlukan konfigurasi tambahan untuk mengaktifkan GameMode saat berjalan):
Aplikasi lain yang dapat berintegrasi dengan gamemode meliputi:
Desain gamemode memiliki abstraksi yang jelas antara daemon host dan perpustakaan ( gamemoded
dan libgamemode
), dan loader klien ( libgamemodeauto
dan gamemode_client.h
) yang memungkinkan untuk digunakan dengan aman tanpa khawatir tentang apakah daemon dipasang atau dijalankan. Desain ini juga berarti bahwa sementara perpustakaan host saat ini bergantung pada systemd
untuk bertukar pesan dengan daemon, sangat mungkin untuk mengimplementasikan internal lain yang masih bekerja dengan klien yang sama.
Lihat Subdirektori Repositori untuk informasi tentang setiap komponen.
Gamemode tergantung pada meson
untuk membangun dan systemd
untuk komunikasi internal. Repo ini berisi skrip bootstrap.sh
untuk memungkinkan penginstalan cepat ke bus pengguna, tetapi periksa meson_options.txt
untuk pengaturan khusus.
dbus-user-session
) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
Pada Ubuntu 18.04, Anda harus menginstal paket python3
dan menginstal versi meson terbaru dari pip
.
python3 -m venv .venv
source .venv/bin/activate
pip install meson
Nanti Anda dapat menonaktifkan lingkungan virtual dan menghapusnya.
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo memiliki eBuild yang membangun rilis stabil dari sumber. Ini juga akan menarik semua dependensi sehingga Anda dapat mengerjakan kode sumber.
emerge --ask games-util/gamemode
Anda juga dapat menginstal menggunakan sumber terbaru dari git:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
Kemudian klon, bangun, dan instal versi rilis Gamemode di 1.8.2:
git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.8.2 # omit to build the master branch
./bootstrap.sh
Untuk menguji gamemode yang diinstal dan akan berjalan dengan benar:
gamemoded -t
Untuk menghapus instalasi:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
Permintaan tarik harus cocok dengan gaya pengkodean yang ditemukan di file .clang-format
.
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
Interaktif liar
Lihat bagian kontributor untuk daftar kontributor yang diperluas.
Hak Cipta © 2017-2024 Feral Interactive
Gamemode tersedia di bawah ketentuan lisensi BSD 3-Clause (direvisi)
Perpustakaan "INIH" didistribusikan di bawah lisensi BSD yang baru