The Big Picture: Why Does a GPU Need a Driver?
A graphics chip from one company works very differently inside from a chip made by another company. A game cannot know the secret details of every GPU in the world. And Windows cannot either.
So every GPU comes with a display driver: a piece of software, written by the GPU maker (Intel, AMD, NVIDIA...), that translates general graphics requests into the exact commands that one specific GPU understands. You learned what drivers are in Chapter 13 — Device Drivers. A display driver is the biggest and most complex driver on most PCs.
Analogy: The driver is a translator at a meeting. The game speaks "DirectX". The GPU speaks its own private language. The translator sits in between, so both sides can work without learning each other's language.
2.1 WDDM (Windows Display Driver Model)
What it is: WDDM (Windows Display Driver Model) is the set of rules Microsoft gives to GPU makers. If a vendor writes its driver following WDDM, Windows knows how to load it, schedule work on the GPU, and share video memory between programs. WDDM first arrived with Windows Vista, and newer Windows versions use newer WDDM versions (for example, Windows 10 and 11 use WDDM 2.x and 3.x; exact numbers depend on your build).
What WDDM gives Windows:
| Feature | What it means for you |
|---|---|
| GPU scheduling | Several programs can share one GPU safely, each getting a turn (like CPU scheduling in Chapter 9) |
| Video memory management | Windows can move textures between VRAM and system RAM when VRAM runs short |
| Desktop composition | The Desktop Window Manager can draw windows on the GPU (Chapter 30) |
| Recovery from hangs | If the GPU stops responding, Windows can reset the driver without rebooting (Section 2.3) |
Because of WDDM, you can run a game, a web browser and a video call at the same time, and each can use the GPU.
2.2 The Kernel-Mode and User-Mode Driver Split
What it is: Remember that Windows runs code in two worlds: user mode (normal programs, restricted) and kernel mode (the core of Windows, full power). A crash in kernel mode can take down the whole PC (the blue screen). See Chapter 8 — Windows Architecture.
WDDM splits a display driver into two parts, so that the risky part is as small as possible:
| Part | Short name | Runs in | Made by | Its job |
|---|---|---|---|---|
| User-mode driver | UMD | User mode, inside each app's process | The GPU vendor | Does the heavy translating: turns API calls into command buffers (lists of GPU commands) |
| Kernel-mode driver | KMD | Kernel mode | The GPU vendor | Talks to the real hardware: submits work, handles interrupts, sets up the display |
| DirectX Graphics Kernel | dxgkrnl.sys | Kernel mode | Microsoft | The Windows part in the middle: contains the GPU scheduler and the video memory manager (often called VidMM) |
(The exact internal details are more complicated and change between Windows versions. This is the simple picture.)
Why split it? Most of the driver's work (translating thousands of draw calls) can happen in user mode. If the UMD crashes, only that one program closes, not the whole PC. Only the small, essential part (the KMD) needs the dangerous kernel power.
USER MODE KERNEL MODE
┌─────────────────────────┐
│ Game / app │
│ │ │
│ ▼ │
│ Graphics API runtime │
│ (Direct3D, Section 3) │
│ │ │
│ ▼ │
│ User-mode driver (UMD) │ command ┌───────────────────────┐
│ from the GPU vendor │ ─buffers─▶ │ dxgkrnl.sys │
└─────────────────────────┘ │ GPU scheduler + VidMM │
│ │ │
│ ▼ │
│ Kernel-mode driver │
│ (KMD, vendor) │
└──────────┬────────────┘
│
▼
┌───────────────────────┐
│ The GPU hardware │
└───────────────────────┘
Two jobs inside dxgkrnl.sys (simplified):
- The GPU scheduler: decides which program's work the GPU runs next, so no program can hog it.
- The video memory manager (VidMM): hands out VRAM to programs and, when VRAM is full, moves less-used data to system RAM.
2.3 Timeout Detection and Recovery (TDR)
What it is: Sometimes a GPU gets stuck: a bad shader loops forever, or a driver has a bug. Without protection, the screen would freeze and you would have to power off.
TDR (Timeout Detection and Recovery) is Windows' safety net. If the GPU does not answer for a short time (by default about 2 seconds, though this can differ), Windows resets the graphics driver and the GPU. Your screen may go black or flicker for a moment, and then the desktop returns. A message such as "Display driver stopped responding and has recovered" may appear.
| What you see | What happened |
|---|---|
| Screen flickers black for 1 to 3 seconds, then returns | TDR reset the driver. The PC kept running |
| A game closes, but Windows is fine | The app's graphics device was lost in the reset |
| Repeated resets | A driver bug, overheating, a faulty card, or too much overclocking |
| Blue screen with a video-related stop code | The reset did not succeed |
Changing the TDR timeout needs registry edits (Chapter 17). It is not a good idea for a beginner: a longer timeout just hides the problem.
2.4 The Basic Display Adapter (Fallback)
What it is: If Windows cannot find a proper driver for your GPU (for example, on a fresh install, or when a driver fails to load), it uses a built-in fallback called Microsoft Basic Display Adapter.
It works with almost any GPU, but it is very limited:
| Basic Display Adapter | Real vendor driver | |
|---|---|---|
| Resolution choices | Few, often low | All the monitor supports |
| 3D speed | Very slow (no GPU acceleration for games) | Full speed |
| Video playback | May be choppy | Smooth, uses the media engine |
| Multiple monitors, HDR, high refresh rate | Often missing | Supported |
Sign you are on the fallback: the screen looks blurry or stretched, the resolution list is short, and Device Manager shows "Microsoft Basic Display Adapter" under Display adapters. The fix is to install the correct driver (from Windows Update or from the GPU maker's website).
2.5 Tools: How to See Your Display Driver
You can look at your driver without changing anything. The lab (page 9) walks you through each of these.
| Tool | How to open it | What it shows |
|---|---|---|
| Device Manager | Win + X → Device Manager → Display adapters | GPU names; right-click → Properties → Driver tab shows provider, date, version |
dxdiag | Win + R, type dxdiag, Enter | Display tab: GPU name, VRAM, driver version, WDDM version |
| PowerShell | Get-CimInstance Win32_VideoController | Name, driver version, resolution, refresh rate |
| Task Manager | Performance → GPU | GPU name, driver version, driver date |
Example PowerShell command (read-only):
Get-CimInstance Win32_VideoController | Select-Object Name, DriverVersion, DriverDate, VideoProcessorTip: On a laptop you may see two adapters (for example, an Intel one and an NVIDIA or AMD one). That is the integrated and the discrete GPU from Section 1.
Summary
| Topic | Remember this |
|---|---|
| Display driver | GPU-maker software that translates generic graphics requests into one GPU's commands |
| WDDM | Microsoft's driver model: GPU scheduling, video memory management, recovery |
| UMD | User-mode driver; builds command buffers; a crash only closes one app |
| KMD | Kernel-mode driver; talks to the hardware |
dxgkrnl.sys | Microsoft's graphics kernel: GPU scheduler and video memory manager (VidMM) |
| TDR | If the GPU hangs for about 2 seconds, Windows resets the driver |
| Basic Display Adapter | The limited fallback when no real driver is installed |
| Tools | Device Manager, dxdiag, Get-CimInstance Win32_VideoController, Task Manager |