SD0111
On this page

SD0111

Core code

portable kernel outside the gather-only tier

No "use typeshade" program on this site raises this code, so the page has no example. The fn() builder builds the IR directly and reaches the check at the lines under Source.

The registry text and every compiler message on these pages are the compiler's own English.

When it fires

SD0110 is the author-run guard (fn() rejects the declaration on a non-compute stage); SD0111 is the shape gate, reported per violation by the portable-kernel rule at every emit on both writers and thrown by the GLSL lowering. Like SD0109 the per-violation remedy travels in the diagnostic's own message — the analyzer is its single authority — so the hint below states the tier, which is the invariant half.

How to fix it

The registry's hint: the portable tier is out[gid.x] = f(reads): a 1-D gid and workgroup, one u32 storage output written once at the invocation index, a vec4<u32> dispatch uniform, no raw statements — restructure or drop portable to keep the kernel WebGPU-only

The rule this enforces

Rule 8.7 Test
@compute carries the workgroup size as an array literal of one to three whole numbers, x, y and z, a missing y or z being 1, and the default is 64; every extent reaches the emitted @workgroup_size and the reflection, and a shape over WebGPU’s default compute limits must be reported as a warning.

See also

SD0109
a fragment-only builtin is reachable from a vertex or compute entry
SD0110
portable declared on a non-compute entry

Source

Where the compiler raises this code at commit 26de7be8, one line per file:

Edit this page Report a problem