demo · v139
GPU Capability Matrix
Probe real WebGL1, WebGL2, and WebGPU capabilities, then drive the same decision logic through no-GPU, software-renderer, and context-loss branches. Chrome 139 removes the silent SwiftShader fallback, so sites must branch on getContext() and render a useful fallback.
capability lab
The live path creates real canvas contexts and checks renderer strings. The simulation modes do not fake API support; they force the application decision branch so you can verify what users see when WebGL returns null, a software renderer is blocked, or a context is lost mid-session.
Run the probe to choose WebGL or a fallback.
Renderer strings are checked for SwiftShader, llvmpipe, softpipe, and related tokens.
Context creation and context-loss events are surfaced here.
Adapter availability is reported separately from WebGL fallback behavior.
render result
decision log
WebGL 1.0
WebGL 2.0
WebGPU
Supported WebGL extensions — capability score
— extensions supported. WEBGL_debug_renderer_info: not yet probed
Graceful degradation when WebGL is unavailable
- Feature-detect before initialising:
const gl = canvas.getContext("webgl2") ?? canvas.getContext("webgl"); - If
gl === null, fall back to Canvas 2D or SVG and keep the page useful. - Use
failIfMajorPerformanceCaveat: truewhen a slow software renderer is worse than showing a fallback. - Listen for
webglcontextcreationerror,webglcontextlost, andwebglcontextrestoredto record the exact branch users hit. - Check
chrome://gputo diagnose disabled acceleration or blocklisted drivers.