Jump to content

Wait! Your Integrated Graphics Isn't Useless!

 Share

Integrated graphics have developed a reputation of being forgettable to users with machines that contain discrete graphics cards. As this stigma progressed, Intel began to sell versions of their processors with the integrated graphics fused off, earning them the 'F' nomenclature and AMD simply doesn't include integrated graphics on their mainstream processors at all(for now). As a fairly new owner of a 12700K, I wanted to find a way to utilize the iGPU during normal usage and maximize gaming performance. I bought the whole CPU, I want to use the whole CPU damn it! With AMD recently announcing that their Zen 4 line up will all feature powerful integrated graphics, I anticipate many of you may want to do the same. So lets discuss some uses!

 

Established uses for iGPU

Obviously, the iGPU can do something, but what are its conventional uses?

1. Rendering Games - Not all systems have a discrete graphics card. The integrated graphics of the CPU may be responsible for delivering the systems display and even pushing out those sweet, sweet frames. Depending on the age of your chip, the tier of the graphics included, and your expectations of gaming performance, the integrated graphics may be able to deliver an adequate gaming experience. However, most gamers agree that the experience offered by a discrete GPU is far superior.

2. Production Workloads - This is a category in which I am not as knowledgeable but I am aware of the role some iGPUs play. Encoding technologies such as Intel QuickSync can boost performance in certain applications. Unfortunately I am not a video editor, so my knowledge of how to leverage the integrated graphics in this manor may need to be sought elsewhere.

3. Diagnosis - Did your cat just knock over your gaming tower? Did you just receive your new GPU in the mail after selling your old model only to find it dead on arrival? Or, did you turn on your PC one day and notice that your monitor refuses to present you any of its usual beautiful pixels? Well my friend, you may just have a inoperative graphics card. If you don't have an iGPU, your only method to confirm this prognosis is to source another GPU to use as a video output. However, if you have integrated graphics, you could simply swap over to your motherboards display output to see if your image returns. You can even continue to happily (comparatively speaking) use your PC until you are able to get a replacement graphics card.

 

Well those seem like some very limited and conditional use cases. Might as well save a buck and go buy an 'F' SKU Intel chip or a 5000 series Ryzen CPU and forget about it all together, right? Well, hold on. I have a use case that might convince you to splurge on a integrated graphics equipped processor.

 

Preface

If you are like me, you want to squeeze the absolute most out of the hardware that you have. This includes overclocking, configuration tweaks, and manipulating game settings. However, I have a nasty habit of leaving my web based background tasks open. Whether its YouTube, a forum thread, a Twitch stream, or lttstore.com, I always tend to use my second monitor for browser based tasks and leave it playing videos while gaming. As you may recall, I recently acquired a 12th Gen 12700K Alderlake CPU, granting me access to a set of four lower power efficiency cores or 'E' cores. With a program called "Process Lasso", I've used CPU pinning or persistent CPU affinity to lock specific applications, such as web browsers, to only run on 'E' cores. This gives my games unfettered access to the eight more performant 'P' cores.* Even with these previsions, I would still notice small impacts to gaming performance during video playback, especially in games which fully leverage the GPU of my system. My avarice to retain those frames led me on the path of discovery through which I've found a solution. I am going to show you how to delegate the processing and rendering of your accessory applications to your integrated graphics.

 

*The Windows scheduler will try to mimic this behavior naturally, but Process Lasso is a user-transparent way to ensure this happens.

 

Hardware and Configuration

In order to pull this off, you will need to be running two or more monitors in your set up. Identify which monitor you will most likely be using for video playback and disconnect it from your GPU output. Additionally, you will need to have a motherboard with a video output which supports "iGPU Multi-Monitor" which should be most. This will allow you to use your integrated graphics to output a second display without losing any functionality. Connect your selected monitor to the back of your motherboard, turn on your PC while mashing the F2 and Delete keys at the same time to maximize your APM, then hunt out and enable the "iGPU Multi-Monitor" setting. Mine was under Settings\Advanced\Integrated Graphics Configuration\ on my MSI Z690 Tomahawk D4, but your location may vary depending on the make and model of your motherboard. Hit F10 to save your changes and boot into Windows.

 

NOTE: The monitor you plugged into your motherboard may not turn on, depending on the presence of integrated graphics drivers. We will be covering this next.

 

Configuration in Windows

Now that we are in Windows, we've got a few more things to do before we can claw back all of our lost frames. First, we want to check our drivers in Device Manager to make sure our integrated graphics drivers are installed. To access Device Manager, you can search for it in Windows incredible built in search function. Failing that, or for users that want to feel fancy, you can press Windows Key + R to open a Run window then type "devmgmt.msc" and click "OK". Once you have Device Manager open, identify the tab labeled "Display Adapters" and ensure you see more than one option listed under, one for each graphics card you have installed and an additional one for your CPU's integrated graphics.

image.png.67f2bdb421cf9db5af217bf65a7feba7.png

If you do not see your integrated graphics present, navigate to the manufacturer's website, identify the page pertaining to your product, and search for the integrated graphics drivers under the "drivers and firmware" tab. Once downloaded and installed, your system may need a restart before the new driver populates in Device Manager.

 

Now that we have the necessary drivers, we can move on to the main part of this guide, delegating processes to run on the iGPU. Windows has a fairly intuitive and effective way to do this. First, we are going to want to decide what process or application we will be exiling from our primary GPU. For this example, I've chose Mozilla Firefox since it is fairly common and plays nicely in my testing (more on that later). Open a instance of Firefox and grab your Task Manager while you are at it. Navigate to youtube.com/linustechtips and begin playing back a video. Pull up Task Manager, select the Performance tab and locate your primary graphics card on the left. You will see a several graphs listed, of which, we will focus on the 3D and Video Decode.

image.png.18f8098ea69c0aacabe8de90be8f6c1f.png

 

You see that? That's your primary graphics card being used as the browsers video decoder and renderer. In other words, your browser is stealing your frames away from you!

 

To combat this, open your Windows settings, select system, display, then scroll down until you find Graphics Settings. Once in, scroll down again to find a tab labeled "Graphics Performance Preference"; this is what we will tweak on a per-application basis to achieve the desired effect. Select whether you are using a Windows Store application or a Desktop application. After selecting Desktop application, click "Browse". This will open a familiar file explorer. Our task will be to locate the executable file associated with the program we are looking to affect. To make this easier, make sure the desired application is running and re-open your task manager, selecting the Processes tab. Click the arrow next to the desired process to view all of its instances. Right click on any of them and select "open file location". This will open another file explorer instance, this time it will be open to the location of the executable we are looking for. Simply follow the same directory path in the original file explorer you opened through settings and select the executable and click "add". You should now see the application populate under the Browse button. Click on the application, click options and you should be greeted by a menu allowing you to select your integrated graphics as your preferred graphics device. If you followed the steps above, you should get a screen that looks like this:

image.png.8ed55a4bca8baae074ea4cf544a2fe10.png

 

Finally, hit save, close the application you are seeking to affect and re-open it. Once again, navigate over to youtube.com/linustechtips and playback the same video as before, making sure the browser is open on the display connected directly to your motherboard. Check your primary graphics card performance in Task Manager. Ideally, you should not see any activity on the primary GPU. Look at the performance of the integrated graphics. You should notice activity in the Video Decode or Video Processing and in the 3D graphs. If you do, then pat yourself on the back. You have just successful proved to yourself and the world that integrated graphics are not useless!

 

Testing with some Extremes

Now that we know how to do it, let test the limits. We are going to run an intensive game, like Call of Duty: Warzone, at the same time as an e-sports title, like Overwatch, and test if our tweaks were able to make a difference.

 

In Warzone, I use the the training map, stand in a particular patch of grass and look at the tip of a particular rock to standardize the test. I am aware that this does not truly reflect the intensity of the game when in a live match but it was simple to set up and repeatable.

image.png.505a8353ddc30fbe2321a0c94d776d63.png

Running Warzone on its own, I was able to get an average of about 147 FPS, a respectable result! Let's see what happens when we open another game.

 

Developing a proper graph while Overwatch was open proved to be a bit of a challenge. If you are willing to take my word, Warzone ran at about 109 ~ 114 FPS while Overwatch was open in the training range.

But what happens if I follow my own advice?

 

image.png.d5649f752d32c5be89365f538dfe538a.png

With Overwatch running on the integrated graphics, it was able to achieve about 28 FPS. For 1440p, that isn't too terrible. Looking at the Warzone results, we managed to retain 140 ~ 142 FPS! It likely that the slight performance drop comes down to the sharing of some resources such as CPU cores, cache, and RAM. But still, this shows a massive increase in performance compared to the default config.

 

Final Notes and Caveats

Before delivering my closing thoughts, I wanted to bring up a few caveats and issues. Some, I am still seeking solutions and hopefully help from my readers, and some others seem like they may not have solutions.

1. System RAM - the iGPU uses your systems RAM as video memory. If you have a shortage of RAM or if this configuration tweak pushes you over the limit of what you have, you may see a notable hit in gameplay performance. Unlike the slightly lower but still steady performance impact previously, you may notice more major temporary frame dips and hitches which I would consider to be far worse.

 

2. CPU Bound Games - If the games you play are not intensive on your GPU but instead are bound by CPU performance, you may notice no difference or potentially worse performance as a result of this guide. I did not thoroughly test every game I had so depending on your case, your mileage may vary.

 

3. Some Applications Don't Play Nice - This is the big one. Some applications just don't work as expected. Most damning of all: applications based on Chromium. These applications would include Google Chrome, Microsoft Edge, Opera GX, and even our beloved Discord. However, all hope is not lost. I just need some help in finding a solution. Chrome and other Chrome-based apps still work after following this guide, but when playing back a video from YouTube, the primary graphics card is still utilized as the renderer. This is observable in Task Manager as some activity under the "3D" graph of the primary GPU. The video decoding is properly running on the iGPU and you can even see rendering activity on the iGPU as expected, but somehow someway the primary GPU is still burdened by the rendering task. This manifests as a minor decrease in gaming performance, the exact thing we were hoping to resolve. However, there seems to be an extremely quirky work around.

 

Using Device Manager, if the primary GPU driver is disable before opening the Chromium-Based app then re-enabled after it is opened, then the Chromium-Based app will only utilize the iGPU and the primary graphics can be left to drive games to their full potential. This work around is not ideal but I am yet to find a viable work around to this issue. I am not sure if it is an issue with the Chromium framework itself or some strange interaction between the windows scheduler and Chromium. But given the desired effect can be achieved, it serves to reason that there is a more viable way to achieve it. Please let me know if anyone has any idea as to why this happens and if you can suggest a work around.

 

Closing Statements

If you made it this far, thank you and I hope this helps you squeeze just a couple more frames out of your current set up. If you have a current Ryzen or 'F' SKU Intel part, I would not recommend this functionality as a reason to upgrade. However, since the 'Non-F' SKU intel chips generally run only a handful of dollars more than the 'F' SKU counterparts, perhaps consider grabbing a 'Non-F' variant the next time you are in the market. You may just thank me on the day your GPU dies and you would have been stuck without video output. To my AMD users, rejoice! We have confirmation that new Zen 4 Ryzen parts will all come with integrated graphics! This means this guide may be relevant to many people in the future, given AMDs massive increase of marketshare/mindshare in the DIY space over the last couple years. As for me, I will continue to seek answers to refine this process and convince others that iGPUs are relevant! I'll report anything I find as an amendment to my post. Otherwise, you can catch me finding niche solutions to problems that don't actually exist.

 

Is Nvidia Shadowplay Instant Replay feature wearing out the write endurance of your SSD by continuously writting full resolution footage to it in the form of temporary files? Consider a network attached RAM disk hosted on a different system! Let me know if you want to hear that story...

 

Till Next Time,

IceNine

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

I don't think there's anyone in their right mind ever calls iGPU useless.

Especially since it's a useful thing to have when shit hits your GPU fans. Figuratively of course.
If it's literally then there's a huge chance the iGPU gonna be affected too. 😛

edit: especially ever since discrete GPU costs a kidney few years ago.

There is approximately 99% chance I edited my post

Refresh before you reply

__________________________________________

Link to comment
Share on other sites

Link to post
Share on other sites

  • 5 months later...

thanks for the post! iGPUs have gotten a lot better in recent years, so good to get people to stop just turning them off

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×