v139 · graphics

Remove SwiftShader fallback

Allowing automatic fallback to WebGL backed by the software renderer SwiftShader is deprecated and WebGL context creation will fail instead of falling back to SwiftShader. This was done for two primary reasons:

concepts

  1. Fallback Path

    SwiftShader — Chromes software-rendered WebGL fallback — is removed. Devices that can't run GPU-backed WebGL now get null from getContext('webgl'); sites should branch on that.

  2. Canvas 2D Fallback

    Render the same chart with WebGL when available and Canvas 2D when not. Simulates the v139 null-context branch so you can preview the user-visible fallback before it bites in production.

  3. Failure Handler

    Toggle every failure mode the SwiftShader removal exposes — “no GPU”, “policy denied”, “context lost mid-frame” — and pick a fallback strategy (Canvas2D, CPU upload, static placeholder). Live status badges narrate the result.

  4. GPU Capability Matrix

    Probes WebGL1, WebGL2, and WebGPU availability and shows adapter info, max texture sizes, renderer string, and extension count for each. Checks the renderer string for software-renderer tokens (SwiftShader, llvmpipe, softpipe) and displays a warning or success banner. A graceful-degradation checklist shows Canvas 2D, SVG, and CSS 3D fallback patterns.

why it shipped

https://chromium.googlesource.com/chromium/src/+/main/docs/gpu/swiftshader.md#automatic-swiftshader-webgl-fallback-is-deprecated

references