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?
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
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.
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
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 whatvulkaninfo
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.
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
I also confirmed that it produces the output that you’re seeing on my system – with that set,
glxinfo
returns llvmpipe, even thoughvulkaninfo
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
andvulkaninfo
, can you runset|strings|grep LIBGL
and see if maybe that’s set? If it is, maybeunset LIBGL_ALWAYS_SOFTWARE
and then from that terminal startsteam
again and see if Kerbal Space Program runs fine then?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
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.
Ah, okay. Bit of a long shot.
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
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?
deleted by creator