CNA-BUG-224: A GraphicsDevice maintainer comment still says only DIRECTX9 drives the device status, although WEBGPU raises device events too

CNA snapshot 3b43bd86  ·  Known Issues › Current bugs  ·  source links pinned to 3b43bd86

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 3b43bd86; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The public DeviceLost documentation and two maintainer comments were corrected, but the comment inside getGraphicsDeviceStatusProperty still says only Direct3D 9 calls the device-event callback; WebGPU calls it from its context-loss hooks.

Identifier
CNA-BUG-224
Category
Bug
Subsystem
Documentation & release tooling
Status
Narrowed (partially fixed; describes only what survives)
Verified against
CNA 3b43bd86 (3b43bd8687ed46523d873f9bec4b32bd8481dcb5)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
GraphicsDevice::getGraphicsDeviceStatusProperty() maintainer documentation

Expected behaviour

The maintainer comments on the device-status path say which renderers drive it, as the public DeviceLost Doxygen and the deviceStatus_ member comment now do (“DirectX9 and WebGPU report these transitions”).

Actual behaviour at TARGET

The comment inside getGraphicsDeviceStatusProperty in GraphicsDevice.cpp still reads “Every renderer except D3D9 never calls that callback, so this stays Normal for them”. At TARGET RendererDeviceEvent::Lost is raised by DirectX 9 from its real error paths and by WebGPU from its DebugSimulateContextLoss hook (its native OnDeviceLost callback only logs, CNA-GAP-064); WebGPU raises Resetting/Reset from DebugRestoreContext. Because that hook is reachable from any game through the F9 key (CNA-BUG-078), the status of a WebGPU device can leave Normal, which the comment says cannot happen.

Source locations

Evidence

Checked by reading at 3b43bd86; not executed. Behaviour is not affected; one maintainer comment is.

Narrowed at c6dec91f: 66918da04 (2026-10-19) rewrote the public DeviceLost Doxygen in GraphicsDevice.hpp (“DirectX9 and WebGPU can report loss; desktop platforms are not universally exempt”), the deviceStatus_ member comment and the createRenderer callback comment. Two renderer families this entry also named were retired on 2026-10-13 (fe5e25994, def6f7747).

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

The renderers' own recovery examples (for example webgpu_context_recovery_test and directx9_frame_recovery_test) exercise the events; nothing checks comment text.

Regression test

Documentation fix: name DirectX 9 and WebGPU in the getGraphicsDeviceStatusProperty comment.

Blast radius

Maintainers of the device-loss path. Public documentation and behaviour are unaffected.

Workaround

No workaround is known.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Known issues
Bug index