// Native WebGPU - multi-pass timing

import Stats from 'stats-gl'

const stats = new Stats({ trackGPU: true, trackCPT: true });
await stats.init(device);
document.body.appendChild(stats.dom);

function render() {
    const encoder = device.createCommandEncoder();
    stats.begin();

    // Compute pass → CPT panel
    const cp = encoder.beginComputePass({
        timestampWrites: stats.getTimestampWrites('compute')
    });
    // dispatchWorkgroups...
    cp.end();

    // Render pass → GPU panel
    const rp = encoder.beginRenderPass({
        colorAttachments: [...],
        timestampWrites: stats.getTimestampWrites('render')
    });
    // draw calls
    rp.end();

    stats.end(encoder);
    device.queue.submit([encoder.finish()]);
    stats.update();
    requestAnimationFrame(render);
}