You're running something GPU-intensive—a game, a render, a machine learning workload—and Windows throws 0xC0262109 (ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION). The message says a pinned allocation can't be evicted. What's actually happening here is that the display driver model (WDDM) tried to move a block of video memory that the GPU has explicitly locked—"pinned"—so it can't be paged out or relocated. Something kept that pin count too high, or the driver lost track of it.
The fix isn't a single magic bullet. You have to figure out why the pinning went wrong. I'll walk through the three most common causes, starting with the one I see most often.
1. Overcommitted VRAM from a Single Application
Most often, a single app—usually a game or a 3D tool like Blender or Unreal Engine—allocates more pinned memory than the GPU can physically hold. The driver pins texture buffers, constant buffers, and staging resources. When VRAM fills up, the driver tries to evict some of these pinned allocations to make room. But if the app holds a persistent reference to a pinned buffer, the eviction fails, and you get 0xC0262109.
Real-world trigger: Running Cyberpunk 2077 with ray tracing on an 8GB RTX 3070 while also having Chrome open. Chrome uses GPU compositing, which pins shared memory. The game pins its own staging buffers. The driver can't evict either one cleanly.
The fix: Kill background apps that use GPU acceleration. Browsers (Chrome, Edge), Discord, and even some terminals do it. Open Task Manager, go to the Performance tab, and watch "Dedicated GPU memory usage." If it's above 90% and you hit this error, that's your cause.
Try reducing the game's texture quality, shadow resolution, or ray tracing settings. You want to drop VRAM usage below 80%.
If you're in a professional app like DaVinci Resolve or Blender, lower the cache size or reduce the number of undos stored in GPU memory. These apps have a memory budget setting—find it and cap it.
2. Corrupted or Stale GPU Driver State
Sometimes the driver itself is the problem. A driver can get into a state where it holds internal pin references even after the app releases them. This is a driver bug—not something you caused. It happens after a crash, a sleep/wake cycle, or a driver update that didn't cleanly unload the old one.
Real-world trigger: You installed an Nvidia Game Ready driver update without first running DDU (Display Driver Uninstaller). The old driver's memory manager wasn't fully torn down, so pin counts got duplicated.
The fix: Clean reinstall the GPU driver. Don't just "update"—remove the old one completely.
- Download DDU and the latest driver for your GPU.
- Boot into Safe Mode (hold Shift while clicking Restart, then Troubleshoot > Advanced Options > Startup Settings > Restart > Enable Safe Mode).
- Run DDU. Select "Clean and restart." This removes all traces of the driver, including registry keys that track pinned allocations.
- After reboot, install the driver fresh. Don't use GeForce Experience—download the standalone driver package from Nvidia or AMD.
I've seen this fix work for people who've never done a clean driver install before. The error disappears completely.
3. TDR (Timeout Detection and Recovery) Conflict
This one's subtler. The Windows GPU scheduler uses a watchdog called TDR—if the GPU doesn't respond within 2 seconds (default), the driver resets the device. During that reset, the driver tries to evict all pinned allocations to restore a clean state. If a pinned buffer is still referenced by hardware (like a pending DMA operation), the eviction fails, and you get 0xC0262109.
Real-world trigger: You're running a compute shader or a CUDA workload that takes more than 2 seconds per dispatch. The TDR fires, the driver panics, and the pinned memory from the compute buffer can't be evicted because the GPU is still working on it.
The fix: Extend or disable the TDR timeout for your specific workload.
For Nvidia GPUs, you can set a timeout via the registry:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers]
"TdrDelay"=dword:00000008 ; 8 seconds
"TdrDdiDelay"=dword:00000008 ; 8 seconds for driver response
Reboot after applying. This gives the GPU longer to finish its work before the TDR kicks in and tries to evict everything.
Warning: Don't set TdrDelay above 30 seconds unless you're debugging—it can mask real driver hangs.
Alternatively, break your workload into smaller dispatches under 1 second each. That avoids the TDR trigger entirely.
Quick-Reference Summary
| Cause | Diagnosis | Fix | Takes Effect |
|---|---|---|---|
| Overcommitted VRAM | GPU memory usage > 90% when error occurs | Lower texture quality, disable background GPU apps | Immediately |
| Corrupted driver state | Error appears after driver update or crash | Clean driver reinstall with DDU in safe mode | After reboot |
| TDR timeout conflict | Error appears during long-running GPU workloads | Increase TdrDelay in registry, or split workload | After reboot |
If you've tried all three and still see 0xC0262109, you're looking at a hardware issue—faulty GPU VRAM. Run OCCT's VRAM test or MemtestCL to confirm. But 95% of the time, it's one of these three things. Pick the one that matches your situation and move on.