Performance Optimizations
Contents
In-game Overlay
When using Steam or Discord, the in-game overlay should be disabled for maximum performance. It can lead to anything from increased lag to a completely unresponsive user interface.
Disabling the Steam Overlay
- Right click on Zero-K in your Steam library.
- Select 'Properties' from the dropdown menu.
- Untick "Enable the Steam Overlay while in-game" in General.
Disabling the Discord Overlay
- In Discord, go to Settings -> Games
- Look for Zero-K and click the button on the right to "Toggle Overlay". It should turn red.
Laptop Graphics Driver Optimizations
Switchable Graphics
On systems with two graphics cards, Zero-K may require an additional step to use the high performance Nvidia or AMD graphics card. If your frame rate seems too low for your hardware, check the following:
- Open the infolog.txt from your Zero-K folder and search for the line starting with GL vendor
- If the GL vendor shows as Intel, you should make a rule in your driver software to run spring.exe in High Performance mode.
- After making the change, run Zero-K again.
- You can check the infolog.txt again to confirm that your system is using the correct graphics card for Zero-K.
Linux Graphics Driver Optimizations
Graphics Check
glxinfo | grep "Max core profile version"
It needs to show a number 4.1 or greater otherwise graphically demanding games such as Zero-K won't run correctly. If it doesn't you need to do the following (or, as an alternative, upgrade all mesa-related packages from stretch-backports. As for now - Sep 2018 - it will bring Mesa 18.1 and "Max core profile" 4.5).
The graphics stack in Debian Buster is new enough to bring "Max core profile" to "4.5".
Do a backup before preceding. These instructions written for Debian 9 but will likely work on other distributions with little modification.
Backport libdrm from sid
apt-get build-dep libdrm apt-get source libdrm -t sid debuild -b -uc -us libdrm dpkg install libdrm
Build New Mesa3d
apt-get install llvm-3.9-dev ln -sf /usr/bin/llvm-config-3.9 /usr/bin/llvm-config git clone git://anongit.freedesktop.org/git/mesa/mesa cd mesa ./autogen.sh ./configure --prefix=/opt/mesa --enable-texture-float --with-gallium-drivers=radeonsi,swrast --with-platforms=drm,x11 --enable-glx-tls --enable-shared-glapi --enable-glx --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-gbm --enable-openmax --enable-xa --enable-osmesa --with-radeonsi-llvm-compiler --enable-sysfs --enable-vdpau --enable-xvmc --enable-openmax --enable-nine make -j 4 checkinstall
You will have to configure via the checkinstall menu to build and install a valid package.
This package will be built according to these values: 0 - Maintainer: [ your@email ] 1 - Summary: [ open source 3D computer graphics library ] 2 - Name: [ mesa ] 3 - Version: [ version number from git ] 4 - Release: [ 1 ] 5 - License: [ MIT ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ mesa ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ mesa ] 12 - Conflicts: [ ] 13 - Replaces: [ ]
Configure Xorg
Xorg -configure cp xorg.conf.new /etc/X11/xorg.conf
Next restart your display manager.
systemctl restart lightdm.service
![]() | The images and links on this page may be broken at the moment. The cache on this page points to the test wiki.
Please purge the cache to try to restore images and fix those links. This will work only if the page is not on the test server (where this box should appear for now even when cache purging is not needed), which may lack the actual images. This page thinks that it resides on test.zero-k.info right now. |
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 3.142.194.150
Start request GET /mediawiki/index.php?title=Optimized_Graphics_Linux
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "3.142.194.150",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "8j9aa2tnp0sh79taihr7b86t5a23ae25" is unsaved, marking dirty in constructor
[session] SessionBackend "8j9aa2tnp0sh79taihr7b86t5a23ae25" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1712142770", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1712142770", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1712142770", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1712142770", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Optimized Graphics Linux]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
Title::getRestrictionTypes: applicable restrictions to [[Performance Optimizations]] are {edit,move}
[MessageCache] MessageCache using store SqlBagOStuff
[localisation] LocalisationCache::isExpired(en): cache for en expired due to GlobalDependency
[localisation] LocalisationCache::recache: got localisation for en from source
[DBQuery] startAtomic: entering level 0 (LCStoreDB::finishWrite)
[DBQuery] endAtomic: leaving level 0 (LCStoreDB::finishWrite)
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
ParserOutput cache found.
Article::view: showing parser cache contents
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Performance Optimizations]] are {edit,move}