GameMode عبارة عن مجموعة من الخفي/lib لـ Linux تسمح للألعاب بطلب مجموعة من التحسينات مؤقتًا على نظام التشغيل المضيف و/أو عملية اللعبة.
تم تصميم GameMode في المقام الأول كحل لوقف الفجوة لمشاكل مع CPU PowerSave أو AMD AMD أو OnDemand ، ولكنه يستضيف الآن مجموعة من ميزات التحسين والتكوينات.
يتضمن GameMode حاليًا دعمًا للتحسينات بما في ذلك:
SCHED_ISO
)تتوفر حزم GameMode لـ Ubuntu و Debian و Solus و Arch و Gentoo و Fedora و Opensuse و Mageia وربما أكثر.
يجب الإبلاغ عن المشكلات المتعلقة بـ GameMode هنا في قسم القضايا ، ولم يتم الإبلاغ عنها إلى Feral مباشرة.
بالنسبة للألعاب/القاذفات التي تدمج دعم GameMode (انظر القائمة لاحقًا) ، فإن مجرد تشغيل اللعبة سيؤدي تلقائيًا إلى تنشيط GameMode.
بالنسبة للآخرين ، يجب عليك طلب GameMode يدويًا عند تشغيل اللعبة. يمكن القيام بذلك عن طريق إطلاق اللعبة من خلال gamemoderun
:
gamemoderun ./game
أو تحرير خيارات إطلاق Steam:
gamemoderun %command%
ملاحظة: بالنسبة للإصدارات القديمة من GameMode (قبل 1.3) ، استخدم هذه السلسلة بدلاً من gamemoderun
:
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
يرجى ملاحظة أن backslash هنا في $LIB
مطلوب.
تم تكوين الخفي مع ملف gamemode.ini
. مثال/gamemode.ini مثال على شكل هذا الملف ، مع تفسيرات لجميع المتغيرات.
يتم تحميل ملفات التكوين ودمجها من الدلائل التالية ، من أعلى أولوية إلى أدنى أولوية:
$PWD
("غير آمن" - لا تأخذ إعدادات [gpu]
أي تأثير في هذا الملف )$XDG_CONFIG_HOME
أو $HOME/.config/
("غير آمن" - [gpu]
إعدادات لا تأخذ أي تأثير في هذا الملف )/etc/
/usr/share/gamemode/
لا يمكن دمج أوامر مثل Optirun تلقائيًا داخل GameMode ، حيث يتم تقديم طلب GameMode بمجرد بدء اللعبة بالفعل. ومع ذلك ، من الممكن استخدام غلاف GPU الهجين مثل Optirun من خلال بدء اللعبة مع gamemoderun
.
يمكنك القيام بذلك عن طريق ضبط البيئة المتغيرة GAMEMODERUNEXEC
على أمر إطلاق Wrapper الخاص بك ، لذلك على سبيل المثال GAMEMODERUNEXEC=optirun
أو GAMEMODERUNEXEC="env DRI_PRIME=1"
أو GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only"
. يمكن تعيين متغير البيئة هذا على مستوى العالم (على سبيل المثال /etc /البيئة) ، بحيث لا يجب تكرار أمر البادئة نفسه في كل مكان تريد استخدام gamemoderun
.
لن يتم حقن gamemode على الغلاف.
من المعروف أن الألعاب التالية تدمج دعم GameMode (وهذا يعني أنها لا تتطلب أي تكوين إضافي لتفعيل GameMode أثناء التشغيل):
تتضمن التطبيقات الأخرى التي يمكن أن تتكامل مع GameMode:
يحتوي تصميم GameMode على تجريد واضح بين الخفي والمكتبة المضيفة ( gamemoded
و libgamemode
) ، ومحمل العميل ( libgamemodeauto
و gamemode_client.h
) الذي يسمح بالاستخدام الآمن دون القلق بشأن ما إذا كان يتم تثبيت Daemon أو تشغيله. يعني هذا التصميم أيضًا أنه على الرغم من أن المكتبة المضيفة تعتمد حاليًا على systemd
لتبادل الرسائل مع الخفيون ، فمن الممكن تمامًا تنفيذ الأدوات الداخلية الأخرى التي لا تزال تعمل مع نفس العملاء.
راجع دليل المستودع الفرعي للحصول على معلومات حول كل مكون.
يعتمد GameMode على meson
لبناء و systemd
للاتصال الداخلي. يحتوي هذا الريبو على نص bootstrap.sh
للسماح بالتثبيت السريع على ناقل المستخدم ، ولكن تحقق من meson_options.txt
للحصول على إعدادات مخصصة.
dbus-user-session
apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential
على Ubuntu 18.04 ، ستحتاج إلى تثبيت حزمة python3
وتثبيت أحدث إصدار من Meson من pip
.
python3 -m venv .venv
source .venv/bin/activate
pip install meson
في وقت لاحق يمكنك إلغاء تنشيط البيئة الافتراضية وإزالتها.
deactivate
rm -rf .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo لديه EBUILD الذي يبني إصدارًا مستقرًا من المصادر. كما أنه سيسحب جميع التبعيات حتى تتمكن من العمل على الكود المصدري.
emerge --ask games-util/gamemode
يمكنك أيضًا التثبيت باستخدام أحدث المصادر من GIT:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999
ثم استنساخ وبناء وتثبيت إصدار إصدار من GameMode على الرقم 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
لاختبار GameMode المثبت وسيتم تشغيله بشكل صحيح:
gamemoded -t
لإلغاء التثبيت:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir
يجب أن تتطابق طلبات السحب مع نمط الترميز الموجود في ملف .clang-format
، يرجى تشغيل هذا قبل الالتزام:
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
التفاعلية الوحشية
راجع قسم المساهمين للحصول على قائمة موسعة من المساهمين.
حقوق الطبع والنشر © 2017-2024 FERAL Interactive
يتوفر GameMode بموجب شروط ترخيص BSD 3-Cause (المنقحة)
يتم توزيع مكتبة "Inih" بموجب ترخيص BSD الجديد