Read a live WebGL context's unmasked renderer and classify it (DD-023 §4 D1). Reading the unmasked
renderer needs the WEBGL_debug_renderer_info extension; when it is gated/absent (some privacy-hardened
browsers) this returns { capability: 'unknown', rawRenderer: null } — detection is blind and the caller
falls back to an explicit capabilityHint. Never throws: any failure classifies 'unknown'.
Read a live WebGL context's unmasked renderer and classify it (DD-023 §4 D1). Reading the unmasked renderer needs the
WEBGL_debug_renderer_infoextension; when it is gated/absent (some privacy-hardened browsers) this returns{ capability: 'unknown', rawRenderer: null }— detection is blind and the caller falls back to an explicitcapabilityHint. Never throws: any failure classifies'unknown'.