typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
19 lines (18 loc) • 1.6 kB
TypeScript
import type { IndirectFlag, TgpuBuffer } from '../buffer/buffer.ts';
import { type PrimitiveOffsetInfo } from '../../data/offsetUtils.ts';
import type { BaseData } from '../../data/wgslTypes.ts';
import type { TgpuBindGroup, TgpuBindGroupLayout } from '../../tgpuBindGroupLayout.ts';
import type { TgpuVertexLayout } from '../vertexLayout/vertexLayout.ts';
import type { Timeable, TimestampWritesPriors } from './timeable.ts';
export declare const DISPATCH_INDIRECT_SIZE = 12;
export declare const DRAW_INDIRECT_SIZE = 16;
export declare const DRAW_INDEXED_INDIRECT_SIZE = 20;
export declare function collectBindGroupPairs(layouts: TgpuBindGroupLayout[], catchall: [number, TgpuBindGroup] | undefined, map: Map<TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup> | undefined): [TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup][];
export declare function collectVertexBufferPairs<Buffer>(layouts: TgpuVertexLayout[], map: Map<TgpuVertexLayout, Buffer> | undefined): [TgpuVertexLayout, Buffer][];
export declare function restoreTimestampPriors<T extends Timeable>(pipeline: T, priors: {
readonly timestampWrites?: TimestampWritesPriors['timestampWrites'] | undefined;
readonly performanceCallback?: TimestampWritesPriors['performanceCallback'] | undefined;
}): T;
type IndirectOperation = 'dispatchWorkgroupsIndirect' | 'drawIndirect' | 'drawIndexedIndirect';
export declare function resolveIndirectOffset(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, start: PrimitiveOffsetInfo | number | undefined, requiredSize: number, operation: IndirectOperation): number;
export {};