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

see also