demo · v132

Device Info Explorer

Chrome 132 exposes GPUDevice.adapterInfo — the same GPUAdapterInfo object that GPUAdapter.info returns, but now accessible on the device after creation. Before this, if you passed a GPUDevice between modules or workers, you had no way to query hardware info without also passing the adapter. This page reads all fields from both paths and compares them.

Checking WebGPU + GPUDevice.adapterInfo…
Requesting GPU device…

Before and after Chrome 132

Before — must pass adapter separately
// Module A creates device const adapter = await navigator.gpu.requestAdapter(); const device = await adapter.requestDevice(); // Must also pass the adapter to module B moduleB.init(device, adapter); // Module B function init(device, adapter) { // Had to carry adapter just for this: const info = adapter.info; logTelemetry(info.vendor, info.architecture); }
Chrome 132 — adapterInfo on the device
// Module A creates device const adapter = await navigator.gpu.requestAdapter(); const device = await adapter.requestDevice(); // Pass only the device — no adapter needed moduleB.init(device); // Module B — Chrome 132+ function init(device) { // adapterInfo is right on the device! const info = device.adapterInfo; logTelemetry(info.vendor, info.architecture); }
// Chrome 132: GPUDevice.adapterInfo
const adapter = await navigator.gpu.requestAdapter();
const device  = await adapter.requestDevice();

// Both of these are the same GPUAdapterInfo object:
console.log(adapter.info);        // GPUAdapterInfo
console.log(device.adapterInfo);  // GPUAdapterInfo (NEW in Chrome 132)

// Fields:
const { vendor, architecture, device: deviceId, description, adapterType,
        isFallbackAdapter } = device.adapterInfo;

// Useful for telemetry inside WebGPU modules:
function getGPUTelemetry(device) {
  const { vendor, architecture, adapterType } = device.adapterInfo;
  return { vendor, architecture, adapterType, timestamp: Date.now() };
}

see also