Skip to content
Snippets Groups Projects
testing-multi-gpu.md 10.17 KiB

Testing pressure-vessel on multiple-GPU systems

Multiple GPU support on Vulkan is complicated, and it often isn't obvious which part of the stack has a bug. This document describes how you can test various scenarios, to help to isolate which part of the stack we should be looking at.

Prerequisites

Host system

Install appropriate graphics drivers on the host system.

Install Steam on the host system.

Flatpak (optional)

If you will be testing Flatpak, also install Flatpak, then use it to install the vulkaninfo tool and the Steam Flatpak app. If you want to install these for all users, remove --user from the commands and run them as a root-equivalent user.

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub com.valvesoftware.Steam
flatpak install --user flathub org.freedesktop.Platform.VulkanInfo

If you want to share a Steam library between the copy of Steam on the host system and the copy of Steam in Flatpak, you can achieve that like this:

  • Run Steam on the host system and log in

  • Create a new Steam library folder for example in /home/you/SteamLibrary or /media/somedisk/SteamLibrary. For best results put it below /home, /srv, /media or /run/media. Do not put it below /usr, ~/.local/share/Steam or ~/.steam. Set it as the default, if you want.

  • At this point you can use Steam's UI to move installed games, Proton and/or Steam Linux Runtime installations to the new Steam library.

  • Completely exit from the host version of Steam.

  • Configure Flatpak to share that folder with the host system, for example:

    flatpak override --filesystem=/home/you/SteamLibrary com.valvesoftware.Steam

    Do not try to share your whole home directory with the Flatpak app: that won't work and can cause damage.

  • Run the Flatpak version of Steam and log in:

    flatpak run com.valvesoftware.Steam
  • Add the same library folder in the Flatpak version of Steam. Games and runtimes that you moved into it should appear.

  • Completely exit from the Flatpak version of Steam.

Steam games and runtimes

Have at least one suitable game available in your library. Life is Strange, episode 1 is a game we often test with, for several reasons: it's not too big, it will work on relatively old hardware, the first episode is free (so everyone can try the same game), it's single-player (so there's no anti-cheat mechanism interfering with attempts to debug it), and it has a native Linux port that can be used to compare native Linux with Proton.

Install the game.

If it's a native Linux game, right-click on the game in your Steam library, open its Properties and select the "Steam Linux Runtime" compatibility tool. Wait for it to install.

Change the compatibility tool again, and select "Proton 5.13-6" (or if a newer version is available, use that). Wait for it to install. "Steam Linux Runtime - soldier" will also be installed as a side-effect.

Testing the host system

If your operating system has vulkaninfo available, install and run it. It will often be in a package named vulkan-tools or vulkaninfo. Save its output to a file:

vulkaninfo > ~/tmp/vulkaninfo.txt 2>&1

Testing Steam on the host system (no workaround)