this post was submitted on 16 Feb 2025
74 points (98.7% liked)

Linux Gaming

16382 readers
965 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.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 2 years ago
MODERATORS
 

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
[–] zamithal 5 points 6 days ago (3 children)

vulkan-tools | grep "GPU id":

		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
		GPU id = 0 (Radeon RX 7900 GRE (RADV NAVI31))
		GPU id = 1 (Intel(R) Graphics (RPL-S))
		GPU id = 2 (llvmpipe (LLVM 15.0.7, 256 bits))
GPU id : 0 (Radeon RX 7900 GRE (RADV NAVI31)):
GPU id : 1 (Intel(R) Graphics (RPL-S)):
GPU id : 2 (llvmpipe (LLVM 15.0.7, 256 bits)):

cat /var/log/Xorg.*.log | grep amd

[  5067.696] (II) LoadModule: "amdgpu"
[  5067.696] (II) Loading /usr/lib/xorg/modules/drivers/amdgpu_drv.so
[  5067.696] (II) Module amdgpu: vendor="X.Org Foundation"
	All GPUs supported by the amdgpu kernel driver

cat /var/log/Xorg.*.log | grep gpu

[  5067.696] (II) Applying OutputClass "AMDgpu" to /dev/dri/card1
[  5067.696] 	loading driver: amdgpu
[  5067.696] (==) Matched amdgpu as autoconfigured driver 0
[  5067.696] (II) LoadModule: "amdgpu"
[  5067.696] (II) Loading /usr/lib/xorg/modules/drivers/amdgpu_drv.so
[  5067.696] (II) Module amdgpu: vendor="X.Org Foundation"
	All GPUs supported by the amdgpu kernel driver

[–] [email protected] 4 points 6 days ago* (last edited 6 days ago) (1 children)

[ 5067.696] (II) Applying OutputClass "AMDgpu" to /dev/dri/card1

Make sure that you actually have permission to that /dev/dri/card1 device. This may be arranged by udev or "video" group membership.

Regarding AMD vs Nvidia, unless you need CUDA you probably made the right choice. This sounds like a config issue and you'd probably be dealing with the same thing with Nvidia too.

[–] zamithal 5 points 6 days ago

Yeah I'm pleasantly surprised by the unanimous responses that AMD seems to be the way to go in this space. At this point I know it's not using my GPU at all, so you are right that nvidia wouldn't be any different

[–] [email protected] 3 points 6 days ago* (last edited 6 days ago) (1 children)

GPU id : 0 (Radeon RX 7900 GRE (RADV NAVI31)):

That may mean that you have accelerated graphics via Vulkan. I'm familiar with glxinfo's output, and I'm pretty sure that the fact that it's not listing your GPU means that OpenGL apps won't have hardware acceleration, but not sure what vulkaninfo does if it has no hardware acceleration available -- I'm not certain that having the GPU listed there means that it has 3D acceleration, or whether it can list something running via software emulation.

Hmm. This may take a bit of feeling about, as a bit of this is new territory for me too.

When you run vkcube -- which uses Vulkan -- it'll show a spinning cube and print a single line of text about the GPU used. What does it show for you?

EDIT: Okay, apparently vkcube doesn't do what Vulkan apps are supposed to do by default -- it tries to pick a discrete GPU, so it's probably not the best sanity test for "what is a Vulkan-using program trying to render to".

I'm going to assume that the fact that vulkaninfo can see the GPU means that it's accelerated, though. If that's true:

  • You probably have 3D acceleration at the kernel and Xorg levels.

  • Kerbal Space Program has a Linux-native binary (on Steam, this shows up as that SteamOS icon), so it's probably not going through Proton's DirectX emulation, and from there to Vulkan, which it would if it only had a Windows binary. It looks like it has both an OpenGL and a DirectX rendering path on Windows. Typically games like this with a Linux-native release use the OpenGL path on Linux. kagis At least as of 2021, it looks like it was indeed using only OpenGL on Linux. So if you don't have accelerated OpenGL, then it's presumably not going to be accelerated.

  • I don't think that glxinfo should be showing "llvmpipe". I'm pretty sure that that means that you don't have accelerated OpenGL available.

Take this with a grain of salt -- I've not run into an actual system where Vulkan-using games are accelerated, and OpenGL games are not. This is a guess. But it'd at least vaguely fit my understanding of what you've provided. I'm fuzzy on the relationship between Vulkan, OpenGL, and Mesa -- I don't know what exactly it might take to create issues for OpenGL but not Vulkan.

[–] [email protected] 2 points 6 days ago (1 children)

Okay, after some poking around, I did find at least one mechanism that could possibly cause OpenGL to not be accelerated but Vulkan to be accelerated:

https://superuser.com/questions/106056/force-software-based-opengl-rendering-on-ubuntu

Alternately, you can set LIBGL_ALWAYS_SOFTWARE=1, which will only affect programs started with that environment variable, not the entire system.

I also confirmed that it produces the output that you're seeing on my system -- with that set, glxinfo returns llvmpipe, even though vulkaninfo has GPU id 0 being the Radeon card. So if you've got that environment variable set somewhere, that could produce the behavior you're seeing.

@[email protected], I don't know how you could have gotten that set, but in whatever terminal you were running glxinfo and vulkaninfo, can you run set|strings|grep LIBGL and see if maybe that's set? If it is, maybe unset LIBGL_ALWAYS_SOFTWARE and then from that terminal start steam again and see if Kerbal Space Program runs fine then?

[–] zamithal 2 points 6 days ago (1 children)

It doesn't appear to be set and additionally I don't appear to have the libgl1-mesa-swx11 package mentioned in that post.

set|strings|grep LIBGL

apt list | grep libgl1-mesa

libgl1-mesa-dev/jammy 24.0.3-1pop1~1711635559~22.04~7a9f319 amd64
libgl1-mesa-dev/jammy 24.0.3-1pop1~1711635559~22.04~7a9f319 i386
libgl1-mesa-dri/jammy,now 24.0.3-1pop1~1711635559~22.04~7a9f319 amd64 [installed,automatic]
libgl1-mesa-dri/jammy,now 24.0.3-1pop1~1711635559~22.04~7a9f319 i386 [installed,automatic]
libgl1-mesa-glx/jammy-updates 23.0.4-0ubuntu1~22.04.1 amd64
libgl1-mesa-glx/jammy-updates 23.0.4-0ubuntu1~22.04.1 i386

This does remind me that while developing a webgl canvas based javascript app the other day I was forced to go into firefox's about:config and set webgl.force-enabled = true. I should have dug deeper on that.

[–] [email protected] 1 points 6 days ago* (last edited 6 days ago)

It doesn’t appear to be set

Ah, okay. Bit of a long shot.

and additionally I don’t appear to have the libgl1-mesa-swx11 package mentioned in that post.

You shouldn't need it -- that's for software rendering.

You might want libgl1-mesa-glx, but it sounds from that page like that was restructured prior to your distro release.

https://askubuntu.com/questions/1517352/issues-installing-libgl1-mesa-glx

ibgl1-mesa-glx has been a transitional package for a while and is now obsolete from Ubuntu 23.10 and onwards.

Installing libgl1 and libglx-mesa0 instead of libgl1-mesa-glx will result in equivalent behaviour and should work on Ubuntu 18.04 and newer.

Both libgl1:amd64 and libglx-mesa-0:amd64 are installed on my system. Are they installed on yours? If not, if they are available in your apt repo, maybe do so and see if your problems disappear?