EntryInfo
On this page

EntryInfo

Interface in Reflection

One @vertex, @fragment or @compute entry point: its stage, its parameter and return types as DSL type keys (the strings typeKey returns), and, for a @compute entry only, its workgroup size, which defaults to 64 when the entry declares none, matching the WGSL backend's own default.

import type { EntryInfo } from 'typeshade'

The signature, the description and the examples come from the compiler's own source at commit 26de7be8.

Syntax

interface EntryInfo {
readonly name: string;
readonly stage: 'vertex' | 'fragment' | 'compute';
readonly workgroupSize?: number;
readonly workgroupShape?: WorkgroupShape;
readonly inputs: readonly string[];
readonly output: string;
readonly portable?: true;
readonly io: EntryIo;
}

Description

semanticDiff fingerprints a module’s public interface with this shape: two modules whose entries differ here have a different pipeline contract even if every other byte of emitted source matches.

Instance properties

nameread only string
stageread only 'vertex' | 'fragment' | 'compute'
workgroupSizeoptionalread only number

The x workgroup extent of a compute entry. A host sizing a dispatch reads EntryInfo.workgroupShape, which also carries y and z.

workgroupShapeoptionalread only WorkgroupShape

The [x, y, z] workgroup extents of a compute entry, WGSL’s @workgroup_size(x, y, z) with a missing extent as 1: a dispatch of n invocations along an axis needs ceil(n / extent) workgroups on it.

inputsread only readonly string[]
outputread only string
portableoptionalread only true

Present, as true, when the entry is declared a portable kernel; absent otherwise, never false. It tells a host which dispatch shape the kernel needs: on a backend with no compute stage a portable kernel emits as fragment-shader GPGPU and is dispatched as a fullscreen draw into an R32UI target instead of a compute dispatch. An entry without it runs on WebGPU only.

ioread only EntryIo

The entry’s location and builtin interface, in structured form. inputs and output are type keys, which is what semanticDiff fingerprints with; io is the view beside them that a host validating a stage pair reads for the @location numbers. Always present. See EntryIo for how struct parameters and returns flatten.

See also

Source

src/core/reflect.ts, line 548, at commit 26de7be8

Edit this page Report a problem