Framework 16 GPU Upgrade?

I’m finding that my Framework 16 barely holds its own against some older games on high settings, like Just Cause 3. I had to turn down the resolution to get a snappy framerate. It even got a bit choppy in a Half Life 2 level!

Is anyone planning a better graphics card for this? How hard would it be to make one? I would imagine cooling, PCIe signaling, and GDDR signaling to be some of the top challenges.

Do you have the dedicated GPU? If not, does this look similar to your performance? (Compare with the 780M)

Very hard.

3 Likes

Yes, I have the dGPU. I’ve checked that it is active in games. It’s also pretty apparent when it’s active since it gets quite hot. When the integrated graphics are active, the heat is centered under the keyboard instead of at the back.

I feel like there is something wrong if you are getting choppy framerates in Half-Life 2. That’s a 20 year old game. I’m pretty sure I played it with perfect framerates on a laptop with a mediocre dedicated graphics card like 10-12 years ago.

2 Likes

I’ve noticed the Vulkan transpiler seems to be less efficient at very old games. I suspect this is just due to suboptimal code and maybe a piorly optimized level.

Did you install the drivers from framework or AMD?
I got much better results with the AMD ones.

I think I may have also explicitly installed ‘amdgpu’-- the open-source driver. So, are you saying the proprietary driver works better?

I’ve been gaming on the 780m (finally decided to buy the dGPU a couple days ago) and this is not the experience I’ve had. While I have HL2 installed, I haven’t played it much but I would expect it to run smooth as butter. I’ve been playing Overwatch, WoW, Baldurs Gate 3, and etc. without much issue on the integrated graphics. Not maxed out, naturally, but medium settings and getting 60-120 fps.

Are you sure there isn’t some other issue going on?

1 Like

This is going to sound stupid, but disable fast boot. This cleared up numerous CPU performance issues for me.

Is this in Linux? If so try enabling vsync in the game. For me on KDE Wayland I’ve had to enable vsync or else whenever I move my mouse things get really choppy.

Arch Linux on Hyprland. The main issue for me might have been heat on that Halflife 2 session. It was sitting on plush cushions and the choppy scene happened while the keyboard was uncomfortably hot. I break thibgs a lot though, so as long as I can fix it when I drop it or spill something, I’ll take a bit of excess heat.

Just Cause 2 on highest settings seems to actually be choppy pretty much immediately at full resolution, but theres usually a period of reasonable performance until the system (quickly) heats up.

All that said, amdgpu_top shows 50-70C max.

Do folks think this isnt a performance-per-watt issue that could be mitigated with newer silicon?

What kind of average framerate are you getting in Half-Life? I haven’t played it in over a decade, but it was only $1.99, so I downloaded it and played for an hour or so this evening. Native resolution, all settings maxed out, set to sync with display refresh rate. It was rock solid at 165FPS with nary a hitch. As would kind of be expected for a 20 year old game that I don’t think took beastly hardware to run, even when it released (assuming I’m remembering that correctly). Granted, this was on Windows, not Linux.

Either way, it’s certainly not an issue with the raw power of the GPU or CPU.

1 Like

I feel like folks are really zooming in on this Half Life 2 comment. There was one choppy scene (boss fight with the bug bait and multiple helicopters), and the laptop was very suboptimally cooled. Other than that, Half Life 2 was perfectly smooth on max settings. And i think that was a thermal issue because the laptop was very hot.

It’s the more modern games like Just Cause 3 that I wish would perform better. Ideally more cooling, a newer GPU, or both. These also get very hot, and i wouldn’t be surprised if the system is thermally limited. I have no reason to suspect driver problems.

I haven’t experienced excessive heat, or choppiness in any of the games that I play - Hell, Cyberpunk 2077 on Ultra (RT OFF… Radeon isn’t built for that…) Nets me about 70-80 FPS and GPU temps stay below 75 degrees.

Things to note… The mesa drivers are what you want. You do not want “amdgpu”. AMD Drivers are built into the linux kernel.

If I remember correctly, amdgpu is for the “pro” series cards - not for gaming.

I am willing to bet that this is a major part of your performance woes.

1 Like

Have you seen the “uneven CPU thermals” thread? I’d do a benchmark with Cinebench R23 and check if you’re being affected by the thermal issue. It could explain the poor performance.

Aside from that, this laptop is powerful but it’s not magic, a lot of more recent games are targeting modern desktop hardware that’s much more powerful and can draw more power. I remember trying out Dragon’s Dogma 2 on it and I had to tune the graphics way down to get it to an acceptable framerate. Better components would need better cooling and allow for more power draw than a laptop with these dimensions can deliver.

1 Like

My understanding is that amdgpu provides the kernel level drivers and then mesa provides the vulkan and etc. libraries on top of it. So the two work in tandem. Perhaps you’re thinking of the amdgpu-pro driver, which is different.

Not sure - From my understanding the Linux kernel has the amd drivers build in. Doing a grep for amdgpu on my system RPMs only shows the following:

$ rpm -qa |grep amdgpu
xorg-x11-drv-amdgpu-23.0.0-6.fc41.x86_64
amdgpu_top-0.9.2-1.x86_64

While mesa:

$ rpm -qa |grep mesa
mesa-libGLU-9.0.3-5.fc41.x86_64
mesa-libGLU-devel-9.0.3-5.fc41.x86_64
mesa-filesystem-24.2.8-1.fc41.i686
mesa-filesystem-24.2.8-1.fc41.x86_64
mesa-libglapi-24.2.8-1.fc41.x86_64
mesa-libgbm-24.2.8-1.fc41.x86_64
mesa-dri-drivers-24.2.8-1.fc41.x86_64
mesa-libEGL-24.2.8-1.fc41.x86_64
mesa-libGL-24.2.8-1.fc41.x86_64
mesa-libGL-devel-24.2.8-1.fc41.x86_64
mesa-libEGL-devel-24.2.8-1.fc41.x86_64
mesa-libOSMesa-24.2.8-1.fc41.x86_64
mesa-vulkan-drivers-24.2.8-1.fc41.x86_64
mesa-va-drivers-24.2.8-1.fc41.x86_64
mesa-va-drivers-24.2.8-1.fc41.i686
mesa-libxatracker-24.2.8-1.fc41.x86_64
mesa-libgbm-24.2.8-1.fc41.i686
mesa-libglapi-24.2.8-1.fc41.i686
mesa-dri-drivers-24.2.8-1.fc41.i686
mesa-libEGL-24.2.8-1.fc41.i686
mesa-libGL-24.2.8-1.fc41.i686
mesa-libOSMesa-24.2.8-1.fc41.i686
mesa-vulkan-drivers-24.2.8-1.fc41.i686

And vulkan:

$ rpm -qa |grep vulkan
vulkan-loader-1.3.296.0-1.fc41.x86_64
vulkan-headers-1.3.296.0-1.fc41.noarch
vulkan-loader-devel-1.3.296.0-1.fc41.x86_64
vulkan-loader-1.3.296.0-1.fc41.i686
mesa-vulkan-drivers-24.2.8-1.fc41.x86_64
mesa-vulkan-drivers-24.2.8-1.fc41.i686

I have not installed any drivers that weren’t shipped from the kernel. This included when I built a kernel from source for testing an issue earlier.

From the following reddit post (Im not an arch guy)
https://www.reddit.com/r/archlinux/comments/17zgz7b/i_am_new_to_arch_and_linux_how_can_i_install_amd/

GPU drivers are in the kernel already.

For graphics API support you need `mesa` and `vulkan-radeon`, if you use Steam you will also require the 32-bit variants of these.

Do not use `amdvlk`, it does not work well with games.

More details from the arch wiki:
https://wiki.archlinux.org/title/AMDGPU#Installation

tl;dr - for the most part, the AMD drivers should “just work” - this is one of the advantages of AMD cards in linux over Nvidia at the moment.

lsmod | grep amdgpu

Will show the kernel built in drivers.
amdgpu is the gpu specific kernel driver.
drm is the layer above that the userspace mesa driver talks to. mesa has some gpu specific code in it also.

The is also a separate “amdgpu” driver, that one can download from amd Web site. With modern os and linux kernels, it’s best not to use the one from the amd Web site.

This:

For reference here is mine - note, the only thing I have done was ROCm for some AI applications:

$ lsmod | grep amdgpu
amdgpu              20107264  69
amdxcp                 12288  1 amdgpu
i2c_algo_bit           20480  1 amdgpu
drm_ttm_helper         16384  1 amdgpu
ttm                   114688  2 amdgpu,drm_ttm_helper
drm_exec               12288  1 amdgpu
gpu_sched              65536  1 amdgpu
drm_suballoc_helper    16384  1 amdgpu
drm_buddy              24576  1 amdgpu
drm_display_helper    290816  1 amdgpu
video                  81920  1 amdgpu

So, correct - I have “amdgpu” installed - however, this was done from the kernel itself, not any addition from my end.