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 .venvpacman -S meson systemd git dbus libinihdnf install meson systemd-devel pkg-config git dbus-develGentoo لديه 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 الجديد