github / github/app

BSOD 0x10E (VIDEO_MEMORY_MANAGEMENT_INTERNAL) regression after v1.0.1 update: GPU context exhaustion in dxgmms2!InitPagingProcessVaSpace

Open
#1,181 1 comment 0 reactions 0 assignees View on GitHub
Bugs
Dominant language
No language data
Stars
2.1k
Forks
153
PR merge metrics
No merged PRs in 30d

Description

### Summary

After auto-updating from v0.2.34 to v1.0.1, the system BSODs repeatedly with bugcheck `0x0000010E` (`VIDEO_MEMORY_MANAGEMENT_INTERNAL`). WinDbg analysis of the crash dump shows `dxgmms2.sys` failing in `VIDMM_CPU_HOST_APERTURE::MapRange` while initializing a new GPU paging process virtual address space. This indicates the app is exhausting the GPU's CPU host aperture by requesting more GPU contexts than the hardware can accommodate.

Zero unexpected reboots occurred in the preceding 60 days on the same hardware/driver configuration. The only change before crashes began was the app auto-updating to v1.0.1.

### Affected version

v1.0.1 (auto-updated from v0.2.34)

### Environment

| Component | Detail |
|---|---|
| OS | Windows 11 Enterprise 26100 (25H2) |
| CPU | i7-1370P (20 logical processors) |
| RAM | 32 GB |
| dGPU | NVIDIA RTX A500 Laptop, **4 GB VRAM**, driver 32.0.15.9647 |
| iGPU | Intel Iris Xe, driver 32.0.101.7085 |
| Displays | 2x 1920x1080 via Targus USB3 DV4K dock (DisplayLink 12.2.2204.0) + 1x 1920x1200 laptop |
| CUDA Toolkit | v13.3 |
| Copilot SDK | CLI v1.0.63, Foundry Local v1.2.0, ONNX Runtime v1.26 |

### WinDbg analysis

Analyzed `C:\WINDOWS\MEMORY.DMP` from the final crash.

**Failure bucket:** `0x10e_2d_dxgmms2!VIDMM_CPU_HOST_APERTURE::MapRange`

```
dxgmms2!VIDMM_CPU_HOST_APERTURE::MapRange+0x34f <- bugcheck
dxgmms2!VIDMM_PAGE_TABLE_BASE::GetCpuVisibleAddress+0x188
dxgmms2!VIDMM_PAGE_TABLE::CommitVirtualAddressRange+0x563
dxgmms2!VIDMM_PAGE_DIRECTORY::CommitVirtualAddressRange+0xc93
dxgmms2!CVirtualAddressAllocator::CommitVirtualAddressRange+0x972
dxgmms2!VIDMM_GLOBAL::InitPagingProcessVaSpace+0x205 <- root operation
dxgmms2!VIDMM_GLOBAL::ProcessSystemCommand+0x500
dxgmms2!VidMmWorkerThreadProc+0x681
```

The crash is in Windows' own GPU memory manager (`dxgmms2.sys` v10.0.26100.8655), not in the NVIDIA or DisplayLink driver. The failing operation is **initializing a new GPU paging process's virtual address space**, meaning user-mode code requested a new GPU context and the hardware's CPU host aperture had no remaining mappable range.

### Why this points to the app

- Same hardware, same drivers, same display configuration ran stable for 60 days prior
- The app auto-updated to v1.0.1 at ~03:00 on June 18; first BSOD at ~15:49 the same day
- No OS updates, no GPU driver changes, no other software installs between the update and the first crash
- 4 identical BSODs followed within 3 hours (same bugcheck, same parameter 1 = `0x2d`)
- The mechanism (`InitPagingProcessVaSpace`) implies the app is creating more or larger GPU contexts than v0.2.34 did

### Likely vectors

- WebView2 rendering creating additional GPU processes (e.g., per-tab GPU process isolation added in v1.0.x?)
- Foundry Local / ONNX Runtime acquiring a GPU context for local model inference that was not acquired before
- A combination where previously reused GPU contexts are now freshly allocated

### Additional signals

- At 16:06, `copilot.exe` (SDK server) produced a crash report: `Allocation failed - JavaScript heap out of memory`
- At 17:12, `msedgewebview2.exe` crashed (exception 0xe0000008 in KERNELBASE.dll)
- At 17:13, DisplayLink driver `dlidusb4.dll` suffered a runtime failure (expected collateral from GPU memory pressure)

### Steps to reproduce

1. Windows laptop with NVIDIA GPU <= 4 GB VRAM in hybrid/Optimus mode
2. Multiple external displays via DisplayLink dock (consuming GPU address space)
3. CUDA Toolkit installed (allows ONNX Runtime to register CUDA provider)
4. Auto-update from v0.2.34 to v1.0.1
5. Use normally; BSODs occur within hours

### Expected behavior

The app should not exhaust the GPU's CPU host aperture. If GPU resources are insufficient, the app should fall back gracefully (software rendering, CPU inference, fewer GPU contexts).

Contributor guide

Open the contributing guide

Research direction

No repository file or test is identified. Start by reproducing the v1.0.1 versus v0.2.34 behavior on the listed Windows 11 hybrid-GPU and DisplayLink setup, then trace GPU context usage around the dxgmms2 failure; done means resource exhaustion no longer causes a BSOD and the app falls back gracefully.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, operating-systems, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.