693 Commits

Author SHA1 Message Date
Stephan Lachnit
1e8312f7e3 Add option to change lib dir in gamemoderun
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-13 10:27:15 +01:00
Stephan Lachnit
1709810707 Use distro provided git-clang-format
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-13 09:52:01 +01:00
Stephan Lachnit
c36019a9aa travis: run gamemoded -v as meson test
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
6453a123ab add metainfo test
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
f95470c94a travis: add libinih-dev as dependency
This will compile gamemode against the shared lib version of inih, as it should be in most distros.

Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
a1660fc37a add gamemode-simulate-game to travis
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
43911a8919 install example config
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
e1ae78e346 install example
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
f7a4a6ccfe expose dependency objects for libs
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
90d05eef42 travis: update to focal
This updates to Ubuntu 20.04 (focal) and uses it's provided Meson version.

Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
2fb62e34fa fix double spaces in example
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
c755f7e539 fix wrong prefix variable in data
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-12 19:25:57 +01:00
Stephan Lachnit
1ca9b727c3 remove some old example files
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-11 12:30:15 +01:00
Stephan Lachnit
329f7b4cee give gamemoderun an own man page
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-11 09:41:17 +01:00
Stephan Lachnit
695f7e565f Add return values to example
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-06 14:04:06 +01:00
Stephan Lachnit
e3c24f34f1 provide metainfo
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-06 12:34:06 +01:00
Anjune
29b4148a00 Make system revert to previous governor instead of "powersave"
See issue 214.
2020-05-06 11:32:10 +01:00
qarmin
94444cb76f Check index before using 2020-05-06 11:05:02 +01:00
Alan Jenkins
57bc3e26ba Add ATLauncher to gamemode compatible list
Adds ATLauncher to the list of applications that integrate with
Gamemode.
2020-05-06 11:04:29 +01:00
Alan Jenkins
0ba1551293 Sort the games list alphabetically in README
Sorts the games list alphabetically in the README.md.
2020-05-06 11:04:29 +01:00
Stephan Lachnit
094905f7f8 rename example to gamemode-simulate-game
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-06 11:02:29 +01:00
Ari Breitkreuz
c8492ca28f Fix typo in README and help message 2020-05-06 11:01:37 +01:00
Stephan Lachnit
faea358023 Use wrap instead of git submodule
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-05-06 11:01:13 +01:00
Ahsan Fayaz
bfa20975ca Add git-clang-format, copied from llvm-project GitHub repository. This is preferable to downloading it each time which often fails and causes errors with continuous integration. 2020-03-03 16:54:09 +00:00
Ahsan Fayaz
40702d3fed Update version back to 1.6 post-release 2020-03-03 16:35:37 +00:00
Ahsan Fayaz
616dca659a Update version to 1.5.1 1.5.1 2020-03-03 16:18:48 +00:00
Stephan Lachnit
d3e309b23b use upstream inih r48
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-03-03 14:38:35 +00:00
seb128
1a598f53d2 Don't default to syslog logging
Let the preferred/configured logging system to be used instead
2020-02-26 18:26:09 +00:00
Stephan Lachnit
f0943ff431 prefer system installation of inih
Closes #195.

Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-02-26 18:24:50 +00:00
Ahsan Fayaz
065454bb4e Update version to 1.6 post-release 2020-01-22 14:51:00 +00:00
Ahsan Fayaz
d58c59c183 Update version to 1.5 1.5 2020-01-22 14:19:26 +00:00
afayaz-feral
9d34caa1fa Merge pull request #186 from xcom169/patch-1
Add SotTR
2020-01-13 12:12:13 +00:00
xcom169
c2846f4a77 Add SotTR
Add SotTR game to gamemode.
2020-01-12 12:04:02 +01:00
Ahsan Fayaz
78b326adb6 Update copyright year to 2020. 2020-01-10 17:37:35 +00:00
afayaz-feral
1576c2b39e Merge pull request #179 from jekstrand/igpu
Add an option for using a different governor for integrated GPUs
2020-01-10 10:12:26 +00:00
Jason Ekstrand
79d0c64ef1 Add systemctl try-restart polkit to bootstrap.sh
This makes it more properly install things so that you don't get the
nasty pkexec pop-ups with dev builds.
2020-01-09 11:11:22 -06:00
Jason Ekstrand
688373a260 Add an option for using a different governor for integrated GPUs
This commit adds two new configuration options: igpu_desiredgov and
igpu_power_threshold which allow for a different CPU governor when the
Intel integrated GPU is under load.  This currently only applies to
Intel integrated GPUs and not AMD APUs because it uses the Intel RAPL
infrastructure for getting power information.  If on a platform that
without an Intel integrated GPU or where the kernel does not support
RAPL, the new options will be ignored and it will fall back to the old
behavior.

One of the core principals of gamemoded to date has been that, when
playing a game, we want to use the "performance" CPU governor to
increase CPU performance and prevent CPU-limiting.  However, when the
integrated GPU is under load, this can be counter-productive because the
CPU and GPU share a thermal and power budget.  By throwing the CPU
governor to "performance" game mode currently makes the CPU frequency
management far too aggressive and it burns more power than needed.  With
a discrete GPU, this is fine because the worst that happens is a bit
more fan noise.  With an integrated GPU, however, the additional power
being burned by the CPU is power not available to the GPU and this can
cause the GPU to clock down and lead to significantly worse performance.

By using the "powersave" governor instead of the "performance" governor
while the integrated GPU is under load, we can save power on the CPU
side which lets the GPU clock up higher.  On my Razer Blade Stealth 13
with an i7-1065G7, this improves the performance of "Shadow of the Tomb
Raider" by around 25-30% according to its internal benchmark mode.
2020-01-09 10:49:19 -06:00
Jason Ekstrand
c1646ecdd9 Add helpers for getting RAPL power data from Intel CPUs 2020-01-09 10:49:19 -06:00
Jason Ekstrand
2023a2a1ef Move the get/set governor state machine to a helper 2020-01-09 10:41:10 -06:00
Ahsan Fayaz
8b8113fb80 Stick to meson version 0.52.0. Version 0.53.0 has compatibility issues with python 3.5.2 which is shipped with Ubuntu 16.04. Better stick to a specific version and only update after checking compatibility. See mesonbuild/meson#6427. 2020-01-09 15:03:47 +00:00
Alex Smith
57efe440c3 clang-format fix 2019-10-22 12:41:37 +01:00
Alex Smith
b2b09fbb83 Run "sleep 5" instead of "sh" for the gamemoderun test
Don't really want to try to run an interactive shell here.
2019-10-22 12:36:59 +01:00
Alex Smith
d25379e001 Increase a test timeout to avoid spurious failures 2019-10-22 12:31:53 +01:00
Alex Smith
514ab58be3 Merge pull request #173 from gicmo/pidfds
Introduce a new pidfd based set of D-Bus APIs
2019-10-22 12:31:00 +01:00
Christian Kellner
6f7df91b60 lib: support the new pidfd based APIs
Try to make API requests using the new pidfd based APIs. If getting
the pidfds fails or if the remote (daemon) does not support the new
pidfd based D-Bus API, transparently fall back to the old API.
2019-10-21 16:20:22 +02:00
Christian Kellner
b84d673aae meson: reorder lib and common subdir
So that lib can depend on the new library from common.
2019-10-18 13:19:30 +02:00
Christian Kellner
cd6c2ee612 common: create another lib tailored for the client
Use a small subset of the existing common files to create another
static library to be used from the client library.
2019-10-18 13:19:30 +02:00
Christian Kellner
a6552044cd daemon: add new pidfd based D-Bus API
Provide a new set of APIs with identical semantics as the existing
ByPID family of calls but instead of working with process ids, they
take pidfds, file descriptors representing processes, instead. The
fds can be translated back to pids (in the correct namespace) and
also be monitored via select/poll/epoll.
The current implementation translates them directly back to pids,
but in the future the monitoring code that watches processes (if
they are still alive) could be converted be event driven via pidfds.
2019-10-18 13:19:30 +02:00
Christian Kellner
5398dd1d19 common: add pidfd related methods
Add functions to open pidfds, i.e. file descriptors representing
processes, for process ids and vice versa. Both functions work
an array of fds/pids, stop on error and return the number of
successfully handled items.
2019-10-18 13:19:30 +02:00
Christian Kellner
4b59818fd4 common: add autofree helper
Much like the auto-closing helper for file descriptors, add a new
auto-free helper that is meant to be used with dynamically allocated
memory, a la:
  autofree char *data = NULL;
  ...
  data = malloc(size);
When data goes out of scope, cleanup_free will be called with &data,
i.e. cleanup_free(&data), which in turn will call free(3) data. In
order to work with all types, e.g. 'char *' (resulting in char **
being passed to cleanup_free) or 'int *' (resulting in int ** being
passed to cleanup_free), cleanup_free is defined to work with void *,
hence the odd-looking cast: void *target = *(void **) ptr.
2019-10-18 13:19:30 +02:00