Get to know MDN better
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The dispatchWorkgroups() method of the GPUComputePassEncoder interface dispatches a specific grid of workgroups to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).
The X dimension of the grid of workgroups to dispatch.
workgroupCountY OptionalThe Y dimension of the grid of workgroups to dispatch. If omitted, workgroupCountY defaults to 1.
workgroupCountZ OptionalThe Z dimension of the grid of workgroups to dispatch. If omitted, workgroupCountZ defaults to 1.
Note: The X, Y, and Z dimension values passed to dispatchWorkgroups() and GPUComputePassEncoder.dispatchWorkgroupsIndirect() are the number of workgroups to dispatch for each dimension, not the number of shader invocations to perform across each dimension. This matches the behavior of modern native GPU APIs, but differs from the behavior of OpenCL. This means that if a GPUShaderModule defines an entry point with @workgroup_size(4, 4), and work is dispatched to it with the call passEncoder.dispatchWorkgroups(8, 8);, the entry point will be invoked 1024 times total — Dispatching a 4 x 4 workgroup 8 times along both the X and Y axes. 4 * 4 * 8 * 8 = 1024.
None (Undefined).
The following criteria must be met when calling dispatchWorkgroups(), otherwise a GPUValidationError is generated and the GPUComputePassEncoder becomes invalid:
In our basic compute demo, several commands are recorded via a GPUCommandEncoder. Most of these commands originate from the GPUComputePassEncoder created via beginComputePass().
At the start of the code, we set a global buffer size of 1000. Also, note that the workgroup size in the shader is set to 64.
Later in the code, the dispatchWorkgroups() workgroupCountX parameter is set based on the global buffer size and the shader workgroup count.
| WebGPU # dom-gpucomputepassencoder-dispatchworkgroups |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Feb 9, 2026 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.