DDU is often used as the solution to try when sorting out possible driver issues. At the same time, I've seen it suggested that it should be used whenever you make a hardware change, regardless of which path you go to. A common reason I heard is that the OS can get confused as to which driver to use. Although I haven't seen it, I have a feeling that people also think that because when you get a driver package from AMD or NVIDIA, they make you choose a specific model of graphics cards, and thus what you get only works with what you selected.
So I wanted to tackle a scenario since I was able to do this recently: Do you need to use DDU when upgrading from one NVIDIA card to another? The tl;dr is no, you don't.
However, if you want to continue suggesting that someone DDU the drivers anyway, I'm not going to stop you. This is just a post sharing what I've researched, what I've tested, and what I've concluded.
So I wanted to tackle a scenario since I was able to do this recently: Do you need to use DDU when upgrading from one NVIDIA card to another? The tl;dr is no, you don't.
Every piece of hardware that connects to the computer has a couple of hardware IDs. For expansion cards (which still use the convention set by PCI), the hardware reports a vendor ID and a device ID. For example, NVIDIA's vendor ID is 10DE, while the device ID for the RTX 3080 is (10DE)1467.
So taking this into account, Windows can use these hardware IDs to map to which driver to use. But how does Windows know which driver to use? When you install drivers, there's several components that make up what's called a driver package. The contents of the driver package can be found at Microsoft's documentation for Components of Driver Package. But one of the main files, the INF file, contains something important: which hardware ID the driver is compatible with.
As an example, this is found in the nv_dispig.inf file in NVIDIA's display driver package:
So basically, there's no real way for Windows to load the "incorrect" driver for the hardware in the system unless the drivers have been configured incorrectly or the device is reporting the wrong IDs.
Also note that driver packages can be compatible with multiple hardware. The screen cap above shows that this driver is compatible with the GTX 3050. In fact, this list went all the way back to the GeForce 750 Ti. And in fact, if you can check which cards are supported by a driver package on NVIDIA's website:
Also yes, this implies that, at least for the particular driver the INF file is for, it's compatible with the professional cards like the RTX A2000.
So taking this into account, Windows can use these hardware IDs to map to which driver to use. But how does Windows know which driver to use? When you install drivers, there's several components that make up what's called a driver package. The contents of the driver package can be found at Microsoft's documentation for Components of Driver Package. But one of the main files, the INF file, contains something important: which hardware ID the driver is compatible with.
As an example, this is found in the nv_dispig.inf file in NVIDIA's display driver package:
So basically, there's no real way for Windows to load the "incorrect" driver for the hardware in the system unless the drivers have been configured incorrectly or the device is reporting the wrong IDs.
Also note that driver packages can be compatible with multiple hardware. The screen cap above shows that this driver is compatible with the GTX 3050. In fact, this list went all the way back to the GeForce 750 Ti. And in fact, if you can check which cards are supported by a driver package on NVIDIA's website:
Also yes, this implies that, at least for the particular driver the INF file is for, it's compatible with the professional cards like the RTX A2000.
So for the specs of this test
- CPU: AMD Ryzen 5600X
- Motherboard: ASRock B550 Steel Legend, BIOS version 2.40
- RAM: DDR4-3200
- Video cards: NVIDIA GeForce RTX 2070 Super and RTX 4070 Ti
- OS: Windows 11
- Driver version: Gamer Ready 528.02
- 3DMark Speed Way
- 3DMark Time Spy
- Borderlands 3 (DX 12, Max settings, 1440p)
- Call of Duty: Modern Warfare II (Max settings, 1440p)
- Crysis Remastered (Very High, 1080p)
- Cyberpunk 2077 (RT Ultra, DLSS Auto, 1440p)
- Final Fantasy XIV: Endwalker (High Desktop, 1440p)
- Forza Horizon 5 (Ultra, 1440p)
- Metro Exodus: Enhanced Edition (Extreme, 1440p)
- Quake 2 RTX (1440p, timedemo 1)
- Red Dead Redemption 2 (Vulkan, Max settings, 1440p)
- With the RTX 2070 Super installed, update the drivers to 528.02
- Run all the benchmarks/tests
- Replace the RTX 2070 Super with the RTX 4070 Ti
- Run all the benchmarks/tests again
- Reinstall the drivers by doing the following
- Unplug the computer from the internet
- Uninstall all the drivers from Control Panel, restarting when required
- Run DDU in safe mode to clean up the drivers (note that unless I missed something, it doesn't report it found something, just that it did something)
- Reinstall the drivers
- Reconnect the computer to the internet
- Run all the benchmarks/tests again
Values are average FPS, unless stated otherwise.
So basically, there's no change between swapping hardware with compatible drivers and doing a DDU to clean, then install the compatible drivers.
Benchmark | RTX 2070 Super | RTX 4070 Ti | RTX 4070 Ti (DDU) | % relative 4070 Ti vs 2070S | %Relative DDU vs No DDU |
3DMark Speed Way (Graphics Score) | 2047.33 | 5447.00 | 5438.00 | 266.05 | 99.83 |
3DMark Time Spy (Total Score) | 9948.00 | 18203.00 | 18211.67 | 182.98 | 100.05 |
Borderlands 3 | 55.21 | 135.92 | 138.67 | 246.21 | 102.02 |
Call of Duty Modern Warfare II | 74.33 | 176.00 | 175.67 | 236.77 | 99.81 |
Crysis Remastered | 91.02 | 126.53 | 129.61 | 139.02 | 102.43 |
Cyberpunk 2077 | 42.37 | 93.34 | 93.45 | 220.27 | 100.12 |
Final Fantasy Endwalker (Score) | 18790.67 | 26399.33 | 26271.33 | 140.49 | 99.52 |
Forza Horizon 5 | 74.33 | 161.90 | 161.57 | 217.80 | 99.79 |
Metro Exodus Enhanced Edition | 36.32 | 95.54 | 95.41 | 263.03 | 99.87 |
Quake 2 RTX | 35.82 | 110.12 | 112.23 | 307.46 | 101.91 |
Red Dead Redemption 2 | 53.92 | 118.22 | 118.33 | 219.23 | 100.10 |
So basically, there's no change between swapping hardware with compatible drivers and doing a DDU to clean, then install the compatible drivers.
You may have noticed that in the steps to reinstall the drivers, I disconnect the internet from the computer. Why? To prevent Windows from trying to get a compatible driver of a different version (unlikely, given how new the card is). However, not doing this did lead to an issue I had when testing with a setup that involved the RTX 2070 Super with a GT 1030 and testing to see if the same driver package worked for both. When I installed the GT 1030, Windows installed an outdated driver for it before I could get the one I wanted installed. This resulted mostly in issues trying to get a dual monitor setup between the RTX 2070 Super and GT 1030. In this case, DDU did solve my problem, but I had to remember to disconnect the computer from the internet while this happened.
As far as other scenarios go that I see DDU should used...
As far as other scenarios go that I see DDU should used...
- If you update drivers for the same hardware
No. Absolutely not. You don't even need to uninstall the old drivers first. Just run the installer. It'll uninstall the previous drivers and install the new ones.
- If you are updating to hardware that's compatible with the driver
As this test showed, no you don't.
- If you are updating to hardware that's not compatible with the current driver
Update first, assuming the outgoing hardware is compatible. If the outgoing hardware is not compatible with a driver that's compatible with the incoming hardware, download the compatible drivers, disconnect the computer from the internet, uninstall the drivers, replace the hardware, then install the new drivers.
- If you are switching from AMD to NVIDIA or vice versa
Given how drivers work in Windows and how the driver system is supposed to work, if you plug in a card from a different company, Windows isn't going to load the driver that was already there. Again, the card reports its hardware IDs and the driver states which hardware IDs it's compatible for. Windows isn't going to go "Oh, I see hardware ID 1000, but I have a driver that only works with hardware ID 2000, I guess I'll just use it." So I don't have any reason to believe having the drivers for another video card vendor still in the system causes issues.
Multi vendor GPU setups have also been a thing technically since Windows 95 when you needed a 2D accelerator on top of a 3D accelerator. And even then in modern times, you have laptops that use Intel's iGPU for the display, but an AMD or NVIDIA GPU to handle games.
If I ever get an AMD card, I might revisit this.
However, if you want to continue suggesting that someone DDU the drivers anyway, I'm not going to stop you. This is just a post sharing what I've researched, what I've tested, and what I've concluded.