WPT details: All Compatibility Mode restrictions are exercised by the "compatibility" option to the WebGPU CTS. E.g., https://gpuweb.github.io/cts/standalone/?compatibility=1&q=webgpu:* This subset is tested extensively on the Dawn CI (https://ci.chromium.org/p/chromium/g/chromium.dawn/console) under the "webgpu_cts_compat_tests" suite. WebGPU/WGSL have a conformance test suite (https://github.com/gpuweb/cts) that is regularly pulled into Chromium and part of the testing of Dawn/Tint in Chromium. While the CTS can be embedded in WPT, the WebGPU team opted to keep it separate in Chromium testing to use a customized harness for robustness and performance.
Adds an opt-in, lightly restricted subset of the WebGPU API capable of running older graphics APIs such as OpenGL and Direct3D11. By opting into this mode and obeying its constraints, developers can extend the reach of their WebGPU applications to many older devices that do not have the modern, explicit graphics APIs that core WebGPU requires. For simple applications, the only required change is to specify the "compatibility" featureLevel when calling requestAdapter. For more advanced applications, some modifications may be necessary to accommodate the mode's restrictions. Since Compatibility mode is a subset, the resulting applications are also valid WebGPU Core applications and will run even on user agents that do not support Compatibility mode.
WebGPU is a good match for modern graphics APIs such as Vulkan, Metal and Direct3D 12. However, there are a large number of devices which do not yet support those APIs. In particular, on Chrome on Windows, 31% of Chrome users do not have Direct3D FL 11.1 or higher. On Android, 23% of Android users do not have Vulkan 1.1, including 15% who do not have Vulkan at all (https://developer.android.com/about/dashboards). On ChromeOS, Vulkan penetration is still quite low, while OpenGL ES 3.1 is ubiquitous. Developers are thus forced to write multiple implementations (e.g., WebGPU and WebGL) for maximum reach, to accept the reduced reach that core WebGPU currently provides, or to write only for WebGL and forgo the advanced features of WebGPU, such as GPU compute. By opting in to Compatibility Mode, developers can target a wider reach of devices with a single implementation.
Samples: https://webgpu.github.io/webgpu-samples/?sample=helloTriangle https://webgpu.github.io/webgpu-samples/?sample=computeBoids https://webgpu.github.io/webgpu-samples/?sample=deferredRendering
Explainers: https://github.com/explainers-by-googlers/webgpu-compatibility-mode/blob/main/README.md