9

I purchased a system76 Thelio Mira Elite With a AMD Radeon RX 7900 XT. I kinda regret not going with Nvidia at this point but it is what it is. I primarily use it as a developer workstation, but want to play games on it as well so I can be rid of my windows box.

I didn't expect it to be able to play the latest and greatest games but I did expect it to be able to play older titles reasonably well. Games launch from steam and seem to work, but I'm getting between 0 and 10 fps on the title screen of Kerbal Space Program. Other games are similarly functional but poorly performing.

Where do I start? How can I ensure my GPU is being leveraged? Is this as good as it gets?

you are viewing a single comment's thread
view the rest of the comments
[-] FauxLiving@lemmy.world 1 points 6 months ago* (last edited 6 months ago)

OP, I didn't see if you'd confirmed that you'd enable Steam Play, see this article: https://support.system76.com/articles/linux-gaming

Kerbal Space Program has a Linux native client and a windows client. By default, Steam will try to install the Linux native client, which is using OpenGL and, apparently, doing software rendering.

You could try to troubleshoot why OpenGL is broken, you probably are missing an environmental variable or something to tell it to use a specific device and so it defaults to software. However, this is kind of a moot point. Development stopped on OpenGL in 2017 and so bugs and weirdness will continue to crop up and fixing it won't resolve your core issue (Which may be that you're just not using Proton).

If you're going to game on this system then you should do what most people do and enable Steam Play and let Steam download the Windows version of KSP and run it through Proton (aka Steam's version of WINE). Often the Windows versions of games are more supported than the Linux native versions and WINE/Proton do an excellent job of translating the underlying windows system calls into Linux-ese. Proton is the primary reason why gaming on Linux works, because it lets you just play the Windows version of games.

Your logs indicate that your graphics card is the default device for Vulkan and so it should just work as soon as you enable Steam Play. If you have any problems with other games (once you verify that you're using your graphics card) you can look them up on Protondb (https://www.protondb.com/) and see if you need to make any setting changes. KSP looks to have a Gold rating and appears to work with Proton without any changes.

[-] zamithal@programming.dev 1 points 6 months ago* (last edited 6 months ago)

So steam play was already enabled, it looks like it defaults to "steam Linux runtime 1.0 (scout). When I select different versions of proton runtime I get different behavior dependig on which one I select.

Proton 9 says that it cannot switch to my monitors resolution,

Proton experimental and hot fix launch the game (I can hear it!), but things are ... Weird. It only renders the windows behind it and the custom game cursor. When I alt enter to bring it into Windows mode, it's still just the windows/desktop that would be behind the game but now it's scaled differently.

EDIT:

It's hard to tell but the above screenshot is the game window

[-] FauxLiving@lemmy.world 1 points 6 months ago* (last edited 6 months ago)

Stay with experimental for now.

Do other games show a similar behavior or is it limited to KSP?

BG3 should work fine (was just playing it on Linux about 30m ago, but Arch, btw, etc).

You can get some extra logging from steam, if you exit completely and the, in a terminal, run:

steam -d

It'll start Steam but output a lot of info to the terminal. The bit we're interested in isn't the stuff that it generates while Steam is starting. We want the bit that happens when you press play on a game. It'll output the information about the important bits (like the Vulkan device, driver versions, monitors, etc )

Make sure there's no obvious account info in the logs (there shouldn't be, but always check) and post that.

I'm off to bed but I'll check in with you tomorrow

[-] zamithal@programming.dev 1 points 6 months ago

Well I've installed BG3 just for the sake of testing and the DX11 launch results in a black screen. The Vulkan launch options crashing immediately...

Here is my steam logs when launching KSP I think the only thing of interest is this:

pressure-vessel-wrap[42106]: W: "opt/amdgpu/share/libdrm" is unlikely to appear in "/run/host"
pressure-vessel-wrap[42106]: W: "opt/amdgpu/share/drirc.d" is unlikely to appear in "/run/host"
Adding process 42106 for gameID 220200
Adding process 42107 for gameID 220200
pressure-vessel-wrap[42106]: I: pv_runtime_provide_container_access: Setting up runtime without using bwrap
pressure-vessel-wrap[42106]: I: EGL ICD #0 at /usr/share/glvnd/egl_vendor.d/50_mesa.json: libEGL_mesa.so.0
pressure-vessel-wrap[42106]: I: Vulkan ICD #0 at /usr/share/vulkan/icd.d/intel_hasvk_icd.i686.json: /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #1 at /usr/share/vulkan/icd.d/radeon_icd.x86_64.json: /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #2 at /usr/share/vulkan/icd.d/intel_icd.x86_64.json: /usr/lib/x86_64-linux-gnu/libvulkan_intel.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #3 at /usr/share/vulkan/icd.d/virtio_icd.i686.json: /usr/lib/i386-linux-gnu/libvulkan_virtio.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #4 at /usr/share/vulkan/icd.d/intel_icd.i686.json: /usr/lib/i386-linux-gnu/libvulkan_intel.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #5 at /usr/share/vulkan/icd.d/radeon_icd.i686.json: /usr/lib/i386-linux-gnu/libvulkan_radeon.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #6 at /usr/share/vulkan/icd.d/intel_hasvk_icd.x86_64.json: /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #7 at /usr/share/vulkan/icd.d/lvp_icd.i686.json: /usr/lib/i386-linux-gnu/libvulkan_lvp.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #8 at /usr/share/vulkan/icd.d/virtio_icd.x86_64.json: /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so
pressure-vessel-wrap[42106]: I: Vulkan ICD #9 at /usr/share/vulkan/icd.d/lvp_icd.x86_64.json: /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so
pressure-vessel-wrap[42106]: I: Vulkan explicit layer #0 at /usr/share/vulkan/explicit_layer.d/VkLayer_INTEL_nullhw.json: libVkLayer_INTEL_nullhw.so
pressure-vessel-wrap[42106]: I: Vulkan explicit layer #1 at /usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json: libVkLayer_MESA_overlay.so
pressure-vessel-wrap[42106]: I: Vulkan implicit layer #0 at /home/zamithal/.local/share/vulkan/implicit_layer.d/steamfossilize_i386.json: /home/zamithal/.steam/debian-installation/ubuntu12_32/libVkLayer_steam_fossilize.so
pressure-vessel-wrap[42106]: I: Vulkan implicit layer #1 at /home/zamithal/.local/share/vulkan/implicit_layer.d/steamfossilize_x86_64.json: /home/zamithal/.steam/debian-installation/ubuntu12_64/libVkLayer_steam_fossilize.so
pressure-vessel-wrap[42106]: I: Vulkan implicit layer #2 at /home/zamithal/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json: /home/zamithal/.steam/debian-installation/ubuntu12_32/steamoverlayvulkanlayer.so
pressure-vessel-wrap[42106]: I: Vulkan implicit layer #3 at /home/zamithal/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.json: /home/zamithal/.steam/debian-installation/ubuntu12_64/steamoverlayvulkanlayer.so
pressure-vessel-wrap[42106]: I: Vulkan implicit layer #4 at /usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json: libVkLayer_MESA_device_select.so
pressure-vessel-wrap[42106]: I: Capturing glvnd loadable module #0: /usr/share/glvnd/egl_vendor.d/50_mesa.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: libEGL_mesa.so.0
pressure-vessel-wrap[42106]: I: Captured glvnd loadable module #0: /usr/share/glvnd/egl_vendor.d/50_mesa.json
pressure-vessel-wrap[42106]: I: Implementation on x86_64-linux-gnu: SONAME
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #0: /usr/share/vulkan/icd.d/intel_hasvk_icd.i686.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #1: /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #2: /usr/share/vulkan/icd.d/intel_icd.x86_64.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/libvulkan_intel.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #3: /usr/share/vulkan/icd.d/virtio_icd.i686.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/i386-linux-gnu/libvulkan_virtio.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #4: /usr/share/vulkan/icd.d/intel_icd.i686.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/i386-linux-gnu/libvulkan_intel.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #5: /usr/share/vulkan/icd.d/radeon_icd.i686.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/i386-linux-gnu/libvulkan_radeon.so
pressure-vessel-wrap[42106]: I: Capturing vulkan loadable module #6: /usr/share/vulkan/icd.d/intel_hasvk_icd.x86_64.json
pressure-vessel-wrap[42106]: I: Checking for implementation on x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so
[-] FauxLiving@lemmy.world 1 points 6 months ago

No errors, that's good and also not useful :/

As an aside, this is likely not the problem, but a good tip in general, is to use protonup to install GE-Proton (https://github.com/GloriousEggroll/proton-ge-custom). It is a community fork which essentially Proton Experimental + community fixes. The System76 article I linked above has the instructions (TL;DR, install protonup (terminal) or protonup-qt (GUI) and they'll grab it for you and put it in the right directory, restart Steam and select the new version from the Compatibility menu either globally or per-game).

You essentially always want to be using the latest version of Proton unless something that was working breaks in a newer version.

So, next step, more logs:

You can enable proton logging by setting PROTON_LOG=1 as an environmental variable. You can do this per-game by right clicking a game -> Properties -> General and editing the launch options to say

PROTON_LOG=1 %command%

Launch the game and let it crash or whatever. There will be a steam-$APPID.log in your home directory.

this post was submitted on 16 Feb 2025
9 points (100.0% liked)

Linux Gaming

20740 readers
324 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

No memes/shitposts/low-effort posts, please.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 2 years ago
MODERATORS