0XC026230C

Fix ERROR_GRAPHICS_INVALID_TOTAL_REGION (0xC026230C) on Windows

This blue screen usually points at a bad display driver or a failed overclock. Roll back the GPU driver, clear the OC, and it's gone.

Yeah, a blue screen right in the middle of work is infuriating. Let's skip the fluff and get you back to a stable desktop.

The Fix

ERROR_GRAPHICS_INVALID_TOTAL_REGION (0xC026230C) is a bugcheck thrown by the Windows kernel graphics stack — specifically dxgkrnl.sys — when it's handed a video signal region descriptor it considers malformed. In plain English: the GPU driver told Windows the display surface is one size, and then tried to write a scan-out region that doesn't fit. Windows says nope and pulls the plug.

The culprit here is almost always one of three things: a corrupted or mismatched display driver, an unstable memory/GPU overclock, or a DP/HDMI link that's negotiating a mode the driver can't actually handle (common with cheap 4K KVMs and DisplayPort 1.4 MST hubs).

Do these in order and stop when the crashes stop.

1. Clean the display driver, don't just update it

A normal "update driver" from Device Manager leaves stale registry keys and filter drivers behind. That's fine for most issues, useless for this one. Use Display Driver Uninstaller (DDU), current version 18.0.9.x.

  1. Download DDU from Wagnardsoft. Grab the NVIDIA or AMD driver you want before you go offline.
  2. Disconnect from the network. Windows Update will happily shove a 3-month-old driver back onto your machine mid-reboot and undo everything.
  3. Boot into Safe Mode: msconfig → Boot tab → Safe boot → Minimal → OK → reboot.
  4. Run DDU → Select device type: GPU → Select device: your GPU vendor → click Clean and restart.
  5. Back in normal Windows, install the driver you downloaded. Do a custom install and skip GeForce Experience / AMD Adrenalin's extras if you don't use them.

After that reboot, disable the driver auto-update gate. Otherwise Windows Update will replace your working driver with whatever it thinks is newer. On Pro/Enterprise you can do this with Group Policy: Computer Configuration → Administrative Templates → Windows Components → Windows Update → Manage updates offered from Windows Update → Do not include drivers with Windows Updates.

2. Kill the overclock

If you're running XMP/EXPO, a GPU core offset, or a memory frequency above JEDEC, set everything to default. This bugcheck is notorious for showing up on machines with an aggressive memory OC that passes MemTest86 for 8 hours and still corrupts a display descriptor under load. The graphics stack doesn't get the same memory protection comfort other subsystems do.

Revert in BIOS, boot, and hammer the machine for an hour. If the BSODs vanish, your OC was the problem — creep it back up in small steps and stop one notch earlier than you think you should.

3. Disable MPO (Multi-Plane Overlay)

Microsoft's MPO implementation has been a source of graphics corruption, flicker, and bugchecks on NVIDIA hardware since the 450-series drivers. It's supposed to reduce desktop compositor overhead by letting the GPU handle plane blending. On a lot of setups it's just a bug delivery mechanism.

Disable it via the registry and reboot:

reg add "HKLM\SOFTWARE\Microsoft\Windows\Dwm" /v OverlayTestMode /t REG_DWORD /d 5 /f

You'll lose a tiny bit of compositor efficiency. You'll also stop seeing this bugcheck on systems where MPO was the trigger. In my experience that's a trade worth taking.

4. Swap the cable and check the link

If you're running 4K at 120Hz+ over a cable that claims DisplayPort 1.4 but is actually DisplayPort 1.2, or HDMI 2.1 that's really 2.0, the driver will sometimes negotiate a mode that the link can't sustain and then die trying to keep up. Replace the cable with a known-good, certified one. Amazon Basics and Cable Matters cables are cheap and honest; the no-name ones bundled with monitors rarely are.

Also try dropping refresh rate by one step: 144Hz → 120Hz, or 165Hz → 144Hz. If crashes stop, you've found it.

Why This Works

0xC026230C is reported by dxgkrnl.sys when a display region description fails validation. Windows validates the region because it holds the framebuffer lock during scan-out and can't afford to have a driver scribble outside the buffer. When validation fails, the kernel bugchecks rather than risk memory corruption.

So the fix isn't the error — the error is a symptom. The real problem is a driver that's producing bad descriptors. That happens when (a) the driver binary and its user-mode counterpart are mismatched versions, (b) the driver thinks a mode is valid because the hardware clock is unstable from an overclock, or (c) MPO compositing produces a plane layout the driver mis-describes. Each of the four steps above targets one of those.

Less Common Variants

Virtual machine with GPU passthrough

If you're running Hyper-V with DDA (Discrete Device Assignment) or Proxmox with VFIO passthrough, this bugcheck usually means the guest driver doesn't match the vBIOS the host exposes. Update the guest driver and check that your vBIOS dump is clean. Renting a GPU in Azure for a gaming VM? Make sure you're using the Azure-tuned driver, not the consumer one.

Multi-monitor with mixed refresh rates

This bugcheck loves 144Hz + 60Hz + 60Hz setups on a single GPU, especially with DisplayPort MST. Windows has to allocate scan-out regions per plane and the math gets ugly. Set all monitors to the same refresh rate, or run one on the iGPU if your CPU has one. It looks dumb. It works.

Laptop with hybrid graphics

On an Intel + NVIDIA laptop, both drivers are fighting over the display. Disable the iGPU in BIOS if you can, or force everything through the dGPU via the NVIDIA Control Panel's "Preferred graphics processor" setting. Some OEM laptops (looking at you, older Razer Blades) ship with iGPU drivers from 2018 that can't handle modern DP modes.

After a Windows feature update

22H2 and 23H2 both shipped with changes to the DWM compositor that broke older drivers. If the BSOD started right after a Windows update, you rolled forward into an incompatibility. Roll back the driver to a version released after the Windows build, not the version that was installed before.

Prevention

  • Keep GPU drivers current but not bleeding-edge. Skip the .01 hotfix releases unless you need them. Wait for the .09 or later stable build of each branch.
  • Don't run a memory OC above what your specific motherboard QVL lists. XMP is not a guarantee, it's a suggestion.
  • Use certified DisplayPort and HDMI cables. The cable is the cheapest component and the one most likely to be lying to you.
  • Test stability with a real workload, not just Furmark. Furmark doesn't exercise the display engine the way a browser with hardware acceleration and three 4K monitors does. Use a normal day of work as your stress test.
  • Block Windows Update from touching your GPU driver. The version Microsoft ships is always older than what the vendor has, and mixing it with vendor control panels is how you get version mismatches.

If you've done all four main steps and you're still getting 0xC026230C, you may actually have a dying GPU. The failure mode where the memory controller can silently corrupt descriptors before it starts producing visible artifacts is real, and it's the last thing you check, not the first. Borrow a GPU, drop it in, see if the crashes follow the card.

Related Errors in Windows Errors
0X0000370A 0x0000370A: SXS Invalid Identity Attribute Value Fix 0XC00D28A9 Fix NS_E_DRM_INVALID_SESSION (0XC00D28A9) – Session Invalid 0X803000B7 PLA_E_DCS_ALREADY_EXISTS (0x803000B7) fix 0X80300107 Fix PLA_E_EXE_ALREADY_CONFIGURED (0X80300107) in Windows

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.