forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
games-util/gamemode: New ebuild suggestion
GameMode from Feral Interactive is a systemd daemon allowing games to adjust the system to performance mode. It is supported by newer Feral titles and also supports other games by preloading a lib. Closes: https://bugs.gentoo.org/652906 Package-Manager: Portage-2.3.40, Repoman-2.3.9 Signed-off-by: Kai Krakow <[email protected]> Co-authored-by: Mike Lothian <[email protected]> Co-authored-by: Erik Badman <[email protected]> Signed-off-by: Michał Górny <[email protected]> Closes: gentoo#9700
- Loading branch information
Showing
5 changed files
with
222 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
DIST gamemode-1.2.tar.xz 38536 BLAKE2B af39b8c0585c522afa72238b8332a6a5301d36b3c53e50652a78c41788eae9f5cb319cad06eaf6f345c50f934e188df4c78d70efbad919dd6897d3350d14e568 SHA512 233602e5e93b6cfcc742510dafb00dc826000d0c8618a693e9a579dc3b31c546d22c0545084cfb78c6085226e6b0e26c066078bc1871d36d5fb90828cf63cea9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
MULTILIB_COMPAT=( abi_x86_{32,64} ) | ||
|
||
inherit meson multilib-minimal ninja-utils user | ||
|
||
DESCRIPTION="Optimise Linux system performance on demand" | ||
HOMEPAGE="https://github.com/FeralInteractive/gamemode" | ||
|
||
if [[ ${PV} == "9999" ]] ; then | ||
EGIT_REPO_URI="https://github.com/FeralInteractive/gamemode.git" | ||
GAMEMODE_GIT_PTR="master" | ||
inherit git-r3 | ||
else | ||
GAMEMODE_GIT_PTR="${PV}" | ||
SRC_URI="https://github.com/FeralInteractive/gamemode/releases/download/${GAMEMODE_GIT_PTR}/${P}.tar.xz" | ||
KEYWORDS="~amd64 ~x86" | ||
fi | ||
|
||
LICENSE="BSD" | ||
SLOT="0" | ||
IUSE="" | ||
|
||
RDEPEND=" | ||
>=sys-apps/systemd-236[${MULTILIB_USEDEP}] | ||
" | ||
DEPEND="${RDEPEND}" | ||
|
||
pkg_pretend() { | ||
elog | ||
elog "GameMode needs a kernel capable of SCHED_ISO to use its soft realtime" | ||
elog "feature. Examples of kernels providing that are sys-kernel/ck-source" | ||
elog "and sys-kernel/pf-sources." | ||
elog | ||
elog "Support for soft realtime is completely optional. It may provide the" | ||
elog "following benefits with systems having at least four CPU cores:" | ||
elog | ||
elog " * more CPU shares allocated exclusively to the game" | ||
elog " * reduced input lag and reduced thread latency" | ||
elog " * more consistent frame times resulting in less microstutters" | ||
elog | ||
elog "You probably won't benefit from soft realtime mode and thus don't need" | ||
elog "SCHED_ISO if:" | ||
elog | ||
elog " * Your CPU has less than four cores because the game may experience" | ||
elog " priority inversion with the graphics driver (thus heuristics" | ||
elog " automatically disable SCHED_ISO usage then)" | ||
elog " * Your game uses busy-loops to interface with the graphics driver" | ||
elog " but you may still force SCHED_ISO per configuation file, YMMV," | ||
elog " it depends on the graphics driver implementation, i.e. usage of" | ||
elog " __GL_THREADED_OPTIMIZATIONS or similar." | ||
elog " * If your game causes more than 70% CPU usage across all cores," | ||
elog " SCHED_ISO automatically turns off and on depending on usage and" | ||
elog " is processed with higher-than-normal priority then (renice)." | ||
elog " This auto-switching may result in a lesser game experience." | ||
elog | ||
elog "For more info look at:" | ||
elog "https://github.com/FeralInteractive/gamemode/blob/${GAMEMODE_GIT_PTR}/README.md" | ||
elog | ||
} | ||
|
||
multilib_src_configure() { | ||
local myconf=() | ||
if ! multilib_is_native_abi; then | ||
myconf+=( | ||
-Dwith-examples=false | ||
-Dwith-daemon=false | ||
) | ||
fi | ||
meson_src_configure "${myconf[@]}" | ||
} | ||
|
||
multilib_src_compile() { | ||
eninja | ||
} | ||
|
||
multilib_src_install() { | ||
DESTDIR="${D}" eninja install | ||
insinto /etc/security/limits.d | ||
newins - 45-gamemode.conf <<-EOF | ||
@gamemode - nice -10 | ||
EOF | ||
} | ||
|
||
pkg_postinst() { | ||
enewgroup gamemode | ||
|
||
elog | ||
elog "GameMode can renice your games. You need to be in the gamemode group for this to work." | ||
elog "Run the following command as root to add your user:" | ||
elog "# gpasswd -a USER gamemode # with USER = your user name" | ||
elog | ||
|
||
elog "Enable and start the daemon in your systemd user instance, then add" | ||
elog "LD_PRELOAD=\$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so %command%" | ||
elog "to the start options of any steam game to enable the performance" | ||
elog "governor as you start the game." | ||
elog | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
MULTILIB_COMPAT=( abi_x86_{32,64} ) | ||
|
||
inherit meson multilib-minimal ninja-utils user | ||
|
||
DESCRIPTION="Optimise Linux system performance on demand" | ||
HOMEPAGE="https://github.com/FeralInteractive/gamemode" | ||
|
||
if [[ ${PV} == "9999" ]] ; then | ||
EGIT_REPO_URI="https://github.com/FeralInteractive/gamemode.git" | ||
GAMEMODE_GIT_PTR="master" | ||
inherit git-r3 | ||
else | ||
GAMEMODE_GIT_PTR="${PV}" | ||
SRC_URI="https://github.com/FeralInteractive/gamemode/releases/download/${GAMEMODE_GIT_PTR}/${P}.tar.xz" | ||
KEYWORDS="~amd64 ~x86" | ||
fi | ||
|
||
LICENSE="BSD" | ||
SLOT="0" | ||
IUSE="" | ||
|
||
RDEPEND=" | ||
>=sys-apps/systemd-236[${MULTILIB_USEDEP}] | ||
" | ||
DEPEND="${RDEPEND}" | ||
|
||
pkg_pretend() { | ||
elog | ||
elog "GameMode needs a kernel capable of SCHED_ISO to use its soft realtime" | ||
elog "feature. Examples of kernels providing that are sys-kernel/ck-source" | ||
elog "and sys-kernel/pf-sources." | ||
elog | ||
elog "Support for soft realtime is completely optional. It may provide the" | ||
elog "following benefits with systems having at least four CPU cores:" | ||
elog | ||
elog " * more CPU shares allocated exclusively to the game" | ||
elog " * reduced input lag and reduced thread latency" | ||
elog " * more consistent frame times resulting in less microstutters" | ||
elog | ||
elog "You probably won't benefit from soft realtime mode and thus don't need" | ||
elog "SCHED_ISO if:" | ||
elog | ||
elog " * Your CPU has less than four cores because the game may experience" | ||
elog " priority inversion with the graphics driver (thus heuristics" | ||
elog " automatically disable SCHED_ISO usage then)" | ||
elog " * Your game uses busy-loops to interface with the graphics driver" | ||
elog " but you may still force SCHED_ISO per configuation file, YMMV," | ||
elog " it depends on the graphics driver implementation, i.e. usage of" | ||
elog " __GL_THREADED_OPTIMIZATIONS or similar." | ||
elog " * If your game causes more than 70% CPU usage across all cores," | ||
elog " SCHED_ISO automatically turns off and on depending on usage and" | ||
elog " is processed with higher-than-normal priority then (renice)." | ||
elog " This auto-switching may result in a lesser game experience." | ||
elog | ||
elog "For more info look at:" | ||
elog "https://github.com/FeralInteractive/gamemode/blob/${GAMEMODE_GIT_PTR}/README.md" | ||
elog | ||
} | ||
|
||
multilib_src_configure() { | ||
local myconf=() | ||
if ! multilib_is_native_abi; then | ||
myconf+=( | ||
-Dwith-examples=false | ||
-Dwith-daemon=false | ||
) | ||
fi | ||
meson_src_configure "${myconf[@]}" | ||
} | ||
|
||
multilib_src_compile() { | ||
eninja | ||
} | ||
|
||
multilib_src_install() { | ||
DESTDIR="${D}" eninja install | ||
insinto /etc/security/limits.d | ||
newins - 45-gamemode.conf <<-EOF | ||
@gamemode - nice -10 | ||
EOF | ||
} | ||
|
||
pkg_postinst() { | ||
enewgroup gamemode | ||
|
||
elog | ||
elog "GameMode can renice your games. You need to be in the gamemode group for this to work." | ||
elog "Run the following command as root to add your user:" | ||
elog "# gpasswd -a USER gamemode # with USER = your user name" | ||
elog | ||
|
||
elog "Enable and start the daemon in your systemd user instance, then add" | ||
elog "LD_PRELOAD=\$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so %command%" | ||
elog "to the start options of any steam game to enable the performance" | ||
elog "governor as you start the game." | ||
elog | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> | ||
<pkgmetadata> | ||
<maintainer type="person"> | ||
<email>[email protected]</email> | ||
<name>Kai Krakow</name> | ||
</maintainer> | ||
<maintainer type="project"> | ||
<email>[email protected]</email> | ||
<name>Proxy Maintainers</name> | ||
</maintainer> | ||
<upstream> | ||
<bugs-to>https://github.com/FeralInteractive/gamemode/issues</bugs-to> | ||
<remote-id type="github">FeralInteractive/gamemode</remote-id> | ||
</upstream> | ||
</pkgmetadata> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -45,3 +45,4 @@ sys-apps/dbus-broker | |
>=app-admin/abrt-2.10 | ||
app-admin/gnome-abrt | ||
>=dev-libs/libreport-2.9 | ||
games-util/gamemode |