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() };
}