Renderer · type

ComputeDevice

What a registered definition is handed once, at registration, to build its resources.

Explained in Hello world.

type ComputeDevice =
import type { ComputeDevice } from '@driftengine/core';

In depth

There is no WebGL2 arm, and that absence is the type saying so. PassDevice is a union because both backends can draw. WebGL2 has no compute shaders — not "not yet", the language has none — so a second arm would be a shape a contributor could switch on and never reach. Renderer.computeSupported answers false there and registerCompute refuses in words.

Tagged all the same, so that a second arm arriving later is a compile error at every contributor rather than a silent widening, and so this reads as the same shape as PassDevice to somebody who has just read that one.