Opened 6 years ago

Last modified 6 years ago

#5116 new enhancement

Enable Linux Feral Interactive's GameMode for systems that have it installed

Reported by: dslul Owned by:
Priority: Nice to Have Milestone: Backlog
Component: Core engine Keywords:
Cc: Vladislavbelov Patch:

Description

Recently a Linux gamemode daemon/library has been announced by Feral Interactive. Upcoming games (such as Tomb Raider) will use it. It is quite straightforward to use, just an include in the project. Systems that have the library installed will use it to improve performance by adjusting the gpu governor.

Attachments (9)

gamemode.patch (320 bytes ) - added by dslul 6 years ago.
profile_without.txt (534.6 KB ) - added by dslul 6 years ago.
profiling without gamemode
profile_with.txt (534.6 KB ) - added by dslul 6 years ago.
profiling with gamemode
graph.jpg (146.9 KB ) - added by elexis 6 years ago.
profile_without_gamemode.tar.xz (47.8 KB ) - added by dslul 6 years ago.
profiling without gamemode on a longer replay
profile_with_gamemode.tar.xz (47.6 KB ) - added by dslul 6 years ago.
profiling with gamemode on a longer replay
commands.txt (1.2 MB ) - added by elexis 6 years ago.
laggy replay for r21690
data_without.json (102.3 KB ) - added by dslul 6 years ago.
Profiling without gamemode on the "laggy replay"
data_with.json (102.3 KB ) - added by dslul 6 years ago.
profiling with gamemode on the "laggy replay".I'll try with a lower end system, where cpu can be a bottleneck (I tried on a i7 3630qm)

Change History (15)

by dslul, 6 years ago

Attachment: gamemode.patch added

comment:1 by elexis, 6 years ago

Component: Non-game systemsCore engine
Keywords: linux gamemode removed

https://github.com/FeralInteractive/gamemode

You have it installed? If so, it would be useful to show a performance difference. Since it's for the CPU and not GPU, the benefits would be mostly in the simulation side, i.e. the pathfinder and can be measured well with the non-visual replay graphs wiki:EngineProfiling#Simulationreplaymode

by dslul, 6 years ago

Attachment: profile_without.txt added

profiling without gamemode

by dslul, 6 years ago

Attachment: profile_with.txt added

profiling with gamemode

comment:2 by Stan, 6 years ago

Cc: Vladislavbelov added

Sounds good. Platform specific improvements are always nice especially if it's doesn't clutter too much the code.

Someone will have to test it on OSX too. Maybe Vlad can help with that.

Patches should be uploaded to Phabricator see SubmittingPatches

I believe we will need some preprocessor defines for windows.

by elexis, 6 years ago

Attachment: graph.jpg added

comment:3 by elexis, 6 years ago

The replay is too short and there is not enough stuff going on to be conclusive. It should look something like the one here #5099. I can upload a replay after the next svn lobby game.

by dslul, 6 years ago

profiling without gamemode on a longer replay

by dslul, 6 years ago

profiling with gamemode on a longer replay

comment:4 by elexis, 6 years ago

Summary: Enable Linux Feral Interactive's game mode for systems that have it installedEnable Linux Feral Interactive's GameMode for systems that have it installed

I see some considerable differences in the two profiling.txt, but the replay still meaningful enough, the graphs look identical. It should be a serious lag replay, 8 players * 200 units or just the average Jebel Barkal or Danubius game with gaia spam. As mentioned I might upload such a game in the next 24-48h if the lobby players are with me.

comment:5 by elexis, 6 years ago

In 21694:

Ease comparison of two replay profile graphs by typing the filename in the browser instead of renaming the data.json files, refs #5116.

by elexis, 6 years ago

Attachment: commands.txt added

laggy replay for r21690

by dslul, 6 years ago

Attachment: data_without.json added

Profiling without gamemode on the "laggy replay"

by dslul, 6 years ago

Attachment: data_with.json added

profiling with gamemode on the "laggy replay".I'll try with a lower end system, where cpu can be a bottleneck (I tried on a i7 3630qm)

comment:6 by elexis, 6 years ago

10ms sounds very strange to me, I would rather expect 200ms to 500ms. Did you replay it with the correct revision? Otherwise it might be OOS and be equal to nothing happening there. It should say hash mismatch in the commandline output and the visual replay should show a message box error equally.

This might also explain why there is no measurable difference. Another hypothesis why we can't observe a measurable difference is because the patch doesn't actually work, or because all CPU resources are already allocated.

Note: See TracTickets for help on using tickets.