v139 · Web APIs · Compatibility Demo

Compatibility Demo

Requests WebGPU adapters in both core and compatibility modes and compares what Chrome reports for each, including the feature level and adapter info.

On systems where only OpenGL is available (no Vulkan/Metal/D3D12), compatibility mode may return an adapter while core mode does not. On modern systems with Vulkan, both modes typically return an adapter, but the compatibility mode adapter may have reduced limits.

adapter comparison

core mode — requestAdapter()

statusNot checked
featureLevel
vendor
backend

compatibility mode — requestAdapter({ featureLevel: 'compatibility' })

statusNot checked
featureLevel
vendor
backend
runtime decision: no adapter request yet.

code

// Request adapters in both modes
async function compareAdapters() {
  if (!navigator.gpu) {
    console.log('WebGPU not supported');
    return;
  }

    // Core mode (default)
    const coreAdapter = await navigator.gpu.requestAdapter();
    if (coreAdapter) {
    console.log('Core:', coreAdapter.featureLevel, coreAdapter.info?.vendor);
    }

  // Compatibility mode
  const compatAdapter = await navigator.gpu.requestAdapter({
    featureLevel: 'compatibility',
  });
  if (compatAdapter) {
    console.log('Compat:', compatAdapter.featureLevel, compatAdapter.info?.vendor);
  }
}

see also