DirectX is part of the Windows operating system. So why does it seem like every PC game you install from Steam, Origin, or elsewhere installs its own copy of DirectX?
What Is DirectX?
DirectX is part of Microsoft Windows. It’s a group of APIs (application programming interfaces) developers can use for 3D graphics, video, multimedia, sound, and gamepad features on Windows. Many games on Windows use DirectX’s Direct3D for graphics. If they don’t, they use the cross-platform OpenGL or Vulkan APIs instead. Other non-game applications may use DirectX for features like 3D graphics.
Windows 7 includes DirectX 11, and Windows 10 includes DirectX 12. When developers are developing games, they choose the DirectX versions they want to target. For example, a game written only for DirectX 11 wouldn’t run on Windows XP, where the latest available version is DirectX 9.
RELATED: How to Use the DirectX Diagnostic in Windows
You can check the version of DirectX available on your system by clicking the Start button, typing “dxdiag” into the search box, and pressing Enter. When the DirectX Diagnostic Tool window appears, you’ll see the version number appear to the right of “DirectX Version” under “System Information”.
If It’s Included With Windows, Why Are Games Installing It?
So if DirectX is a part of Windows, why do games even install it in the first place? The short answer is that DirectX installation is a mess.
There isn’t just a single DirectX Direct3D library games depend on, or even just a handful. Game developers have to target an exact version of the Direct3D helper library. A more recent version of the library can’t be used. For example, if a game developer targeted their game at d3ddx10_40.dll, the game can’t use d3ddx10_41.dll. It needs version 40, and only that file will do.
You’ll find these files in the C:\Windows\System32 folder on your system. On a 64-bit system, the 64-bit libraries are located in C:\Windows\System32 and the 32-bit libraries are located in C:\Windows\SysWOW64.
Even if you’ve run the latest DirectX installer, there’s no guarantee it will install all the old minor versions of the DirectX libraries on you system. Microsoft has also chosen not to bundle these Direct3D library files with Windows itself, either. Even Direct3D libraries created before Windows 10 was released, for example, are not all included with Windows 10. They have to be installed by an application that needs them. As Microsoft notes in documentation intended for game developers, “Windows Update and Service Packs do not provide any of DirectX’s optional components”.
It even gets more complicated than that. 32-bit games need the 32-bit versions of the library file, and 64-bit games need the 64-bit library.
RELATED: Why Are There So Many “Microsoft Visual C++ Redistributables” Installed on My PC?
This is similar to the situation with the Microsoft Visual C++ Redistributable libraries. Different applications depend on different versions of the libraries and you need to have many different versions installed. There’s a good chance you have a lot of those installed on your system, too.
But Why Does Every PC Game Have to Reinstall It?
Okay, so every game has to install the exact minor version of the DirectX libraries it requires. But, if you’ve already installed that specific version of a DirectX library once, surely the game doesn’t need to run the DirectX installer—right?
Wrong. There’s no way for games to easily check if the correct DirectX libraries they need are installed. As Steam’s support site notes, Microsoft’s DirectX installer is the only officially supported way to check if the correct DirectX files are currently installed. Games run the DirectX installer, often in the background, which installs any required libraries and repairs any problems on the system.
The DirectX installer is also the only way Microsoft allows developers to distribute these files. Developers can’t try to be clever by dropping the DirectX libraries on your system directly and skip the installer, or they’d be breaking MIcrosoft’s software license. They’d also likely run into various bugs, even if they tried this. That’s why no one does.
Of course, not all games actually have to run the DirectX installer when you first launch them. Games that use OpenGL or Vulkan rather than DirectX’s Direct3D won’t need to run it. Some games also depend only on major versions of DirectX like DirectX 11, 10, or 9 and don’t need to call the DirectX installer because they don’t use any of these helper libraries.
Can I Remove Some Of These Libraries?
You shouldn’t remove any of the DirectX libraries in your System32 folder or SysWOW64 folder. If they’re present on your system, it’s because a game or other application you installed needed them. If you start removing library files, applications could break. There’s no way to really tell which DirectX library files are required by which games on your system, so there’s no way to know which are safe to remove.
Leave them alone! There’s a reason there’s no officially supported way to uninstall these library files. They won’t cause any problems on your system and will only be used by applications that require them.
If you’re really desperate to clean up these old libraries, you’re better off reinstalling Windows to get a fresh system instead of randomly deleting library files. But they’ll start reappearing here after you install games, anyway. Don’t worry about it.
What Can I Do If I’m Having DirectX Problems?
If you see a DirectX-related error message while trying to run or install a game, it’s possible the game’s installer isn’t running its included DirectX redistributable installer properly. You can’t just download a DirectX installer from Microsoft’s website, though—you need to run the installer that the game itself requires.
You may be able to go into the game’s folder on your system or on the game’s installation disc, locate the DIrectX installer .exe file, and run it to fix the problem. This file is generally named DXSETUP.exe.
You can usually get more information about how to fix the problem by performing a web search for the name of the game or application and the specific DirectX error message you’re seeing.