SD0030
On this page

SD0030

Core code

unsupported feature for this backend

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

When it fires

The error already names the capability; what a reader needs next is where the per-backend support table lives, and that a capability with no row is a hard stop rather than something to work around.

Example

example.shade.ts
"use typeshade"
declare const data: storage<array<f32>, "read_write">
@compute([64])
export function double(@builtin("global_invocation_id") id: vec3u): void {
data[id.x] = data[id.x] * 2.
}
@fragment
export function main(@location(0) uv: vec2): vec4 {
return vec4(uv, 0., 1.)
}

Compiled at build time against the pinned compiler, this program gets a TS8015 diagnostic, the front end reporting a backend that refused the module. The error the backend threw carries the code:

TS8015 warning, line 1: Backend emit failed: backend 'glsl-es300' cannot emit this module — missing capabilities: storageBuffer, compute

SD0030 backend 'glsl-es300' cannot emit this module — missing capabilities: storageBuffer, compute

How to fix it

The registry's hint: see AUTHORING.md#capabilities--extensions for the per-backend support table; a capability the target has no capProfile row for fails closed by design

The same program, corrected. It compiles with no diagnostic.

example.shade.ts
"use typeshade"
declare const data: storage<array<f32>, "read_write">
@compute([64])
export function double(@builtin("global_invocation_id") id: vec3u): void {
data[id.x] = data[id.x] * 2.
}

See also

TS8015 BACKEND
A backend that refused to emit a module the front end accepted. The message is the backend's own.

Source

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

Edit this page Report a problem