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?

  • zamithal@programming.devOP
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 days ago

    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
    
    
    • donio@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      6 days ago

      [ 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@programming.devOP
        link
        fedilink
        English
        arrow-up
        4
        ·
        5 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

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      6 days ago

      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.

      • tal@lemmy.today
        link
        fedilink
        English
        arrow-up
        2
        ·
        6 days ago

        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@programming.devOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 days ago

          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.

          • tal@lemmy.today
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            5 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?