Performance Tuning

LUG Helper

The LUG Helper’s Preflight Check will do a quick check of your system for some common issues. Be sure it passes all checks.

Game Settings

See CIG’s Spectrum post for an explanation of each graphics setting along with what it affects in terms of performance, visuals, or hardware usage. Note: The post is long and continues into the comments.

Zram & Swap

Zram stores swap in RAM using on-the-fly compression which improves game performance when memory utilization gets high. Some Penguins have had success with zswap instead, but it is less straightforward to optimize properly, so we only include zram instructions here.

We recommend configuring zram AND a swapfile as described below to avoid out of memory crashes and performance issues while playing Star Citizen. See the links in the tip field and example zram-generator.conf below for details.

  • For 16GB RAM, we recommend configuring zram-size = ram and at least 24GB in a swap file.
  • For 32GB RAM, we recommend configuring zram-size = ram and at least 8GB in a swap file.
  • For 64GB RAM, we recommend configuring zram-size = 4GB. Consider also setting any size swap file as a backup.

When zram-size is set to ram, zram-generator will look up the physical ram size and use that number automatically. Increase your swap file size further if you intend to run any background applications while playing the game.

  • When using zram, zswap needs to be disabled to take full advantage of zram.
  • System swap configuration needs to be optimized to take full advantage of zram. Follow the configuration example here.

Using zram-generator
The zram-generator or systemd-zram-generator package must be installed and requires a configuration text file. Many distros use zram-generator by default. Use a text editor to modify the existing file or create your own file in /etc/systemd named zram-generator.conf.
Copy this example:

## /etc/systemd/zram-generator.conf

[zram0]
zram-size = ram
compression-algorithm = zstd

Swap file only
If you prefer not to use zram, a swap file will need to be configured. Btrfs users please follow the Btrfs instructions. We recommend configuring at least a combined 50GB RAM + swap, though more may be needed depending on your system memory usage.

  • For 16GB RAM: At least 34GB swap.
  • For 32GB RAM: At least 18GB swap.
  • For 64GB RAM: Any size swap file.

Nvidia Cache

If you’ve installed the game via our LUG Helper, these settings are pre-configured for you.

By default Nvidia has a combined cache for all games. As the cache fills up from other games, Star Citizen’s shaders may get deleted leading to poor FPS. We recommend giving SC its own persistent cache by adding the following environment variables:

__GL_SHADER_DISK_CACHE=true
__GL_SHADER_DISK_CACHE_PATH="/path/you/want/for/your/cache"  (example: /home/games/star-citizen/nvidiacache)
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=true

Mesa (AMD/Intel) Shader Cache

If you’ve installed the game via our LUG Helper, these settings are pre-configured for you.

Mesa can be given its own persistent shader cache by adding the following environmental variables:

MESA_SHADER_CACHE_DIR="/path/you/want/for/your/cache"  (example: /home/games/star-citizen/amdcache)
MESA_SHADER_CACHE_MAX_SIZE=10G

Feral GameMode

For most configurations, Gamemode does not seem to result in significant performance benefits. If you wish to experiment with its capabilities, install gamemode from your package manager, then refer to the Gamemode repository for configuration instructions.

Use the LUG Helper to edit your launch script and add gamemoderun to the beginning of your launch command.

CPU scaling on Laptops

When configuring kernel schedulers on a mobile device, the Performance scheduler will hint that the CPU should always run at the maximum frequency.

Dell laptops with Intel CPUs may have other factors that influence CPU frequency scaling:

  • If the laptop is thermal-limited or power-limited, the CPU and GPU will fall to a lower frequency when it hits the limit.
  • You can try to configure these settings in the BIOS or via SMBIOS. On Ubuntu distributions, this utility is provided by the smbios-utils package.

Solution for affected laptops:

If changing the kernel scheduler between Performance and the various demand-based schedulers doesn’t affect CPU frequency scaling for your laptop, try setting the SMBIOS thermal mode to cool-bottom. This mode behaves similarly to the Conservative kernel governor, gradually incrementing/decrementing the CPU frequency to stabilize the framerate.

  • Using the SMBIOS utility on Ubuntu, the command is sudo smbios-thermal-ctl --set-thermal-mode=cool-bottom