wgsl_reflect
Version:
WGSL Parser and Reflection library
164 lines (163 loc) • 11.6 kB
TypeScript
import { CallExpr, Call } from "../wgsl_ast.js";
import { Data } from "../wgsl_ast.js";
import { ExecContext } from "./exec_context.js";
import { ExecInterface } from "./exec_interface.js";
import { TypeInfo } from "../reflect/info.js";
export declare class BuiltinFunctions {
exec: ExecInterface;
constructor(exec: ExecInterface);
getTypeInfo(type: string): TypeInfo | null;
All(node: CallExpr | Call, context: ExecContext): Data | null;
Any(node: CallExpr | Call, context: ExecContext): Data | null;
Select(node: CallExpr | Call, context: ExecContext): Data | null;
ArrayLength(node: CallExpr | Call, context: ExecContext): Data | null;
Abs(node: CallExpr | Call, context: ExecContext): Data | null;
Acos(node: CallExpr | Call, context: ExecContext): Data | null;
Acosh(node: CallExpr | Call, context: ExecContext): Data | null;
Asin(node: CallExpr | Call, context: ExecContext): Data | null;
Asinh(node: CallExpr | Call, context: ExecContext): Data | null;
Atan(node: CallExpr | Call, context: ExecContext): Data | null;
Atanh(node: CallExpr | Call, context: ExecContext): Data | null;
Atan2(node: CallExpr | Call, context: ExecContext): Data | null;
Ceil(node: CallExpr | Call, context: ExecContext): Data | null;
_clamp(value: number, min: number, max: number): number;
Clamp(node: CallExpr | Call, context: ExecContext): Data | null;
Cos(node: CallExpr | Call, context: ExecContext): Data | null;
Cosh(node: CallExpr | Call, context: ExecContext): Data | null;
CountLeadingZeros(node: CallExpr | Call, context: ExecContext): Data | null;
_countOneBits(value: number): number;
CountOneBits(node: CallExpr | Call, context: ExecContext): Data | null;
_countTrailingZeros(value: number): number;
CountTrailingZeros(node: CallExpr | Call, context: ExecContext): Data | null;
Cross(node: CallExpr | Call, context: ExecContext): Data | null;
Degrees(node: CallExpr | Call, context: ExecContext): Data | null;
Determinant(node: CallExpr | Call, context: ExecContext): Data | null;
Distance(node: CallExpr | Call, context: ExecContext): Data | null;
_dot(e1: Int32Array | Uint32Array | Float32Array, e2: Int32Array | Uint32Array | Float32Array): number;
Dot(node: CallExpr | Call, context: ExecContext): Data | null;
Dot4U8Packed(node: CallExpr | Call, context: ExecContext): Data | null;
Dot4I8Packed(node: CallExpr | Call, context: ExecContext): Data | null;
Exp(node: CallExpr | Call, context: ExecContext): Data | null;
Exp2(node: CallExpr | Call, context: ExecContext): Data | null;
ExtractBits(node: CallExpr | Call, context: ExecContext): Data | null;
FaceForward(node: CallExpr | Call, context: ExecContext): Data | null;
_firstLeadingBit(s: number): number;
FirstLeadingBit(node: CallExpr | Call, context: ExecContext): Data | null;
_firstTrailingBit(s: number): number;
FirstTrailingBit(node: CallExpr | Call, context: ExecContext): Data | null;
Floor(node: CallExpr | Call, context: ExecContext): Data | null;
Fma(node: CallExpr | Call, context: ExecContext): Data | null;
Fract(node: CallExpr | Call, context: ExecContext): Data | null;
Frexp(node: CallExpr | Call, context: ExecContext): Data | null;
InsertBits(node: CallExpr | Call, context: ExecContext): Data | null;
InverseSqrt(node: CallExpr | Call, context: ExecContext): Data | null;
Ldexp(node: CallExpr | Call, context: ExecContext): Data | null;
Length(node: CallExpr | Call, context: ExecContext): Data | null;
Log(node: CallExpr | Call, context: ExecContext): Data | null;
Log2(node: CallExpr | Call, context: ExecContext): Data | null;
Max(node: CallExpr | Call, context: ExecContext): Data | null;
Min(node: CallExpr | Call, context: ExecContext): Data | null;
Mix(node: CallExpr | Call, context: ExecContext): Data | null;
Modf(node: CallExpr | Call, context: ExecContext): Data | null;
Normalize(node: CallExpr | Call, context: ExecContext): Data | null;
Pow(node: CallExpr | Call, context: ExecContext): Data | null;
QuantizeToF16(node: CallExpr | Call, context: ExecContext): Data | null;
Radians(node: CallExpr | Call, context: ExecContext): Data | null;
Reflect(node: CallExpr | Call, context: ExecContext): Data | null;
Refract(node: CallExpr | Call, context: ExecContext): Data | null;
ReverseBits(node: CallExpr | Call, context: ExecContext): Data | null;
Round(node: CallExpr | Call, context: ExecContext): Data | null;
Saturate(node: CallExpr | Call, context: ExecContext): Data | null;
Sign(node: CallExpr | Call, context: ExecContext): Data | null;
Sin(node: CallExpr | Call, context: ExecContext): Data | null;
Sinh(node: CallExpr | Call, context: ExecContext): Data | null;
_smoothstep(edge0: number, edge1: number, x: number): number;
SmoothStep(node: CallExpr | Call, context: ExecContext): Data | null;
Sqrt(node: CallExpr | Call, context: ExecContext): Data | null;
Step(node: CallExpr | Call, context: ExecContext): Data | null;
Tan(node: CallExpr | Call, context: ExecContext): Data | null;
Tanh(node: CallExpr | Call, context: ExecContext): Data | null;
_getTransposeType(t: TypeInfo): TypeInfo;
Transpose(node: CallExpr | Call, context: ExecContext): Data | null;
Trunc(node: CallExpr | Call, context: ExecContext): Data | null;
Dpdx(node: CallExpr | Call, context: ExecContext): Data | null;
DpdxCoarse(node: CallExpr | Call, context: ExecContext): Data | null;
DpdxFine(node: CallExpr | Call, context: ExecContext): Data | null;
Dpdy(node: CallExpr | Call, context: ExecContext): Data | null;
DpdyCoarse(node: CallExpr | Call, context: ExecContext): Data | null;
DpdyFine(node: CallExpr | Call, context: ExecContext): Data | null;
Fwidth(node: CallExpr | Call, context: ExecContext): Data | null;
FwidthCoarse(node: CallExpr | Call, context: ExecContext): Data | null;
FwidthFine(node: CallExpr | Call, context: ExecContext): Data | null;
TextureDimensions(node: CallExpr | Call, context: ExecContext): Data | null;
TextureGather(node: CallExpr | Call, context: ExecContext): Data | null;
TextureGatherCompare(node: CallExpr | Call, context: ExecContext): Data | null;
TextureLoad(node: CallExpr | Call, context: ExecContext): Data | null;
TextureNumLayers(node: CallExpr | Call, context: ExecContext): Data | null;
TextureNumLevels(node: CallExpr | Call, context: ExecContext): Data | null;
TextureNumSamples(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSample(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleBias(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleCompare(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleCompareLevel(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleGrad(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleLevel(node: CallExpr | Call, context: ExecContext): Data | null;
TextureSampleBaseClampToEdge(node: CallExpr | Call, context: ExecContext): Data | null;
TextureStore(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicLoad(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicStore(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicAdd(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicSub(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicMax(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicMin(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicAnd(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicOr(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicXor(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicExchange(node: CallExpr | Call, context: ExecContext): Data | null;
AtomicCompareExchangeWeak(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4x8snorm(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4x8unorm(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4xI8(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4xU8(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4x8Clamp(node: CallExpr | Call, context: ExecContext): Data | null;
Pack4xU8Clamp(node: CallExpr | Call, context: ExecContext): Data | null;
Pack2x16snorm(node: CallExpr | Call, context: ExecContext): Data | null;
Pack2x16unorm(node: CallExpr | Call, context: ExecContext): Data | null;
Pack2x16float(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack4x8snorm(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack4x8unorm(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack4xI8(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack4xU8(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack2x16snorm(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack2x16unorm(node: CallExpr | Call, context: ExecContext): Data | null;
Unpack2x16float(node: CallExpr | Call, context: ExecContext): Data | null;
StorageBarrier(node: CallExpr | Call, context: ExecContext): Data | null;
TextureBarrier(node: CallExpr | Call, context: ExecContext): Data | null;
WorkgroupBarrier(node: CallExpr | Call, context: ExecContext): Data | null;
WorkgroupUniformLoad(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupAdd(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupExclusiveAdd(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupInclusiveAdd(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupAll(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupAnd(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupAny(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupBallot(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupBroadcast(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupBroadcastFirst(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupElect(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupMax(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupMin(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupMul(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupExclusiveMul(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupInclusiveMul(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupOr(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupShuffle(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupShuffleDown(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupShuffleUp(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupShuffleXor(node: CallExpr | Call, context: ExecContext): Data | null;
SubgroupXor(node: CallExpr | Call, context: ExecContext): Data | null;
QuadBroadcast(node: CallExpr | Call, context: ExecContext): Data | null;
QuadSwapDiagonal(node: CallExpr | Call, context: ExecContext): Data | null;
QuadSwapX(node: CallExpr | Call, context: ExecContext): Data | null;
QuadSwapY(node: CallExpr | Call, context: ExecContext): Data | null;
}