Steam Games Using the Discrete AMD GPU on Haswell Laptop

I have a couple of, now older, 4th Generation Intel, Haswell, Dell Latitude E6x40 machines that have discreet AMD GPUs. These laptops are going on 10 years old and truly at end of life in a modern sense but I just can’t let these machines go. They are some of the nicest laptops I have had and really are quite usable. The problem is, Vulkan support on Hazwell iGPUs (integrated Graphical Processing Units) is incomplete and as a consequence, unstable.

This is a guide on getting 4th Generation Intel computers with an available discrete GPUs to be used by Steam and other games to extract more performance out of your aging hardware. This example is using the Dell Latitude with AMD GPUs. I’m sure this would work with Nvidia machines too but I can’t verify that. Hopefully, this will be useful for those with similar hardware. I can’t imagine there is any real risk to your hardware by trying this for yourself. Also note, I use openSUSE so my instructions are focused on that.

Disable Vulkan with iGPU

There was an update to Steam which made the interface experience a crash / launch cycle that could only be broken using the terminal or system monitor to kill all things Steam.

The fix for that was to disable Vulkan in the launcher. That was achieved by replacing this line:

Exec=/usr/bin/steam %U

With this line:

Exec=env PROTON_USE_WINED3D=1 /usr/bin/steam %U

Really, it is just adding “env PROTON_USE_WINED3D=1” to the Exec line.

After making this change, the integrated GPU on the 4th generation Haswell processor just isn’t cutting. The framerate is not great at all. As previously stated, Vulkan support is incomplete but there is a solution here. Some games are becoming unplayable on Steam entirely with the WINED3D with low framerates but I am just not ready to let go these machines.

The solution here is leveraging the Discrete GPU (dGPU) that is bundled in this kit to squeeze a bit more performance out of the machine. It’s not great by today’s standards but the dGPU is an AMD Radeon HD 8600M Series with 2 GB of video RAM which for some games is still quite capable.

Activate dGPU

I use openSUSE so this section is focusing on the process for activating the AMD GPU in the aforementioned laptops. For Nvidia and other Linux distributions, you will have to search on that section specifically.

To Ensure the GPU is activated, using these instructions here for AMD. This is the process to follow for openSUSE Leap and Tumbleweed.

https://en.opensuse.org/SDB:AMDGPU

From here, you can use the dGPU with any application by invoking the DRI PRIME option. Example you can start Tuxracer (etr) like this:

DRI_PRIME=1 etr

All graphics processing is offloaded onto the discrete AMD GPU which will take just a bit more power than the integrated GPU.

Use dGPU on Steam Games

To utilize this with Steam, you can’t just add that to the execution line previously demonstrated. Steam will do its endless crash loop if you do so. You can, however, add it to the launch options of the individual games that demand it for acceptable performance.

First, select the “Manage” button on the individual game you want to improve performance.

Then Select Properties

Locate the Section with Launch Options

It is likely that it will be blank. Here is where you add DRI_PRIME=1

Launch the title again and you will notice improved performance but you are still not getting the maximum benefit out of that dGPU. For that you will have to add the -vulkan option to use the more modern libraries.

I do want to note here that there are some games that do not take kindly to the Vulkan option, one such Title is the “Stanley Parable Parable: Ultra Deluxe” which will crash out. When the game is started. You may have to experiment here a bit as to what games work better than others with Vulkan on your hardware.

Force Vulkan Shaders to be Precompiled

For an extra bit of optional performance is to precompile the shaders for the game before you play. This can be done by opening up the Steam Console and running a simple command.

Open the Console by opening a terminal of your choice like Konsole and running this:

steam -console

I want to caveat that this sometimes worked with Steam open and sometimes required it to be closed before this would open, so your mileage may vary.

Determine the application number in Steam which can be determined by opening the Steam Store in a browser and find the game. Use the app number in the URL to be used in the command:

In the shaders can be precompiled by running this in the Steam Console. In the case of “LEGO Star Wars The Skywalker Saga,” the number 920210 and can be run like this:

shader_build 920210

Then your system will do the work in precompiling your shaders. At least, it’s true with some games, not all.

Performance Improvements

Just by using the dGPU, “The Stanley Parable: Ultra Deluxe” went from being nearly unplayable to around 30FPS. Not great but now quite playable. This also improved the LEGO games I tested as well from 15 to 20 FPS to about 30 FPS even reaching 40 FPS and ever so rarely 60 FPS (rarely but it did happen).

Final Thoughts

This whole exercise was most certainly worth it, am I going to replace my SteamDeck with my Dell Latitude E6440 but what it does mean is that it can be pulled out of retirement for some of the games in my Steam Library and that is pretty cool. This also means that it is possible for someone to enjoy much of the Steam Library on a 10 year old GPU hybrid laptop.

The greatest benefit that I am receiving from this whole project is receiving fewer complaints from my oldest child about the poor performance of his Dell Latitude E6540. That machine is now pretty decent!

References

https://store.steampowered.com
https://en.opensuse.org/SDB:AMDGPU
SteamDeck
Steam Store


Discover more from CubicleNate.com

Subscribe to get the latest posts sent to your email.


Comments

Leave a Reply

Discover more from CubicleNate.com

Subscribe now to keep reading and get access to the full archive.

Continue reading