typegpu 0.11.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builtin.d.ts +51 -53
- package/builtin.js +30 -34
- package/common/fullScreenTriangle.d.ts +2 -10
- package/common/fullScreenTriangle.js +20 -28
- package/common/index.d.ts +2 -9
- package/common/index.js +3 -12
- package/common/writeSoA.d.ts +11 -12
- package/common/writeSoA.js +88 -76
- package/core/buffer/buffer.d.ts +79 -62
- package/core/buffer/buffer.js +279 -205
- package/core/buffer/bufferBinding.d.ts +71 -0
- package/core/buffer/bufferBinding.js +154 -0
- package/core/buffer/bufferUsage.d.ts +14 -45
- package/core/buffer/bufferUsage.js +1 -171
- package/core/buffer/laidOutBuffer.d.ts +25 -0
- package/core/buffer/laidOutBuffer.js +55 -0
- package/core/commandEncoder/attachments.d.ts +125 -0
- package/core/commandEncoder/attachments.js +29 -0
- package/core/commandEncoder/commandEncoder.d.ts +53 -0
- package/core/commandEncoder/commandEncoder.js +56 -0
- package/core/commandEncoder/computePass.d.ts +58 -0
- package/core/commandEncoder/computePass.js +63 -0
- package/core/commandEncoder/renderPass.d.ts +121 -0
- package/core/commandEncoder/renderPass.js +196 -0
- package/core/constant/tgpuConstant.d.ts +26 -26
- package/core/constant/tgpuConstant.js +76 -65
- package/core/declare/tgpuDeclare.d.ts +3 -6
- package/core/declare/tgpuDeclare.js +36 -36
- package/core/function/autoIO.d.ts +61 -33
- package/core/function/autoIO.js +68 -73
- package/core/function/comptime.d.ts +11 -13
- package/core/function/comptime.js +60 -52
- package/core/function/createCallableSchema.d.ts +16 -0
- package/core/function/createCallableSchema.js +50 -40
- package/core/function/dualImpl.d.ts +44 -0
- package/core/function/dualImpl.js +71 -50
- package/core/function/entryInputRouter.d.ts +26 -0
- package/core/function/entryInputRouter.js +31 -33
- package/core/function/extractArgs.d.ts +38 -0
- package/core/function/extractArgs.js +202 -200
- package/core/function/fnCore.d.ts +44 -5
- package/core/function/fnCore.js +148 -93
- package/core/function/fnTypes.d.ts +31 -29
- package/core/function/fnTypes.js +1 -0
- package/core/function/ioSchema.d.ts +12 -10
- package/core/function/ioSchema.js +65 -47
- package/core/function/shelllessImpl.d.ts +9 -12
- package/core/function/shelllessImpl.js +17 -22
- package/core/function/templateUtils.d.ts +2 -0
- package/core/function/templateUtils.js +9 -8
- package/core/function/tgpuComputeFn.d.ts +26 -28
- package/core/function/tgpuComputeFn.js +47 -48
- package/core/function/tgpuFn.d.ts +34 -37
- package/core/function/tgpuFn.js +179 -153
- package/core/function/tgpuFragmentFn.d.ts +52 -53
- package/core/function/tgpuFragmentFn.js +63 -56
- package/core/function/tgpuVertexFn.d.ts +36 -39
- package/core/function/tgpuVertexFn.js +56 -53
- package/core/pipeline/computePipeline.d.ts +141 -53
- package/core/pipeline/computePipeline.js +291 -225
- package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
- package/core/pipeline/connectAttachmentToShader.js +25 -22
- package/core/pipeline/connectTargetsToShader.d.ts +3 -0
- package/core/pipeline/connectTargetsToShader.js +29 -27
- package/core/pipeline/drawState.d.ts +52 -0
- package/core/pipeline/drawState.js +225 -0
- package/core/pipeline/limitsOverflow.d.ts +2 -0
- package/core/pipeline/limitsOverflow.js +13 -10
- package/core/pipeline/performanceTracker.d.ts +14 -0
- package/core/pipeline/performanceTracker.js +34 -0
- package/core/pipeline/pipelineUtils.d.ts +18 -0
- package/core/pipeline/pipelineUtils.js +54 -25
- package/core/pipeline/priors.d.ts +1 -0
- package/core/pipeline/priors.js +12 -0
- package/core/pipeline/renderPipeline.d.ts +246 -261
- package/core/pipeline/renderPipeline.js +487 -480
- package/core/pipeline/timeable.d.ts +28 -18
- package/core/pipeline/timeable.js +90 -52
- package/core/pipeline/typeGuards.d.ts +17 -0
- package/core/pipeline/typeGuards.js +52 -22
- package/core/querySet/querySet.d.ts +26 -21
- package/core/querySet/querySet.js +127 -103
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
- package/core/resolve/externals.d.ts +25 -8
- package/core/resolve/externals.js +78 -54
- package/core/resolve/namespace.d.ts +22 -25
- package/core/resolve/namespace.js +16 -21
- package/core/resolve/resolvableString.d.ts +7 -0
- package/core/resolve/resolvableString.js +13 -0
- package/core/resolve/resolveData.d.ts +10 -0
- package/core/resolve/resolveData.js +162 -121
- package/core/resolve/stitch.d.ts +8 -0
- package/core/resolve/stitch.js +23 -21
- package/core/resolve/tgpuResolve.d.ts +55 -53
- package/core/resolve/tgpuResolve.js +106 -53
- package/core/root/configurableImpl.d.ts +10 -0
- package/core/root/configurableImpl.js +17 -19
- package/core/root/init.d.ts +76 -38
- package/core/root/init.js +346 -455
- package/core/root/rootTypes.d.ts +461 -636
- package/core/root/rootTypes.js +1 -0
- package/core/sampler/sampler.d.ts +50 -31
- package/core/sampler/sampler.js +120 -113
- package/core/simulate/tgpuSimulate.d.ts +9 -12
- package/core/simulate/tgpuSimulate.js +68 -71
- package/core/slot/accessor.d.ts +36 -13
- package/core/slot/accessor.js +138 -91
- package/core/slot/internalSlots.d.ts +2 -0
- package/core/slot/internalSlots.js +1 -6
- package/core/slot/lazy.d.ts +2 -6
- package/core/slot/lazy.js +71 -39
- package/core/slot/slot.d.ts +2 -6
- package/core/slot/slot.js +45 -38
- package/core/slot/slotTypes.d.ts +78 -80
- package/core/slot/slotTypes.js +11 -16
- package/core/texture/externalTexture.d.ts +20 -11
- package/core/texture/externalTexture.js +46 -46
- package/core/texture/texture.d.ts +152 -97
- package/core/texture/texture.js +407 -314
- package/core/texture/textureFormats.d.ts +42 -23
- package/core/texture/textureFormats.js +104 -75
- package/core/texture/textureProps.d.ts +7 -10
- package/core/texture/textureProps.js +1 -0
- package/core/texture/textureUtils.d.ts +8 -0
- package/core/texture/textureUtils.js +185 -179
- package/core/texture/usageExtension.d.ts +21 -18
- package/core/texture/usageExtension.js +13 -17
- package/core/unroll/tgpuUnroll.d.ts +20 -19
- package/core/unroll/tgpuUnroll.js +82 -91
- package/core/valueProxyUtils.d.ts +3 -0
- package/core/valueProxyUtils.js +52 -41
- package/core/variable/tgpuVariable.d.ts +26 -27
- package/core/variable/tgpuVariable.js +93 -96
- package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
- package/core/vertexLayout/connectAttributesToShader.js +61 -56
- package/core/vertexLayout/vertexAttribute.d.ts +21 -17
- package/core/vertexLayout/vertexAttribute.js +1 -0
- package/core/vertexLayout/vertexLayout.d.ts +24 -18
- package/core/vertexLayout/vertexLayout.js +130 -99
- package/core/whitespaces.d.ts +2 -0
- package/core/whitespaces.js +16 -0
- package/data/alignIO.d.ts +7 -0
- package/data/alignIO.js +13 -13
- package/data/alignmentOf.d.ts +5 -8
- package/data/alignmentOf.js +90 -75
- package/data/array.d.ts +6 -9
- package/data/array.js +48 -40
- package/data/atomic.d.ts +2 -7
- package/data/atomic.js +26 -23
- package/data/attributes.d.ts +19 -21
- package/data/attributes.js +192 -132
- package/data/autoStruct.d.ts +36 -3
- package/data/autoStruct.js +84 -81
- package/data/compiledIO.d.ts +5 -0
- package/data/compiledIO.js +231 -215
- package/data/dataIO.d.ts +13 -11
- package/data/dataIO.js +643 -589
- package/data/dataTypes.d.ts +83 -65
- package/data/dataTypes.js +66 -68
- package/data/deepEqual.d.ts +2 -7
- package/data/deepEqual.js +80 -55
- package/data/disarray.d.ts +6 -10
- package/data/disarray.js +52 -46
- package/data/float16Conversion.d.ts +4 -0
- package/data/float16Conversion.js +7 -0
- package/data/getLongestContiguousPrefix.d.ts +4 -8
- package/data/getLongestContiguousPrefix.js +6 -11
- package/data/index.d.ts +30 -31
- package/data/index.js +39 -172
- package/data/instanceToSchema.d.ts +24 -27
- package/data/instanceToSchema.js +1 -0
- package/data/isContiguous.d.ts +4 -8
- package/data/isContiguous.js +6 -11
- package/data/matrix.d.ts +21 -21
- package/data/matrix.js +513 -505
- package/data/numberOps.d.ts +6 -0
- package/data/numberOps.js +26 -20
- package/data/numeric.d.ts +21 -12
- package/data/numeric.js +287 -197
- package/data/offsetUtils.d.ts +9 -13
- package/data/offsetUtils.js +204 -144
- package/data/offsets.d.ts +8 -0
- package/data/offsets.js +33 -33
- package/data/partialIO.d.ts +13 -8
- package/data/partialIO.js +124 -113
- package/data/ptr.d.ts +12 -12
- package/data/ptr.js +42 -44
- package/data/ref.d.ts +40 -27
- package/data/ref.js +125 -95
- package/data/sampler.d.ts +99 -101
- package/data/sampler.js +17 -21
- package/data/schemaCallWrapper.d.ts +19 -0
- package/data/schemaCallWrapper.js +31 -26
- package/data/schemaMemoryLayout.d.ts +8 -0
- package/data/schemaMemoryLayout.js +213 -185
- package/data/sizeOf.d.ts +4 -8
- package/data/sizeOf.js +6 -11
- package/data/snippet.d.ts +96 -20
- package/data/snippet.js +75 -86
- package/data/struct.d.ts +4 -7
- package/data/struct.js +51 -39
- package/data/texture.d.ts +253 -250
- package/data/texture.js +238 -200
- package/data/unstruct.d.ts +2 -7
- package/data/unstruct.js +43 -37
- package/data/vector.d.ts +33 -21
- package/data/vector.js +234 -221
- package/data/vectorImpl.d.ts +231 -0
- package/data/vectorImpl.js +563 -515
- package/data/vectorOps.d.ts +63 -0
- package/data/vectorOps.js +642 -630
- package/data/vertexFormatData.d.ts +181 -184
- package/data/vertexFormatData.js +104 -106
- package/data/wgslTypes.d.ts +665 -600
- package/data/wgslTypes.js +220 -198
- package/errors.d.ts +50 -24
- package/errors.js +146 -126
- package/execMode.d.ts +16 -0
- package/execMode.js +47 -40
- package/extension.d.ts +13 -8
- package/extension.js +10 -16
- package/getGPUValue.d.ts +1 -0
- package/getGPUValue.js +2 -7
- package/index.d.ts +28 -68
- package/index.js +8 -28
- package/indexNamedExports.d.ts +69 -42
- package/indexNamedExports.js +25 -0
- package/internal.d.ts +16 -0
- package/internal.js +12 -0
- package/mathUtils.d.ts +5 -0
- package/mathUtils.js +7 -11
- package/memo.d.ts +11 -0
- package/memo.js +20 -22
- package/minify.d.ts +5 -0
- package/minify.js +93 -0
- package/nameUtils.d.ts +29 -0
- package/nameUtils.js +427 -394
- package/package.json +5 -1
- package/resolutionCtx.d.ts +162 -22
- package/resolutionCtx.js +911 -629
- package/serial/registry.d.ts +15 -0
- package/serial/registry.js +106 -0
- package/serial/restore.d.ts +49 -0
- package/serial/restore.js +68 -0
- package/serial/schema.d.ts +58 -0
- package/serial/schema.js +209 -0
- package/serial/types.d.ts +5 -0
- package/serial/types.js +1 -0
- package/shared/env.d.ts +9 -0
- package/shared/env.js +9 -12
- package/shared/generators.d.ts +4 -0
- package/shared/generators.js +10 -12
- package/shared/meta.d.ts +29 -14
- package/shared/meta.js +71 -55
- package/shared/normalizeMetadata.d.ts +32 -27
- package/shared/normalizeMetadata.js +23 -36
- package/shared/repr.d.ts +73 -55
- package/shared/repr.js +1 -0
- package/shared/soul.d.ts +17 -0
- package/shared/soul.js +1 -0
- package/shared/stringify.d.ts +2 -0
- package/shared/stringify.js +29 -20
- package/shared/symbols.d.ts +26 -20
- package/shared/symbols.js +79 -79
- package/shared/tseynit.d.ts +2 -0
- package/shared/tseynit.js +160 -75
- package/shared/utilityTypes.d.ts +30 -14
- package/shared/utilityTypes.js +2 -6
- package/shared/vertexFormat.d.ts +41 -43
- package/shared/vertexFormat.js +59 -62
- package/std/array.d.ts +2 -7
- package/std/array.js +18 -23
- package/std/atomic.d.ts +14 -18
- package/std/atomic.js +96 -95
- package/std/bitcast.d.ts +193 -10
- package/std/bitcast.js +309 -39
- package/std/boolean.d.ts +19 -33
- package/std/boolean.js +296 -288
- package/std/copy.d.ts +2 -7
- package/std/copy.js +27 -24
- package/std/derivative.d.ts +11 -15
- package/std/derivative.js +56 -79
- package/std/discard.d.ts +1 -6
- package/std/discard.js +7 -14
- package/std/environment.d.ts +19 -14
- package/std/environment.js +71 -51
- package/std/extensions.d.ts +2 -8
- package/std/extensions.js +10 -11
- package/std/index.d.ts +20 -24
- package/std/index.js +32 -187
- package/std/matrix.d.ts +6 -12
- package/std/matrix.js +60 -69
- package/std/numeric.d.ts +143 -146
- package/std/numeric.js +858 -749
- package/std/operators.d.ts +19 -27
- package/std/operators.js +227 -193
- package/std/packing.d.ts +5 -11
- package/std/packing.js +67 -75
- package/std/range.d.ts +6 -11
- package/std/range.js +48 -36
- package/std/subgroup.d.ts +33 -37
- package/std/subgroup.js +180 -217
- package/std/texture.d.ts +70 -38
- package/std/texture.js +176 -172
- package/taskQueue.d.ts +6 -0
- package/taskQueue.js +30 -0
- package/tgpu.d.ts +16 -0
- package/tgpu.js +17 -44
- package/tgpuBindGroupLayout.d.ts +132 -152
- package/tgpuBindGroupLayout.js +346 -268
- package/tgpuLogger.d.ts +34 -0
- package/tgpuLogger.js +63 -0
- package/tgpuUnstable.d.ts +16 -22
- package/tgpuUnstable.js +13 -35
- package/tgsl/accessIndex.d.ts +2 -0
- package/tgsl/accessIndex.js +76 -33
- package/tgsl/accessProp.d.ts +2 -0
- package/tgsl/accessProp.js +142 -101
- package/tgsl/accessStructProp.d.ts +5 -0
- package/tgsl/accessStructProp.js +13 -15
- package/tgsl/consoleLog/deserializers.d.ts +13 -0
- package/tgsl/consoleLog/deserializers.js +119 -103
- package/tgsl/consoleLog/logGenerator.d.ts +21 -0
- package/tgsl/consoleLog/logGenerator.js +85 -80
- package/tgsl/consoleLog/serializers.d.ts +21 -0
- package/tgsl/consoleLog/serializers.js +119 -100
- package/tgsl/consoleLog/types.d.ts +40 -39
- package/tgsl/consoleLog/types.js +1 -0
- package/tgsl/conversion.d.ts +33 -0
- package/tgsl/conversion.js +271 -216
- package/tgsl/forOfUtils.d.ts +15 -0
- package/tgsl/forOfUtils.js +85 -70
- package/tgsl/generationHelpers.d.ts +22 -39
- package/tgsl/generationHelpers.js +85 -58
- package/tgsl/infixDispatch.d.ts +70 -0
- package/tgsl/infixDispatch.js +48 -46
- package/tgsl/jsPolyfills.d.ts +16 -19
- package/tgsl/jsPolyfills.js +44 -42
- package/tgsl/makeDereferenceable.d.ts +48 -0
- package/tgsl/makeDereferenceable.js +86 -0
- package/tgsl/makeResolvable.d.ts +22 -0
- package/tgsl/makeResolvable.js +33 -0
- package/tgsl/shaderGenerator.d.ts +77 -17
- package/tgsl/shaderGenerator.js +1 -0
- package/tgsl/shellless.d.ts +6 -9
- package/tgsl/shellless.js +73 -43
- package/tgsl/wgslGenerator.d.ts +66 -59
- package/tgsl/wgslGenerator.js +1344 -760
- package/types.d.ts +287 -222
- package/types.js +61 -44
- package/unwrapper.d.ts +31 -26
- package/unwrapper.js +1 -0
- package/wgslExtensions.d.ts +3 -5
- package/wgslExtensions.js +12 -16
- package/_virtual/rolldown_runtime.js +0 -13
- package/core/buffer/bufferShorthand.d.ts +0 -50
- package/core/buffer/bufferShorthand.js +0 -55
- package/core/pipeline/applyPipelineState.js +0 -37
- package/package.js +0 -5
- package/tgsl/shaderGenerator_members.d.ts +0 -33
- package/tgsl/shaderGenerator_members.js +0 -12
|
@@ -1,58 +1,146 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import type { AnyComputeBuiltin } from '../../builtin.ts';
|
|
2
|
+
import type { TgpuQuerySet } from '../querySet/querySet.ts';
|
|
3
|
+
import { type ResolvedSnippet } from '../../data/snippet.ts';
|
|
4
|
+
import type { AnyWgslData } from '../../data/wgslTypes.ts';
|
|
5
|
+
import type { TgpuNamable } from '../../shared/meta.ts';
|
|
6
|
+
import type { TgpuDeviceOwningSoul } from '../../shared/soul.ts';
|
|
7
|
+
import { $getNameForward, $internal, $resolve, $soul } from '../../shared/symbols.ts';
|
|
8
|
+
import { type TgpuBindGroup, type TgpuBindGroupLayout, type TgpuLayoutEntry } from '../../tgpuBindGroupLayout.ts';
|
|
9
|
+
import { type TgpuCommandEncoder } from '../commandEncoder/commandEncoder.ts';
|
|
10
|
+
import { type TgpuComputePass } from '../commandEncoder/computePass.ts';
|
|
11
|
+
import type { LogResources } from '../../tgsl/consoleLog/types.ts';
|
|
12
|
+
import { type ResolutionCtx, type SelfResolvable } from '../../types.ts';
|
|
13
|
+
import type { IORecord } from '../function/fnTypes.ts';
|
|
14
|
+
import type { TgpuComputeFn } from '../function/tgpuComputeFn.ts';
|
|
15
|
+
import type { ExperimentalTgpuRoot } from '../root/rootTypes.ts';
|
|
16
|
+
import type { TgpuSlot } from '../slot/slotTypes.ts';
|
|
17
|
+
import type { PrimitiveOffsetInfo } from '../../data/offsetUtils.ts';
|
|
18
|
+
import type { RestoreContext } from '../../serial/types.ts';
|
|
19
|
+
import { type Timeable, type TimestampWritesPriors } from './timeable.ts';
|
|
20
|
+
import type { IndirectFlag, TgpuBuffer } from '../buffer/buffer.ts';
|
|
21
|
+
export interface ComputePipelineInternals {
|
|
22
|
+
readonly core: ComputePipelineCore;
|
|
23
|
+
readonly priors: TgpuComputePipelinePriors & TimestampWritesPriors;
|
|
24
|
+
readonly root: ExperimentalTgpuRoot;
|
|
25
|
+
readonly materialize: () => GPUComputePipeline;
|
|
23
26
|
}
|
|
24
|
-
interface
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
with<Entries extends Record<string, TgpuLayoutEntry | null>>(bindGroupLayout: TgpuBindGroupLayout<Entries>, bindGroup: TgpuBindGroup<Entries>): this;
|
|
32
|
-
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
33
|
-
with(bindGroup: TgpuBindGroup): this;
|
|
34
|
-
with(encoder: GPUCommandEncoder): this;
|
|
35
|
-
with(pass: GPUComputePassEncoder): this;
|
|
36
|
-
dispatchWorkgroups(x: number, y?: number, z?: number): void;
|
|
37
|
-
/**
|
|
38
|
-
* Dispatches compute workgroups using parameters read from a buffer.
|
|
39
|
-
* The buffer must contain 3 consecutive u32 values (x, y, z workgroup counts).
|
|
40
|
-
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
41
|
-
*
|
|
42
|
-
* @param indirectBuffer - Buffer marked with 'indirect' usage containing dispatch parameters or raw GPUBuffer
|
|
43
|
-
* @param start - PrimitiveOffsetInfo pointing to the first dispatch parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
44
|
-
*/
|
|
45
|
-
dispatchWorkgroupsIndirect<T extends AnyWgslData>(indirectBuffer: (TgpuBuffer<T> & IndirectFlag) | GPUBuffer, start?: PrimitiveOffsetInfo | number): void;
|
|
27
|
+
export interface TgpuComputePipelineSoul extends TgpuDeviceOwningSoul<'compute-pipeline', GPUComputePipeline> {
|
|
28
|
+
usedBindGroupLayouts?: TgpuBindGroupLayout[] | undefined;
|
|
29
|
+
bindGroups?: [TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup][] | undefined;
|
|
30
|
+
timestampWrites?: TimestampWritesPriors['timestampWrites'];
|
|
31
|
+
performanceCallback?: TimestampWritesPriors['performanceCallback'];
|
|
32
|
+
nonTransferablePriors?: string[] | undefined;
|
|
46
33
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
34
|
+
export interface TgpuComputePipeline extends TgpuNamable, SelfResolvable, Timeable {
|
|
35
|
+
readonly [$internal]: ComputePipelineInternals;
|
|
36
|
+
readonly [$soul]: TgpuComputePipelineSoul;
|
|
37
|
+
readonly resourceType: 'compute-pipeline';
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated This overload is outdated.
|
|
40
|
+
* Call `pipeline.with(bindGroup)` instead.
|
|
41
|
+
*/
|
|
42
|
+
with<Entries extends Record<string, TgpuLayoutEntry | null>>(bindGroupLayout: TgpuBindGroupLayout<Entries>, bindGroup: TgpuBindGroup<Entries>): this;
|
|
43
|
+
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
44
|
+
with(bindGroup: TgpuBindGroup): this;
|
|
45
|
+
/**
|
|
46
|
+
* Directs subsequent dispatches into the given compute pass, letting multiple
|
|
47
|
+
* pipelines share one pass (and one submission).
|
|
48
|
+
*/
|
|
49
|
+
with(pass: TgpuComputePass): this;
|
|
50
|
+
/**
|
|
51
|
+
* Directs subsequent dispatches into the given command encoder. Each dispatch
|
|
52
|
+
* records its own compute pass; the caller owns the submission.
|
|
53
|
+
*/
|
|
54
|
+
with(encoder: TgpuCommandEncoder): this;
|
|
55
|
+
with(encoder: GPUCommandEncoder): this;
|
|
56
|
+
with(pass: GPUComputePassEncoder): this;
|
|
57
|
+
dispatchWorkgroups(x: number, y?: number, z?: number): void;
|
|
58
|
+
/**
|
|
59
|
+
* Immediately resolves the pipeline, then awaits `device.createComputePipelineAsync()`.
|
|
60
|
+
* NOTE: it is not necessary to initialize pipelines manually.
|
|
61
|
+
*/
|
|
62
|
+
initAsync(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Immediately resolves the pipeline and creates WebGPU resources.
|
|
65
|
+
* NOTE: it is not necessary to initialize pipelines manually.
|
|
66
|
+
*/
|
|
67
|
+
initSync(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Dispatches compute workgroups using parameters read from a buffer.
|
|
70
|
+
* The buffer must contain 3 consecutive u32 values (x, y, z workgroup counts).
|
|
71
|
+
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
72
|
+
*
|
|
73
|
+
* @param indirectBuffer - Buffer marked with 'indirect' usage containing dispatch parameters or raw GPUBuffer
|
|
74
|
+
* @param start - PrimitiveOffsetInfo pointing to the first dispatch parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
75
|
+
*/
|
|
76
|
+
dispatchWorkgroupsIndirect<T extends AnyWgslData>(indirectBuffer: (TgpuBuffer<T> & IndirectFlag) | GPUBuffer, start?: PrimitiveOffsetInfo | number): void;
|
|
51
77
|
}
|
|
78
|
+
export declare namespace TgpuComputePipeline {
|
|
79
|
+
type Descriptor<Input extends IORecord<AnyComputeBuiltin> = IORecord<AnyComputeBuiltin>> = {
|
|
80
|
+
compute: TgpuComputeFn<Input>;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export declare function INTERNAL_createComputePipeline(root: ExperimentalTgpuRoot, slotBindings: [TgpuSlot<unknown>, unknown][], descriptor: TgpuComputePipeline.Descriptor): TgpuComputePipelineImpl;
|
|
84
|
+
export declare function INTERNAL_restoreComputePipeline(soul: TgpuComputePipelineSoul, ctx: RestoreContext): TgpuComputePipeline;
|
|
52
85
|
type TgpuComputePipelinePriors = {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
86
|
+
readonly bindGroupLayoutMap?: Map<TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup>;
|
|
87
|
+
/** A pass the pipeline dispatches into, but does not own */
|
|
88
|
+
readonly pass?: TgpuComputePass | undefined;
|
|
89
|
+
/** An encoder the pipeline records its own passes into, but does not submit */
|
|
90
|
+
readonly encoder?: TgpuCommandEncoder | undefined;
|
|
56
91
|
} & TimestampWritesPriors;
|
|
57
|
-
|
|
58
|
-
|
|
92
|
+
type Memo = {
|
|
93
|
+
pipeline: GPUComputePipeline;
|
|
94
|
+
usedBindGroupLayouts: TgpuBindGroupLayout[];
|
|
95
|
+
catchall: [number, TgpuBindGroup] | undefined;
|
|
96
|
+
logResources: LogResources | undefined;
|
|
97
|
+
};
|
|
98
|
+
declare class TgpuComputePipelineImpl implements TgpuComputePipeline {
|
|
99
|
+
#private;
|
|
100
|
+
readonly [$internal]: ComputePipelineInternals;
|
|
101
|
+
readonly [$soul]: TgpuComputePipelineSoul;
|
|
102
|
+
readonly resourceType = "compute-pipeline";
|
|
103
|
+
readonly [$getNameForward]: ComputePipelineCore;
|
|
104
|
+
constructor(core: ComputePipelineCore, priors: TgpuComputePipelinePriors);
|
|
105
|
+
[$resolve](ctx: ResolutionCtx): ResolvedSnippet;
|
|
106
|
+
toString(): string;
|
|
107
|
+
with<Entries extends Record<string, TgpuLayoutEntry | null>>(bindGroupLayout: TgpuBindGroupLayout<Entries>, bindGroup: TgpuBindGroup<Entries>): this;
|
|
108
|
+
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
109
|
+
with(bindGroup: TgpuBindGroup): this;
|
|
110
|
+
with(pass: TgpuComputePass): this;
|
|
111
|
+
with(encoder: TgpuCommandEncoder): this;
|
|
112
|
+
with(encoder: GPUCommandEncoder): this;
|
|
113
|
+
with(pass: GPUComputePassEncoder): this;
|
|
114
|
+
withPerformanceCallback(callback: (start: bigint, end: bigint) => void | Promise<void>): this;
|
|
115
|
+
withTimestampWrites(options: {
|
|
116
|
+
querySet: TgpuQuerySet<'timestamp'> | GPUQuerySet;
|
|
117
|
+
beginningOfPassWriteIndex?: number;
|
|
118
|
+
endOfPassWriteIndex?: number;
|
|
119
|
+
}): this;
|
|
120
|
+
dispatchWorkgroups(x: number, y?: number, z?: number): void;
|
|
121
|
+
dispatchWorkgroupsIndirect<T extends AnyWgslData>(indirectBuffer: (TgpuBuffer<T> & IndirectFlag) | GPUBuffer, start?: PrimitiveOffsetInfo | number): void;
|
|
122
|
+
initAsync(): Promise<void>;
|
|
123
|
+
initSync(): void;
|
|
124
|
+
$name(label: string): this;
|
|
125
|
+
}
|
|
126
|
+
declare class ComputePipelineCore implements SelfResolvable {
|
|
127
|
+
#private;
|
|
128
|
+
readonly [$internal] = true;
|
|
129
|
+
readonly root: ExperimentalTgpuRoot;
|
|
130
|
+
constructor(root: ExperimentalTgpuRoot, slotBindings: [TgpuSlot<unknown>, unknown][], descriptor: TgpuComputePipeline.Descriptor | undefined);
|
|
131
|
+
static precompiled(root: ExperimentalTgpuRoot, memo: Memo): ComputePipelineCore;
|
|
132
|
+
[$resolve](ctx: ResolutionCtx): ResolvedSnippet;
|
|
133
|
+
toString(): string;
|
|
134
|
+
get performanceCallbackQuerySet(): TgpuQuerySet<"timestamp"> | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* @privateRemarks
|
|
137
|
+
* This function cannot be a regular async function
|
|
138
|
+
* because when called multiple times before the promise finishes,
|
|
139
|
+
* we want it to return the same promise each time.
|
|
140
|
+
*/
|
|
141
|
+
initAsync(): Promise<void>;
|
|
142
|
+
initSync(): void;
|
|
143
|
+
unwrap(): Memo;
|
|
144
|
+
private resolveAndCreateShaderModule;
|
|
145
|
+
}
|
|
146
|
+
export {};
|