Boneworks on Linux

Table of Contents

Quick reference for some issues that can occur while playing Boneworks on Linux, using SteamVR and Proton.

Preface

While this guide can help eliminate issues in Boneworks specifically, it is best that you read any of these universal guides first, in order to get familiar with PC VR and quirks on Linux:

Information in this guide has only been tested on an AMD GPU (RX 6600 XT 8 GB).

Extreme lag upon loading any level

Check your VRAM usage, nvtop is a great CLI tool for that if you lack a GUI equivalent. If VRAM usage is close to 100%, the game is trying to use more VRAM than available, causing extreme lag.

This is especially true if Legacy Reprojection Mode is disabled and asynchronous reprojection is enabled and intact, given that it uses additional VRAM to operate.

The solution is simple: inside the game, reduce texture resolution to half or quarter and reduce MSAA level if necessary. Dropping game resolution within SteamVR can help as well.

Boost VR performance

Incorrectly set CPU, especially GPU power mode can lead to unnecessary performance loss. It is essential to set them correctly before attempting to tweak performance in other ways.

GPU power mode (AMD)

Run the following commands as root.

For the following steps, determine which DRM number your GPU corresponds to:

ls /sys/class/drm

Get power profile modes, look for the number corresponding to "VR":

cat /sys/class/drm/card#/device/pp_power_profile_mode

Set performance level to "manual":

echo "manual" > /sys/class/drm/card#/device/power_dpm_force_performance_level

Switch to "VR" power profile, which is "4" in this example:

echo "4" > /sys/class/drm/card#/device/pp_power_profile_mode

Reverting changes:

echo "auto" > /sys/class/drm/card#/device/power_dpm_force_performance_level

CPU governor (automatic)

Simply start SteamVR and the game with Feral GameMode:

gamemoderun %command%

CPU governor (manual)

Run the following commands as root.

Get current governor:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Set it to "performance":

cpupower frequency-set --governor performance

Revert to previous governor:

cpupower frequency-set --governor <previous_governor>

Dropped frames

Whether or not VRAM is exceeded, even if game resolution is set to its lowest, it is possible that the game cannot satisfy the configured frame rate, resulting in a nauseating, choppy experience. It happens whenever the frame time target, determined by the display frequency set in SteamVR, is exceeded.

If you have this problem, make sure that you have disabled Legacy (Foveated) Reprojection Mode within SteamVR globally or for the game itself. This ensures that asynchronous reprojection stabilises the frame rate, at the cost of enforcing a frame rate limit.

That being said, some SteamVR Linux versions break this mode (specifically, asynchronous reprojection), so you may also need to refer to the section "Switching to an older SteamVR version" in the main guide on the blog or on Steam.