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?

  • Lomkey@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    I see the system you got came with a 4070 if was the elite or was custom?, Not sure if you try to reinstall pop is? Unless someone said it all ready. Its very weird that your video card giving you problem should just work.

  • Artyom@lemm.ee
    link
    fedilink
    English
    arrow-up
    15
    ·
    edit-2
    7 days ago

    A 7900xt is like top 5 consumer graphics cards ever made at the moment, so 10 fps on a 15 year old game is not normal. I have the same card and just beat Control and Space Marines 2 with max settings with ray tracing and it constantly stayed above 100fps, with a vast majority of its time maxed at 144.

    The first thing to do is to download CS2 and see where you’re at with max graphics, you should get steady 144fps. If CS2 works, it’s your games you’re playing, check proton db and see if there is some common advice on settings/boot configs. Proton GE and Feral gamemode are two common tricks. There’s also an option to trick games into thinking you’re on a steamdeck that’s becoming more common. If you see something unexpected with those configs, you may need to dig into your bios and make sure your card is behaving there, and there are some profiling tools for GPUs. You may have to update your drivers depending on your distro. Not all 7900 cards are the same, depending on the company designing the card’s case, you may get different behavior on things like fans.

    Their are some GUI tools that profile AMD GPUs, but I’ve found they don’t show must more than sensors and lsusb show.

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

      Yeah it appears my card isn’t being used at all, which explains the poor performance. Honestly the fact the system runs as well as it does without it is impressive. I’m reaching out to system76 for their diagnostics on why this might be

      • Artyom@lemm.ee
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 days ago

        A simple thing to check is did you plug your HDMI into the card or the motherboard? If it’s in the motherboard, the card won’t be used.

  • zamithal@programming.devOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    When I select proton-experimental as the version under force proton runtime, I actually see usage in rocm-smi, however I get a black screen or that weird “see behind my window effect I screenshotted” in another comment. When I let it choose, I can see the game but sit at 0% utilization.

  • Evotech@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    7 days ago

    Make sure you have your monitor plugged into the GPU, not the motherboard.

    This kinda sounds like that

  • Uncut_Lemon@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    5 days ago

    NVTOP - terminal top-like app, works well for AMD GPU stats.

    Mission Control - flatpak, windows task manager style process monitoring, shows GPU stats, much like windows.

    MangoHUD, in game overlay, showing live fps, CPU and GPU usage

    This are the 3 I tend to use to monitor my system performance

    (If you running a Wayland powered desktop, that may be a source of issues. I’ve had issues that I dont experience in good old X. But that was some time ago. My 6800XT performs as well as I expect it to under windows. Running NVIDIA on Linux is generally a real chore, AMD has been plug and play for me)

  • sith@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    5 days ago

    Almost certainly the game isn’t running on the GPU. Use rocm-smi to see which processes are using the discrete GPU. Should be similar to nvidia-smi.

    Also, check the Proton status of your games at ProtonDB.

  • FauxLiving@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    5 days 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.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      5 days 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
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        5 days 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.devOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days 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
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 days 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.

            • zamithal@programming.devOP
              link
              fedilink
              English
              arrow-up
              0
              ·
              edit-2
              3 days ago

              Well, back at it again. Tried ProtonGE with the same results. But the vulkan logs are interesting!

              cat ~/steam-220200.log | grep err

              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              

              EDIT: more context

              info:  Presenter: Actual swapchain properties:
              info:    Format:       VK_FORMAT_B8G8R8A8_SRGB
              info:    Color space:  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
              info:    Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR (dynamic: no)
              info:    Buffer size:  1920x1080
              info:    Image count:  4
              err:   Presenter: Failed to create Vulkan swapchain: VK_ERROR_INITIALIZATION_FAILED
              
              

              It’s filled with this error. The entire log is massive I cant even upload it to pastebin. If you want me to search for something specific lmk or how I can supply the entire log.

              EDIT2: also found:

              99664.262:00d4:00d8:err:xrandr:xrandr14_get_adapters Failed to get adapters
              
              99670.682:0180:0184:err:ole:com_get_class_object class {82c5ab54-c92c-4d52-aac5-27e25e22604c} not registered
              99670.683:00e8:033c:warn:threadname:NtSetInformationThread Thread renamed to L"wine_rpcrt4_io"
              99670.683:0180:0184:err:ole:create_server class {82c5ab54-c92c-4d52-aac5-27e25e22604c} not registered
              99670.684:0180:0184:fixme:ole:com_get_class_object CLSCTX_REMOTE_SERVER not supported
              99670.684:0180:0184:err:ole:com_get_class_object no class object {82c5ab54-c92c-4d52-aac5-27e25e22604c} could be created for context 0x15
              
              
              • FauxLiving@lemmy.world
                link
                fedilink
                English
                arrow-up
                0
                ·
                3 days ago

                99664.262:00d4:00d8:err:xrandr:xrandr14_get_adapters Failed to get adapters

                Hmmm, this gets some hits. It seems like it isn’t able to figure out which driver to use.

                You can specify the driver that Vulkan should use by adding an environmental variable VK_ICD_FILENAME set the the json file for your card.

                Try editing a game and changing the launch options to:

                VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json %command%
                
                • zamithal@programming.devOP
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  2 days ago

                  This removes that “Failed to get adapters” error from the proton log but the behavior remains the same and the VK_ERROR_INITIALIZATION_FAILED still persists

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

      This is Pop_Os, which is System76’s ‘ubuntu like’ distro that comes shipped with vendor maintained drivers. It comes preinstalled with steam and is intended to be able to use it right out of the box. I’ve opened a ticket with them to discuss it further

      • kekmacska@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        6 days ago

        don’t use it. It is totally left without support nowadays. They are developing COSMIC, a new Wayland desktop enviroment and Pop OS is abandoned. System 76 pcs support other distros too. You need something based on Fedora Atomic or Arch

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

          My goal for this system was to eject windows from my life prior to the launch of Windows recall. That and host a bunch of docker containers in an environment more reliable than windows. I got impatient waiting for cosmic to reach full support, but still wanted to go with the distro system76 ships as “theirs” as opposed to putting Ubuntu on their hardware. I haven’t checked if cosmic is officially out yet but will likely switch over when it is. I’m a novice with Linux btw. I can use it to host and run my software but wanted a prepackaged solution for my devbox so that I have a much lower chance of breaking it. Also things like my Wacom tablet just worked out of the box, which is all big plus.

          • sith@lemmy.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            5 days ago

            Unless you’ve solved the issue by know, I would recommend to install openSUSE Tumbleweed. It’s an “beginner friendly” “stable” rolling release distribution with rollback support. After the first update, everything should just work.

  • bitwolf@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 days ago

    Curious. Do you have a “run on discrete GPU” option when you right click an app icon?

    Iirc that feature is exposed on GNOME. Maybe you couldn’t steam on discrete GPU option as a troubleshooting step?

    That said I use both AMD cpu and GPU and it correctly defaults to the discrete GPU so this may not be the case