D3DCOMPILER_47.dll was not found, what it means and how to fix it

D3DCOMPILER_47.dll is the Direct3D shader compiler, a core Windows file that games and graphics programs use to compile shaders at launch. It ships inside Windows 8.1 and later, so a missing copy means the Windows installation itself is damaged or out of date, not that a game forgot to install something.

The fix, in order

  1. Install all Windows updates. Settings → Windows Update → install everything offered, then restart. Updates replace system files, D3DCOMPILER_47.dll included, with the current build for your Windows release.
  2. Repair Windows files. In an admin Command Prompt run DISM /Online /Cleanup-Image /RestoreHealth, then sfc /scannow, then restart.
  3. Remove any copy sitting in the program's folder. A D3DCOMPILER_47.dll next to a game's .exe was placed there by hand or by a mod, and it overrides the Windows copy. Rename it (add .bak) and relaunch.
  4. On Windows 7 only, install update KB4019990 from the Microsoft Update Catalog. Windows 7 never shipped this file, and Microsoft released it as a standalone update. The DirectX End-User Runtime does not contain it.
  5. Reinstall or verify the program itself. For Steam games: right-click → Properties → Installed Files → Verify integrity of game files.
Do not download D3DCOMPILER_47.dll from a DLL site. The file is a protected Windows component, and a copied-in version of the wrong build is a common cause of the 0xc000007b startup error. Windows Update and the repair tools above are the fix.

If it still happens

If only one program fails, check that program's folder for a second copy of the file, then reinstall the program cleanly. If every program fails, the Windows installation is damaged, and the in-place repair under Settings → System → Recovery, "Fix problems using Windows Update", is the remaining move before a full reinstall.

Common questions

Will the DirectX End-User Runtime fix it? No. That package installs the older DirectX 9 era libraries, and D3DCOMPILER_47.dll is not among them. The file belongs to Windows itself, so Windows Update and the system file repair are the fix.

Why does it happen on a fresh Windows install? A fresh install that has not run Windows Update yet can be missing current system files. Install every update and restart before installing games.

Related errors

D3DX9_43.dll missing · Error 0xc000007b · MSVCP140.dll missing

Was this helpful?