Microsoft DirectX is a group of technologies designed to make Windows-based computers an ideal platform for running and displaying applications rich in multimedia elements such as full-color graphics, video, 3D animation, and rich audio. DirectX includes security and performance updates, along with many new features across all technologies, which can be accessed by applications using the DirectX APIs.
DirectX is three different things depending on whether you’re a gamer or a developer and what version of Windows you using. DirectX used to be add-on that could be upgraded in older versions of Windows, but in current versions of Windows DirectX is a component of the OS that can’t be upgraded. It’s also an SDK that developers use to create games that use DirectX. These days when a game installs DirectX it’s actually installing part of the DirectX SDK, not DirectX itself, that’s meant to redistributed to users. It’s always safe to do this. It may end up doing nothing because what it installs is already there, but it will never downgrade the version of DirectX. Since all versions of DirectX are backwards compatible with earlier versions there’s also never any need to downgrade.
DirectX used to essentially be an add-on to Windows before Windows XP SP2. It wasn’t considered a part of the Windows operating system itself, and at Microsoft a different team of “DirectX” developers worked on the product separately from the “Windows” developers. While it was shipped with Windows since Windows 95 OSR2 and Windows NT 4.0, it could be upgraded separately from the operating system and so wasn’t considered a part of it.
It’s from this era that we get the whole notion of games installing DirectX. These days that’s not really what happens, but it used to be that games would actually install or upgrade DirectX. If a game used the DirectX 7 interfaces then it would usually include the DirectX 7 runtime installer and offer to install it as part of the game’s installation. If DirectX 7 or newer was already installed then the runtime installer would do nothing. If not it would install or upgrade DirectX.
These days DirectX is considered part of Windows, one that can’t be upgraded separately. If you’re using Windows XP SP2 or SP3, Windows Vista, Windows 7, Windows 8 or Windows 10 then games can’t actually upgrade the version of DirectX you’re using. While they might come with DirectX 9.0c runtime installer, the last version of DirectX that Microsoft provided one for, it won’t upgrade the version of DirectX you have installed because DirectX 9.0c or later is already installed.
DirectX also used to have a separate SDK (Software Development Kit) component. The SDK provided the files and documentation the developers needed to create games and applications that use DirectX. It also contained support code written by Microsoft designed to make creating games that used DirectX easier.
In particular it provided the D3DX library, which contained code designed to be used with games that used Direct3D. While Direct3D allowed programmers to do things they couldn’t do without it, that is, access a video card’s accelerated rendering hardware, the D3DX library was all code that programmers could have written themselves. It just saved them from having to do so. Because it wasn’t necessary and didn’t do anything special it wasn’t provided as part of the DirectX runtime. Developers could simply include whatever parts of it in their games that they wanted to use, if any. The D3DX code would would become an integral part of the game, usually as part of the game’s executable (.EXE), just as if they had wrote it themselves.
However one day Microsoft decided to change how developers were allowed to use the D3DX library. They turned it into a DLL that the game would have install if the wanted to use it, similar to how games used to install the DirectX runtime. In fact they used the same installer for both. The installer provided by Microsoft would either install the DirectX 9.0c runtime and/or the D3DX DLL depending on what files were packaged with it.
So while modern games include a DirectX installer that won’t actually install DirectX, it will often install a D3DX DLL (and/or one of a number of other DLLs provided with DirectX SDK). Each version of the DirectX SDK that came with a D3DX DLL had it’s own separately numbered DLL (from d3dx9_24.dll to d3d9_43.dll. Each game only installs the version of the DLL they use, so it’s possible even if many other games have “installed DirectX”, they haven’t installed the version of D3DX needed by the game you’re installing now.
These days Microsoft no longer provides a separate DirectX SDK. Like how the DirectX runtime became part of Windows operating system, the Direct SDK is now part of the Windows SDK. They’ve also stopped updating the D3DX library. Instead Microsoft recommends that developers use “third-party” libraries that they can include with their games and don’t need to install separately.
When game installs DirectX don’t worry about it. If it asks if you if you want to install DirectX, then saying “yes” is the safest option. The DirectX runtime installers won’t downgrade the version of DirectX installed. Not only won’t they, Windows would prevent them if they tried, as DirectX is now a protected part of the operating system. While on a modern version of Windows it won’t actually change the version of DirectX installed, the installer may still install DLLs that the game needs.
DirectX is also fully backwards compatible. If you’re running Windows 10 then have not only do you have the latest DirectX 12 interfaces, Windows also provides all the previous interfaces as well. Baring some other incompatibility, you can play games designed for Windows 95 and the original version of DirectX.
On the other hand if you’re running Windows Vista you only have the DirectX 10 interfaces available. You can’t play games that require DirectX 11 or 12. You also can’t upgrade to DirectX 11 or 12. To play games that require DirectX 11 you’d need to upgrade to at least Windows 7. If you want to take advantage of the features in a game that require DirectX 12 then you would need to upgrade to Windows 10.