CNA-GAP-060: No renderer or subsystem registers an IDiagnosticsSource, and nothing registers ResourceKind::AudioVoice resources
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 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
The diagnostics source seam for GPU timings and renderer statistics has no production implementation and no engine code registers audio-voice resource metadata, so those diagnostics and Inspector views stay empty at this snapshot.
- Identifier
CNA-GAP-060- Category
- Functional gap
- Subsystem
- Diagnostics & Inspector
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- CNA::Diagnostics::IDiagnosticsSource / RegisterSource and CNA::Diagnostics::ResourceKind::AudioVoice
Expected behaviour
What the seams describe: renderer- or subsystem-specific statistics (for example asynchronous GPU timings) published at frame boundaries through FrameStatisticsSink, and audio voices exposed as resource metadata.
Actual behaviour at TARGET
A search of modules/ finds IDiagnosticsSource and RegisterSource implemented and used only in the diagnostics module and its tests. ResourceKind::AudioVoice appears only in its enum definition, the Inspector bridge's name table (ResourceKindName) and the web UI's Audio view filter; no engine code registers such a resource and no test references it. The audio module publishes the Audio/AllocatedVoices gauge and the Audio/VoiceCreations counter but registers no voice resources, so the Inspector Audio view's list of registered audio resources is always empty. diagnostics.md documents the GPU part ("GPU timings are an extension seam only; no renderer publishes them yet").
Source locations
modules/diagnostics/include/CNA/Diagnostics/Diagnostics.hpp— IDiagnosticsSource, RegisterSource, ResourceKind::AudioVoicemodules/diagnostics/src/Diagnostics.cpp— RegisterDiagnosticsSource, CollectDiagnosticsSourcesmodules/inspector/src/WebBridge.cpp— ResourceKindName: the only non-test use of AudioVoicedocs/diagnostics.md— Known limitations
Evidence
Checked by searching modules at 009d40f5 and reading docs/diagnostics.md. Not executed.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
DiagnosticsSourceTest exercises the seam with test sources (publishing at frame boundaries, OFF-mode suppression, re-entry refusal); no production source exists to test.
Regression test
With the first renderer source: a test that its Collect publishes already-available data without waiting for the device, as the interface contract requires.
Blast radius
Users expecting GPU timings, renderer-specific statistics or per-voice audio resources from diagnostics or the Inspector.
Workaround
An application can register its own IDiagnosticsSource or ResourceHandle (kind AudioVoice or Custom).
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Internals
- Diagnostics internals: process state
- Known issues
- Functional gap index