Completion reproducer

WebGPU / host observation  ·  local only

Workload

Idle. Defaults match the stored capture: 65536 items / 64 loops / workgroup 64, 30 samples after 5 warmups.

What is measured

One compute pass writes a timestamp-query at the beginning and end of the pass; that difference is GPU execution time. Separately, a performance.now() stopwatch starts at queue.submit() and stops when queue.onSubmittedWorkDone() resolves; that is host completion observation. The two are reported separately and must not be conflated.

  • idle — submit once, await completion. No extra submissions.
  • fast kick — empty command buffers submitted in a tight loop while awaiting the same completion. Diagnostic only.
  • timed kick — empty submissions scheduled independently every kick ms. The stopwatch stops the moment onSubmittedWorkDone() resolves, never after a trailing sleep.

Kicks change when the host observes completion. They do not make the GPU workload itself faster — compare the GPU median across modes to confirm.

Before you compare against the stored evidence

  • Firefox may need WebGPU manually enabled (dom.webgpu.enabled) and a compatible platform build; it is not default release support on Linux.
  • The stored captures were run headlessly. A headed run on your machine is a different observation, not a mismatch.
  • Different GPU, driver, OS or browser version will give different numbers. The claim is about one host, not about prevalence.
  • Kick-mode captures interleave empty submissions, so raw gpuMs.min/gpuMs.mean in the output are contaminated by those empty passes. Read the GPU median.
  • Nothing here is uploaded. The result is rendered in this page and can be copied or downloaded locally.

Upstream issue: Mozilla Bug 1870699. Receipt: ../index.html.

Result JSON

No capture yet.