How to disable NVIDIA Optimus on a Dell XPS 15?
Solution 1
Short answer: It doesn't "switch" and you can't disable the Intel IGP.
Long answer: From a hardware point of view the Intel IGP is always handling image output to the laptop's LCD screen. The NVIDIA GPU copies rendered graphics into the Intel IGP's frame buffer (which resides in system memory) when it is active. The Optimus software makes certain programs use the GPU based on the loaded profiles and user settings. It currently does not support running the OS desktop compositing on the GPU.
See the Optimus White Paper for more details.
Solution 2
I am not familiar with this particular laptop, but there is very often an option in the BIOS to specify either Optimus graphics, or to force either the Intel or Nvidia card to be dominant. That would completely disable the one chipset.
Solution 3
I don't understand why DWM is different from any other 3D application, and hence why it has to be special.
It's a bit painful, but you might want to take a look at where all this information is stored (it might be in the C:\ProgramData\NVIDIA Corporation\Drs
folder) and then try modifying it with a hex editor to see if you can enable the combo box.
If you're into programming, you could also try forcing the drop-down menu to be enabled by (1) getting the window handle to the combo box, and (2) calling EnableWindow
on it, although in my experience this doesn't always work.
Solution 4
Optimus CAN be disabled in the BIOS, only problem is you need to UNLOCK the default BIOS.
I have an Alienware and unlocked the A08 BIOS, and there you can disable the IGP. I only run on NVIDIA and it is much smoother now.
Solution 5
You might have a look at this patch to the Nvidia drivers : Hybrid PhysX mod v1.03 / v1.04ff, which seems to be related to your problem. Better read the comments as well.
Towards the end, one comment confirms v1.04ff as working for version 270.61 that you are using.
If you decide to try it out, first take some good backups.
Fopedush
Updated on September 18, 2022Comments
-
Fopedush almost 2 years
I've got a new Dell XPS 15 (L502x) with an NVIDIA GeForce 540M, Intel Core i7Q 2.2 Ghz, and Crucial RealSSD hard drive. As with most laptops with NVIDIA cards these days, it's got the "Optimus" feature, which switches between the integrated Intel HD graphics and the much more powerful NVIDIA card seamlessly, with the goal of providing better battery life.
I assumed when I bought this laptop that there would be certain common sense options, such as the ability to use only the NVIDIA card when on A/C power, and/or the ability to force usage of one card or the other. It appears that either I was wrong, or I just can't figure out how to do it.
I want to know how to configure Optimus in such a way that the NVIDIA card is always used for all tasks, including the Windows desktop/Aero. I'm not satisfied with the performance of the Intel card, so I'd like to bypass it completely. I'm aware that due to the hardware configuration of these cards, the Intel hardware cannot simply be disabled, but I'd like the NVIDIA card to be doing all the work. I've dug through both the NVIDIA Control Panel and the Intel settings program, without finding any clues how to do this. I've done a lot of googling on the subject, but found little of use.
Things I have tried so far:
Checked in the BIOS for an option to use one video card or the other exclusively; no such option exists.
Updated the BIOS, with no effect.
Set Nvidia Control Panel to use the Nvidia GPU as the default device.
Tried forcing dwm.exe to run on the NVIDIA GPU via the NVIDIA control panel, with the goal of getting Aero to render on the NVIDIA GPU. There appears to be a special exception for this program, as the drop-down box for GPU selection is grayed out and set to "Integrated Graphics":
Tried forcing older, pre-Optimus drivers on the card; no success.
Any suggestions are very welcome, but please don't answer that I shouldn't be looking to disable Optimus!
-
Supercereal about 13 yearsDamn I wish my laptop had this option... however it does let me increase the FSB which is rare in laptop bios.
-
Fopedush about 13 yearsUnfortunately there is no such option in the bios on this laptop.
-
uxout about 13 years@Fopedush - Then you're probably out of luck, I know of no other way to do it, and I spent a lot of time researching this for a particular compatibility problem we had with a video peripheral we sell. (Luckily, the Thinkpads that we're selling it with DO have this option in the BIOS.)
-
Supercereal about 13 years@Dragonlord exactly, it's a very nice feature.
-
uxout about 13 yearsI didn't realize it did the rendering this way, interesting...also, this further cements my concern that if the BIOS doesn't give a way to explicitly do it, there is not any way to do it. +1 for that.
-
uxout about 13 yearsIt's probably being treated differently simply because of the fact that it's operating at such a low level on such an integral part of the OS. They don't want you dicking around with it, I suppose. :/
-
Fopedush about 13 yearsAnother one of the diagrams in the white paper seems to indicate that the Nvidia card is still capable of doing direct rendering to a screen through it's own frame buffer, without any involvement from the Intel card - so long as the Nvidia card is preferred at a driver level. It looks like the only thing that matters is which card the screen is physically connected to - The nvidia card cannot render directly to a screen that is connected physically to the Intel card. Maybe, with some rework, I can hook up the primary display directly to the nvidia card.
-
Fopedush about 13 yearsDicking around is my middle name. I like this answer because I hadn't thought to try it yet. Unfortunately the nvidia profiles are encrypted, so I wouldnt be able to manually edit them very easily. As for forcing the dropdown, I doubt it will really work, but it sounds like fun to try. Maybe I'll take a crack at it later.
-
Fopedush about 13 yearsFurther evidence that this is the case: When I hook up a second monitor to the laptop through the HDMI port, everything on that monitor is rendered with the Nvidia GPU, including desktop compositing.
-
user541686 about 13 years@Shinrai: Lol. I'm not sure it's quite as low-level as you think... it's not even running under the
SYSTEM
account, and it's all in user-mode. @Fopedush: Hm... are you sure they're encrypted? When I open some files in that folder on my computer, I see a lot of things in plain text... -
uxout about 13 years@Mehrdad - I don't think 'low level' was exactly what I meant to say. A lot of things make assumptions about how dwm is operating, and they don't want you undermining those assumptions, how's that?
-
user541686 about 13 years@Shinrai: Mm okay, sure. @Fopedush: XML? My profile files don't look like that (then again, I don't have Optimus)...
-
uxout about 13 yearsI have an Optimus machine in house; I'll take a look.
-
uxout about 13 yearsAddendum: I can't find the damned profiles at all (ProgramData, AppData...all I see are the Updatus profiles.) Where were you looking @Fopedush?
-
Fopedush about 13 yearsI was looking in C:\ProgramData\NVIDIA Corporation\Drs, as Mehrdad suggested. I found a bunch of .bin files, which, if you look at them in a hex editor, appear like they could be profiles. It's really hard to tell, there is a bunch of indecipherable garbage in there, but also the names of a lot of .exes.
-
user541686 about 13 years@Fopedush: If you rename
DWM.exe
to something else (back it up first obviously), what happens? Can you then add it manually in the list (since it won't be predefined anymore)? -
Fopedush about 13 years@Mehrdad - Yes! If I copy dwm.exe to dwm-copy.exe, I can use the nvidia control panel to set that exe to run under the nvidia GPU. However, I'm unable to get the new dwm-copy.exe to run (simply trying to launch the exe doesnt work). I'm currently trying to get the UxSms service (desktop compositing) to launch dwm-copy.exe instead of dwm.exe. No luck yet, but I'll keep you informed.
-
user541686 about 13 years@Fopedush: Sorry I think you reversed what I meant. :-) I meant you should rename
dwm.exe
in the profile using a hex editor, and then try adding it manually using the NVIDIA control panel. I wasn't telling you to rename a system file. :P -
Fopedush about 13 yearsOdd thing is, I can't find dwm.exe in what we are assuming to be the profile. However, I'm very curious what will happen if I manage to get my new dwm-copy.exe running. Only hitch it, dwm.exe is a service. I've created a new service that invokes dwm.exe directly (after temporarily disabling the real one), but this fails. It looks like I need to figure out how to invoke dwm-copy.exe through svchost. I've got to step out for a few hours but I'm going to continue working on this tonight.
-
uxout about 13 years@Fopedush - sorry, didn't see response since you didn't @ me. That's what I see on my Optimus machine as well, they're do indeed look just like that.
-
Fopedush about 13 yearsI tried this to seemingly no effect today while I had a free moment, and it didn't seem to work. I'll read the thread more thoroughly this weekend (maybe I missed something). Will report back.
-
Fopedush about 13 yearsI appreciate the thoroughness of your answer, but I still feel like there may be a way to circumvent this problem. I would gladly mark this as the correct answer and give you the 500 point bounty, but I feel that would be doing a disservice to anyone else fighting this problem. Optimus is becoming more common, and many people may want to take a crack at this now or in the future - so I want to leave the question open. You've got a good number of upvotes, so you should receive half the bounty (250) when it ends. Thank you for your effort.
-
Fopedush about 13 yearsUpdate: Unfortunately, my efforts to get a copy of dwm.exe launched successfully through servicehost have continued to fail.
-
Fopedush about 13 yearsEven with the Nvidia card set to the preferred device, all desktop compositing is still performed on the IGP.
-
Joshua about 13 years@Fobedush - absolutely right.
-
Fopedush about 13 yearsChan: Have you confirmed that this works using a tool such as the NVIDIA Optimus GPU State Viewer? It seems that this method is simply displaying available auxiliary outputs - one of which is the Nvidia card. After clicking on "Available GPU", the "Apply" button remains grayed out for me, as I have not actually made any changes. Perhaps you can clarify your instructions or confirm that this works for you with the test tool?
-
Fopedush over 12 yearsThis question may be old, but that doesn't mean I'm not still looking for an answer. I'll take a crack at this tonight. In the mean time, can you provide any additional details about this? Shall I just browse over to bios-mods and search for an unlocked version of the bios for my machine?
-
Fopedush over 12 yearsLooks like someone created an unlocked bios A06 for the XPS15 (forum.notebookreview.com/7211002-post1755.html). He says that it provides an option to disable the IGP, but he also says that it doesn't work. Regardless of that, I'll give it a shot tonight and see what happens. I'm giving you an upvote simply because this is a new idea that I haven't tried yet.
-
Fopedush over 12 yearsUnfortunately while I was at work today I had the mistaken impression that this laptop was an L501x. It is actually an L502x. According to bios-mods, the L502x uses a UEFI bios, and so far no one on that site has been able to provide an unlocked version.
-
Dmitriy over 12 years@Fobedush how do you know that desktop compositing is performed on IGP?
-
Fopedush over 12 years@geotavros the Nvidia Optimus Test Viewer can be used to confirm that desktop compositing is being performed only on the IGP regardless of optimus settings.
-
Andrew over 11 years"I don't know if this actually works but..." is not a great way of giving an answer!
-
Sirber over 10 yearsThose two GPUs doesn't have a screen connected.
-
Mohammed Aslam about 5 years@Fopedush did it work with unlocked bios?
-
Fopedush about 5 years@MohammedAslam No, I never found a working unlocked BIOS.