typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
44 lines (43 loc) • 2.61 kB
TypeScript
import type { AnyIntegerVecInstance, AnyNumericVecInstance, v4u } from '../data/wgslTypes.ts';
interface IdentityNumOrVec {
(e: number): number;
<T extends AnyNumericVecInstance>(e: T): T;
}
interface IdentityIntNumOrVec {
(e: number): number;
<T extends AnyIntegerVecInstance>(e: T): T;
}
interface IdentityNumOrVecWithIdx {
(e: number, index: number): number;
<T extends AnyNumericVecInstance>(e: T, index: number): T;
}
interface IdentityNumOrVecWithDelta {
(e: number, delta: number): number;
<T extends AnyNumericVecInstance>(e: T, delta: number): T;
}
interface IdentityNumOrVecWithMask {
(e: number, mask: number): number;
<T extends AnyNumericVecInstance>(e: T, mask: number): T;
}
export declare const subgroupAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupExclusiveAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupInclusiveAdd: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupAll: import("../types.ts").DualFn<(e: boolean) => boolean>;
export declare const subgroupAnd: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export declare const subgroupAny: import("../types.ts").DualFn<(e: boolean) => boolean>;
export declare const subgroupBallot: import("../types.ts").DualFn<(e: boolean) => v4u>;
export declare const subgroupBroadcast: import("../types.ts").DualFn<IdentityNumOrVecWithIdx>;
export declare const subgroupBroadcastFirst: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupElect: import("../types.ts").DualFn<() => boolean>;
export declare const subgroupMax: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupMin: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupExclusiveMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupInclusiveMul: import("../types.ts").DualFn<IdentityNumOrVec>;
export declare const subgroupOr: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export declare const subgroupShuffle: import("../types.ts").DualFn<IdentityNumOrVecWithIdx>;
export declare const subgroupShuffleDown: import("../types.ts").DualFn<IdentityNumOrVecWithDelta>;
export declare const subgroupShuffleUp: import("../types.ts").DualFn<IdentityNumOrVecWithDelta>;
export declare const subgroupShuffleXor: import("../types.ts").DualFn<IdentityNumOrVecWithMask>;
export declare const subgroupXor: import("../types.ts").DualFn<IdentityIntNumOrVec>;
export {};