v145 · Web APIs · Subgroup Demo
Subgroup Demo
Checks WebGPU adapter support for the subgroups feature and tests whether a WGSL shader with enable subgroup_uniformity compiles successfully.
feature detection
WebGPU—
adapter.features: subgroups—
subgroup_uniformity compile—
code
const adapter = await navigator.gpu.requestAdapter();
const hasSubgroups = adapter.features.has('subgroups');
if (hasSubgroups) {
const device = await adapter.requestDevice({
requiredFeatures: ['subgroups'],
});
const shader = device.createShaderModule({ code: `
enable subgroups;
enable subgroup_uniformity; // Chrome 145+
@compute @workgroup_size(64)
fn main(@builtin(local_invocation_index) lid: u32) {
let broadcast = subgroupBroadcast(lid, 0u);
// More patterns compile with subgroup_uniformity enabled
}
` });
const info = await shader.getCompilationInfo();
const errors = info.messages.filter(m => m.type === 'error');
console.log(errors.length === 0 ? 'Compiled OK' : errors[0].message);
}