typegpu 0.11.9 → 0.12.1
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/bin.mjs +28 -6
- 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 +283 -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/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/pipeline/webgpuLimitations.d.ts +10 -0
- package/core/pipeline/webgpuLimitations.js +81 -0
- 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 +17 -9
- package/data/array.js +57 -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/generalizeFn.d.ts +25 -0
- package/data/generalizeFn.js +89 -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 +5 -0
- package/data/numberOps.js +21 -21
- 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 +25 -0
- package/data/vectorOps.js +118 -669
- 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 -292
- 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 +150 -146
- package/std/numeric.js +771 -727
- package/std/operators.d.ts +19 -27
- package/std/operators.js +195 -194
- 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 +64 -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 +1345 -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/core/pipeline/limitsOverflow.js +0 -13
- package/package.js +0 -5
- package/tgsl/shaderGenerator_members.d.ts +0 -33
- package/tgsl/shaderGenerator_members.js +0 -12
|
@@ -1,284 +1,269 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ResolvedSnippet } from
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { AnyVertexAttribs } from
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { ExperimentalTgpuRoot } from
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
interface RenderPipelineInternals {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
import type { AnyBuiltin, OmitBuiltins } from '../../builtin.ts';
|
|
2
|
+
import type { IndexFlag, IndirectFlag, TgpuBuffer, VertexFlag } from '../buffer/buffer.ts';
|
|
3
|
+
import type { TgpuQuerySet } from '../querySet/querySet.ts';
|
|
4
|
+
import { type Disarray, type UndecorateRecord } from '../../data/dataTypes.ts';
|
|
5
|
+
import { type ResolvedSnippet } from '../../data/snippet.ts';
|
|
6
|
+
import { type AnyVecInstance, type BaseData, type U16, type U32, type v4f, Void, type WgslArray, type WgslStruct } from '../../data/wgslTypes.ts';
|
|
7
|
+
import type { TgpuNamable } from '../../shared/meta.ts';
|
|
8
|
+
import type { TgpuDeviceOwningSoul } from '../../shared/soul.ts';
|
|
9
|
+
import { $getNameForward, $internal, $resolve, $soul } from '../../shared/symbols.ts';
|
|
10
|
+
import type { AnyVertexAttribs } from '../../shared/vertexFormat.ts';
|
|
11
|
+
import { type TgpuBindGroup, type TgpuBindGroupLayout, type TgpuLayoutEntry } from '../../tgpuBindGroupLayout.ts';
|
|
12
|
+
import type { LogResources } from '../../tgsl/consoleLog/types.ts';
|
|
13
|
+
import type { ResolutionCtx, SelfResolvable } from '../../types.ts';
|
|
14
|
+
import { type AnyAutoCustoms, type AutoFragmentIn, type AutoFragmentOut, type AutoVertexIn, type AutoVertexOut } from '../function/autoIO.ts';
|
|
15
|
+
import type { TgpuFragmentFn } from '../function/tgpuFragmentFn.ts';
|
|
16
|
+
import type { TgpuVertexFn } from '../function/tgpuVertexFn.ts';
|
|
17
|
+
import type { ExperimentalTgpuRoot } from '../root/rootTypes.ts';
|
|
18
|
+
import type { TgpuSlot } from '../slot/slotTypes.ts';
|
|
19
|
+
import { type TgpuVertexLayout } from '../vertexLayout/vertexLayout.ts';
|
|
20
|
+
import { type TgpuCommandEncoder } from '../commandEncoder/commandEncoder.ts';
|
|
21
|
+
import type { ColorAttachment, DepthStencilAttachment } from '../commandEncoder/attachments.ts';
|
|
22
|
+
import { type TgpuRenderCommands } from '../commandEncoder/renderPass.ts';
|
|
23
|
+
import { type Timeable, type TimestampWritesPriors } from './timeable.ts';
|
|
24
|
+
import { type PrimitiveOffsetInfo } from '../../data/offsetUtils.ts';
|
|
25
|
+
import type { RestoreContext } from '../../serial/types.ts';
|
|
26
|
+
export interface RenderPipelineInternals {
|
|
27
|
+
readonly core: RenderPipelineCore;
|
|
28
|
+
readonly priors: TgpuRenderPipelinePriors & TimestampWritesPriors;
|
|
29
|
+
readonly root: ExperimentalTgpuRoot;
|
|
30
|
+
readonly materialize: () => GPURenderPipeline;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
export interface TgpuRenderPipelineSoul extends TgpuDeviceOwningSoul<'render-pipeline', GPURenderPipeline> {
|
|
33
|
+
usedBindGroupLayouts?: TgpuBindGroupLayout[] | undefined;
|
|
34
|
+
usedVertexLayouts?: TgpuVertexLayout[] | undefined;
|
|
35
|
+
fragmentOut?: BaseData | undefined;
|
|
36
|
+
bindGroups?: [TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup][] | undefined;
|
|
37
|
+
vertexBuffers?: [TgpuVertexLayout, (TgpuBuffer<BaseData> & VertexFlag) | GPUBuffer][] | undefined;
|
|
38
|
+
indexBuffer?: {
|
|
39
|
+
buffer: (TgpuBuffer<BaseData> & IndexFlag) | GPUBuffer;
|
|
40
|
+
indexFormat: GPUIndexFormat;
|
|
41
|
+
offsetBytes?: number | undefined;
|
|
42
|
+
sizeBytes?: number | undefined;
|
|
43
|
+
} | undefined;
|
|
44
|
+
stencilReference?: GPUStencilValue | undefined;
|
|
45
|
+
timestampWrites?: TimestampWritesPriors['timestampWrites'];
|
|
46
|
+
performanceCallback?: TimestampWritesPriors['performanceCallback'];
|
|
47
|
+
nonTransferablePriors?: string[] | undefined;
|
|
48
|
+
}
|
|
49
|
+
export type TgpuPrimitiveState = GPUPrimitiveState | (Omit<GPUPrimitiveState, 'stripIndexFormat'> & {
|
|
50
|
+
stripIndexFormat?: U32 | U16;
|
|
33
51
|
}) | undefined;
|
|
34
|
-
type TgpuColorTargetState = (Omit<GPUColorTargetState, 'format'> & {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
export type TgpuColorTargetState = (Omit<GPUColorTargetState, 'format'> & {
|
|
53
|
+
/**
|
|
54
|
+
* The {@link GPUTextureFormat} of this color target. The pipeline will only be compatible with
|
|
55
|
+
* {@link GPURenderPassEncoder}s which use a {@link GPUTextureView} of this format in the
|
|
56
|
+
* corresponding color attachment.
|
|
57
|
+
*
|
|
58
|
+
* @default navigator.gpu.getPreferredCanvasFormat()
|
|
59
|
+
*/
|
|
60
|
+
format?: GPUTextureFormat | undefined;
|
|
43
61
|
}) | undefined;
|
|
44
|
-
interface HasIndexBuffer {
|
|
45
|
-
|
|
46
|
-
|
|
62
|
+
export interface HasIndexBuffer {
|
|
63
|
+
readonly hasIndexBuffer: true;
|
|
64
|
+
drawIndexed(indexCount: number, instanceCount?: number, firstIndex?: number, baseVertex?: number, firstInstance?: number): void;
|
|
47
65
|
}
|
|
48
|
-
interface TgpuRenderPipeline<in Targets = never> extends TgpuNamable, SelfResolvable, Timeable {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
* @deprecated This overload is outdated.
|
|
55
|
-
* Call `pipeline.with(bindGroup)` instead.
|
|
56
|
-
*/
|
|
57
|
-
with<Entries extends Record<string, TgpuLayoutEntry | null>>(bindGroupLayout: TgpuBindGroupLayout<Entries>, bindGroup: TgpuBindGroup<Entries>): this;
|
|
58
|
-
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
59
|
-
with(bindGroup: TgpuBindGroup): this;
|
|
60
|
-
with(encoder: GPUCommandEncoder): this;
|
|
61
|
-
with(pass: GPURenderPassEncoder): this;
|
|
62
|
-
with(bundleEncoder: GPURenderBundleEncoder): this;
|
|
63
|
-
/**
|
|
64
|
-
* Attaches texture views to the pipeline's targets (outputs).
|
|
65
|
-
*
|
|
66
|
-
* @example
|
|
67
|
-
* // Draw 3 vertices onto the context's canvas
|
|
68
|
-
* pipeline
|
|
69
|
-
* .withColorAttachment({ view: context })
|
|
70
|
-
* .draw(3)
|
|
71
|
-
*
|
|
72
|
-
* @param attachment The object should match the shape
|
|
73
|
-
* returned by the fragment shader, with values matching the {@link ColorAttachment} type.
|
|
74
|
-
*/
|
|
75
|
-
withColorAttachment(attachment: FragmentOutToColorAttachment<Targets>): this;
|
|
76
|
-
withDepthStencilAttachment(attachment: DepthStencilAttachment): this;
|
|
77
|
-
withStencilReference(reference: GPUStencilValue): this;
|
|
78
|
-
withIndexBuffer(buffer: TgpuBuffer<BaseData> & IndexFlag, offsetElements?: number, sizeElements?: number): this & HasIndexBuffer;
|
|
79
|
-
withIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offsetBytes?: number, sizeBytes?: number): this & HasIndexBuffer;
|
|
80
|
-
draw(vertexCount: number, instanceCount?: number, firstVertex?: number, firstInstance?: number): void;
|
|
81
|
-
/**
|
|
82
|
-
* Draws primitives using parameters read from a buffer.
|
|
83
|
-
* The buffer must contain 4 consecutive u32 values (vertexCount, instanceCount, firstVertex, firstInstance).
|
|
84
|
-
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
85
|
-
*
|
|
86
|
-
* @param indirectBuffer - Buffer marked with 'indirect' usage containing draw parameters or raw GPUBuffer
|
|
87
|
-
* @param indirectOffset - PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
88
|
-
*/
|
|
89
|
-
drawIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
90
|
-
/**
|
|
91
|
-
* Draws indexed primitives using parameters read from a buffer.
|
|
92
|
-
* The buffer must contain 5 consecutive 32-bit integer values (indexCount u32, instanceCount u32, firstIndex u32, baseVertex i32, firstInstance u32).
|
|
93
|
-
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
94
|
-
*
|
|
95
|
-
* @param indirectBuffer - Buffer marked with 'indirect' usage containing draw parameters or raw GPUBuffer
|
|
96
|
-
* @param indirectOffset - PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
97
|
-
*/
|
|
98
|
-
drawIndexedIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
99
|
-
}
|
|
100
|
-
declare namespace TgpuRenderPipeline {
|
|
101
|
-
interface DescriptorBase {
|
|
66
|
+
export interface TgpuRenderPipeline<in Targets = never> extends TgpuNamable, SelfResolvable, Timeable {
|
|
67
|
+
readonly [$internal]: RenderPipelineInternals;
|
|
68
|
+
readonly [$soul]: TgpuRenderPipelineSoul;
|
|
69
|
+
readonly resourceType: 'render-pipeline';
|
|
70
|
+
readonly hasIndexBuffer: boolean;
|
|
71
|
+
with<TData extends WgslArray | Disarray>(vertexLayout: TgpuVertexLayout<TData>, buffer: (TgpuBuffer<TData> & VertexFlag) | GPUBuffer): this;
|
|
102
72
|
/**
|
|
103
|
-
*
|
|
73
|
+
* @deprecated This overload is outdated.
|
|
74
|
+
* Call `pipeline.with(bindGroup)` instead.
|
|
104
75
|
*/
|
|
105
|
-
|
|
76
|
+
with<Entries extends Record<string, TgpuLayoutEntry | null>>(bindGroupLayout: TgpuBindGroupLayout<Entries>, bindGroup: TgpuBindGroup<Entries>): this;
|
|
77
|
+
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
78
|
+
with(bindGroup: TgpuBindGroup): this;
|
|
106
79
|
/**
|
|
107
|
-
*
|
|
80
|
+
* Directs subsequent draw calls into the given render pass or render bundle
|
|
81
|
+
* encoder, letting multiple pipelines share one pass (and one submission).
|
|
108
82
|
*/
|
|
109
|
-
|
|
83
|
+
with(pass: TgpuRenderCommands): this;
|
|
110
84
|
/**
|
|
111
|
-
*
|
|
85
|
+
* Directs subsequent draw calls into the given command encoder. Each draw
|
|
86
|
+
* records its own render pass; the caller owns the submission.
|
|
112
87
|
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
* Indicates the load operation to perform on {@link GPURenderPassColorAttachment#view} prior to
|
|
164
|
-
* executing the render pass.
|
|
165
|
-
* Note: It is recommended to prefer clearing; see {@link GPULoadOp#"clear"} for details.
|
|
166
|
-
*
|
|
167
|
-
* @default 'clear'
|
|
168
|
-
*/
|
|
169
|
-
loadOp?: GPULoadOp | undefined;
|
|
170
|
-
/**
|
|
171
|
-
* The store operation to perform on {@link GPURenderPassColorAttachment#view}
|
|
172
|
-
* after executing the render pass.
|
|
173
|
-
*
|
|
174
|
-
* @default 'store'
|
|
175
|
-
*/
|
|
176
|
-
storeOp?: GPUStoreOp | undefined;
|
|
177
|
-
}
|
|
178
|
-
type DepthStencilFormat = 'stencil8' | 'depth16unorm' | 'depth24plus' | 'depth24plus-stencil8' | 'depth32float' | 'depth32float-stencil8';
|
|
179
|
-
interface DepthStencilTextureConstraint {
|
|
180
|
-
readonly [$internal]: TextureInternals;
|
|
181
|
-
readonly resourceType: 'texture';
|
|
182
|
-
readonly props: {
|
|
183
|
-
format: DepthStencilFormat;
|
|
184
|
-
};
|
|
88
|
+
with(encoder: TgpuCommandEncoder): this;
|
|
89
|
+
with(encoder: GPUCommandEncoder): this;
|
|
90
|
+
with(pass: GPURenderPassEncoder): this;
|
|
91
|
+
with(bundleEncoder: GPURenderBundleEncoder): this;
|
|
92
|
+
/**
|
|
93
|
+
* Attaches texture views to the pipeline's targets (outputs).
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Draw 3 vertices onto the context's canvas
|
|
97
|
+
* pipeline
|
|
98
|
+
* .withColorAttachment({ view: context })
|
|
99
|
+
* .draw(3)
|
|
100
|
+
*
|
|
101
|
+
* @param attachment The object should match the shape
|
|
102
|
+
* returned by the fragment shader, with values matching the {@link ColorAttachment} type.
|
|
103
|
+
*/
|
|
104
|
+
withColorAttachment(attachment: FragmentOutToColorAttachment<Targets>): this;
|
|
105
|
+
withDepthStencilAttachment(attachment: DepthStencilAttachment): this;
|
|
106
|
+
withStencilReference(reference: GPUStencilValue): this;
|
|
107
|
+
withIndexBuffer(buffer: TgpuBuffer<BaseData> & IndexFlag, offsetElements?: number, sizeElements?: number): this & HasIndexBuffer;
|
|
108
|
+
withIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offsetBytes?: number, sizeBytes?: number): this & HasIndexBuffer;
|
|
109
|
+
draw(vertexCount: number, instanceCount?: number, firstVertex?: number, firstInstance?: number): void;
|
|
110
|
+
/**
|
|
111
|
+
* Immediately resolves the pipeline, then awaits `device.createRenderPipelineAsync()`.
|
|
112
|
+
* NOTE: it is not necessary to initialize pipelines manually.
|
|
113
|
+
*/
|
|
114
|
+
initAsync(): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Immediately resolves the pipeline and creates WebGPU resources.
|
|
117
|
+
* NOTE: it is not necessary to initialize pipelines manually.
|
|
118
|
+
*/
|
|
119
|
+
initSync(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Draws primitives using parameters read from a buffer.
|
|
122
|
+
* The buffer must contain 4 consecutive u32 values (vertexCount, instanceCount, firstVertex, firstInstance).
|
|
123
|
+
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
124
|
+
*
|
|
125
|
+
* @param indirectBuffer - Buffer marked with 'indirect' usage containing draw parameters or raw GPUBuffer
|
|
126
|
+
* @param indirectOffset - PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
127
|
+
*/
|
|
128
|
+
drawIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
129
|
+
/**
|
|
130
|
+
* Draws indexed primitives using parameters read from a buffer.
|
|
131
|
+
* The buffer must contain 5 consecutive 32-bit integer values (indexCount u32, instanceCount u32, firstIndex u32, baseVertex i32, firstInstance u32).
|
|
132
|
+
* To get the correct offset within complex data structures, use `d.memoryLayoutOf(...)`.
|
|
133
|
+
*
|
|
134
|
+
* @param indirectBuffer - Buffer marked with 'indirect' usage containing draw parameters or raw GPUBuffer
|
|
135
|
+
* @param indirectOffset - PrimitiveOffsetInfo pointing to the first draw parameter. If not provided, starts at offset 0. To obtain safe offsets, use `d.memoryLayoutOf(...)`.
|
|
136
|
+
*/
|
|
137
|
+
drawIndexedIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
185
138
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
*/
|
|
208
|
-
depthStoreOp?: GPUStoreOp;
|
|
209
|
-
/**
|
|
210
|
-
* Indicates that the depth component of {@link GPURenderPassDepthStencilAttachment#view}
|
|
211
|
-
* is read only.
|
|
212
|
-
*/
|
|
213
|
-
depthReadOnly?: boolean;
|
|
214
|
-
/**
|
|
215
|
-
* Indicates the value to clear {@link GPURenderPassDepthStencilAttachment#view}'s stencil component
|
|
216
|
-
* to prior to executing the render pass. Ignored if {@link GPURenderPassDepthStencilAttachment#stencilLoadOp}
|
|
217
|
-
* is not {@link GPULoadOp#"clear"}.
|
|
218
|
-
* The value will be converted to the type of the stencil aspect of `view` by taking the same
|
|
219
|
-
* number of LSBs as the number of bits in the stencil aspect of one texel block|texel of `view`.
|
|
220
|
-
*/
|
|
221
|
-
stencilClearValue?: GPUStencilValue;
|
|
222
|
-
/**
|
|
223
|
-
* Indicates the load operation to perform on {@link GPURenderPassDepthStencilAttachment#view}'s
|
|
224
|
-
* stencil component prior to executing the render pass.
|
|
225
|
-
* Note: It is recommended to prefer clearing; see {@link GPULoadOp#"clear"} for details.
|
|
226
|
-
*/
|
|
227
|
-
stencilLoadOp?: GPULoadOp;
|
|
228
|
-
/**
|
|
229
|
-
* The store operation to perform on {@link GPURenderPassDepthStencilAttachment#view}'s
|
|
230
|
-
* stencil component after executing the render pass.
|
|
231
|
-
*/
|
|
232
|
-
stencilStoreOp?: GPUStoreOp;
|
|
233
|
-
/**
|
|
234
|
-
* Indicates that the stencil component of {@link GPURenderPassDepthStencilAttachment#view}
|
|
235
|
-
* is read only.
|
|
236
|
-
*/
|
|
237
|
-
stencilReadOnly?: boolean;
|
|
139
|
+
export declare namespace TgpuRenderPipeline {
|
|
140
|
+
interface DescriptorBase {
|
|
141
|
+
/**
|
|
142
|
+
* Describes the primitive-related properties of the pipeline.
|
|
143
|
+
*/
|
|
144
|
+
primitive?: TgpuPrimitiveState | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Describes the optional depth-stencil properties, including the testing, operations, and bias.
|
|
147
|
+
*/
|
|
148
|
+
depthStencil?: GPUDepthStencilState | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* Describes the multi-sampling properties of the pipeline.
|
|
151
|
+
*/
|
|
152
|
+
multisample?: GPUMultisampleState | undefined;
|
|
153
|
+
}
|
|
154
|
+
interface Descriptor extends DescriptorBase {
|
|
155
|
+
vertex: TgpuVertexFn | ((input: AutoVertexIn<Record<string, never>>) => AutoVertexOut<AnyAutoCustoms>);
|
|
156
|
+
fragment?: TgpuFragmentFn | ((input: AutoFragmentIn<Record<string, never>>) => AutoFragmentOut<undefined | v4f | AnyAutoCustoms>) | undefined;
|
|
157
|
+
attribs?: AnyVertexAttribs | undefined;
|
|
158
|
+
targets?: AnyFragmentTargets | undefined;
|
|
159
|
+
}
|
|
238
160
|
}
|
|
239
|
-
type
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
161
|
+
export type FragmentOutToTargets<T> = T extends undefined | AnyBuiltin | Void | Record<string, never> ? Record<string, never> | undefined : T extends {
|
|
162
|
+
readonly [$internal]: unknown;
|
|
163
|
+
} | number | boolean | AnyVecInstance ? TgpuColorTargetState : T extends Record<string, unknown> ? {
|
|
164
|
+
[Key in keyof OmitBuiltins<T>]?: TgpuColorTargetState;
|
|
165
|
+
} | undefined : TgpuColorTargetState | Record<string, TgpuColorTargetState>;
|
|
166
|
+
export type FragmentOutToColorAttachment<T> = T extends {
|
|
167
|
+
readonly [$internal]: unknown;
|
|
168
|
+
} ? ColorAttachment : T extends Record<string, unknown> ? {
|
|
169
|
+
[Key in keyof UndecorateRecord<T>]: ColorAttachment;
|
|
170
|
+
} : Record<string, never>;
|
|
171
|
+
export type AnyFragmentTargets = TgpuColorTargetState | Record<string, TgpuColorTargetState>;
|
|
172
|
+
export type AnyFragmentColorAttachment = ColorAttachment | Record<string, ColorAttachment>;
|
|
173
|
+
export type RenderPipelineCoreOptions = {
|
|
174
|
+
root: ExperimentalTgpuRoot;
|
|
175
|
+
slotBindings: [TgpuSlot<unknown>, unknown][];
|
|
176
|
+
/** Undefined for precompiled pipelines, which are never resolved again */
|
|
177
|
+
descriptor: TgpuRenderPipeline.Descriptor | undefined;
|
|
244
178
|
};
|
|
179
|
+
export declare function INTERNAL_createRenderPipeline(options: RenderPipelineCoreOptions): TgpuRenderPipelineImpl;
|
|
180
|
+
export declare function INTERNAL_restoreRenderPipeline(soul: TgpuRenderPipelineSoul, ctx: RestoreContext): TgpuRenderPipeline;
|
|
245
181
|
type TgpuRenderPipelinePriors = {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
182
|
+
readonly vertexLayoutMap?: Map<TgpuVertexLayout, (TgpuBuffer<BaseData> & VertexFlag) | GPUBuffer> | undefined;
|
|
183
|
+
readonly bindGroupLayoutMap?: Map<TgpuBindGroupLayout, TgpuBindGroup | GPUBindGroup> | undefined;
|
|
184
|
+
readonly colorAttachment?: AnyFragmentColorAttachment | undefined;
|
|
185
|
+
readonly depthStencilAttachment?: DepthStencilAttachment | undefined;
|
|
186
|
+
readonly stencilReference?: GPUStencilValue | undefined;
|
|
187
|
+
readonly indexBuffer?: {
|
|
188
|
+
buffer: (TgpuBuffer<BaseData> & IndexFlag) | GPUBuffer;
|
|
189
|
+
indexFormat: GPUIndexFormat;
|
|
190
|
+
offsetBytes?: number | undefined;
|
|
191
|
+
sizeBytes?: number | undefined;
|
|
192
|
+
} | undefined;
|
|
193
|
+
/** A pass the pipeline draws into, but does not own */
|
|
194
|
+
readonly pass?: TgpuRenderCommands | undefined;
|
|
195
|
+
/** An encoder the pipeline records its own passes into, but does not submit */
|
|
196
|
+
readonly encoder?: TgpuCommandEncoder | undefined;
|
|
259
197
|
} & TimestampWritesPriors;
|
|
260
198
|
type Memo = {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
199
|
+
pipeline: GPURenderPipeline;
|
|
200
|
+
usedBindGroupLayouts: TgpuBindGroupLayout[];
|
|
201
|
+
catchall: [number, TgpuBindGroup] | undefined;
|
|
202
|
+
logResources: LogResources | undefined;
|
|
203
|
+
usedVertexLayouts: TgpuVertexLayout[];
|
|
204
|
+
fragmentOut: BaseData | undefined;
|
|
267
205
|
};
|
|
206
|
+
declare class TgpuRenderPipelineImpl implements TgpuRenderPipeline {
|
|
207
|
+
#private;
|
|
208
|
+
readonly [$internal]: RenderPipelineInternals;
|
|
209
|
+
readonly [$soul]: TgpuRenderPipelineSoul;
|
|
210
|
+
readonly resourceType = "render-pipeline";
|
|
211
|
+
[$getNameForward]: RenderPipelineCore;
|
|
212
|
+
constructor(core: RenderPipelineCore, priors: TgpuRenderPipelinePriors);
|
|
213
|
+
[$resolve](ctx: ResolutionCtx): ResolvedSnippet;
|
|
214
|
+
toString(): string;
|
|
215
|
+
$name(label: string): this;
|
|
216
|
+
with<TData extends WgslArray>(vertexLayout: TgpuVertexLayout<TData>, buffer: TgpuBuffer<TData> & VertexFlag): this;
|
|
217
|
+
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: TgpuBindGroup): this;
|
|
218
|
+
with(bindGroupLayout: TgpuBindGroupLayout, bindGroup: GPUBindGroup): this;
|
|
219
|
+
with(bindGroup: TgpuBindGroup): this;
|
|
220
|
+
with<TData extends WgslArray | Disarray>(vertexLayout: TgpuVertexLayout<TData>, buffer: GPUBuffer): this;
|
|
221
|
+
with(pass: TgpuRenderCommands): this;
|
|
222
|
+
with(encoder: TgpuCommandEncoder): this;
|
|
223
|
+
with(encoder: GPUCommandEncoder): this;
|
|
224
|
+
with(pass: GPURenderPassEncoder): this;
|
|
225
|
+
with(bundleEncoder: GPURenderBundleEncoder): this;
|
|
226
|
+
withPerformanceCallback(callback: (start: bigint, end: bigint) => void | Promise<void>): this;
|
|
227
|
+
withTimestampWrites(options: {
|
|
228
|
+
querySet: TgpuQuerySet<'timestamp'> | GPUQuerySet;
|
|
229
|
+
beginningOfPassWriteIndex?: number;
|
|
230
|
+
endOfPassWriteIndex?: number;
|
|
231
|
+
}): this;
|
|
232
|
+
withColorAttachment(attachment: AnyFragmentColorAttachment): this;
|
|
233
|
+
withDepthStencilAttachment(attachment: DepthStencilAttachment): this;
|
|
234
|
+
withStencilReference(reference: GPUStencilValue): this;
|
|
235
|
+
withIndexBuffer(buffer: TgpuBuffer<BaseData> & IndexFlag, offsetElements?: number, sizeElements?: number): this & HasIndexBuffer;
|
|
236
|
+
withIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offsetBytes?: number, sizeBytes?: number): this & HasIndexBuffer;
|
|
237
|
+
initAsync(): Promise<void>;
|
|
238
|
+
initSync(): void;
|
|
239
|
+
get hasIndexBuffer(): boolean;
|
|
240
|
+
draw(vertexCount: number, instanceCount?: number, firstVertex?: number, firstInstance?: number): void;
|
|
241
|
+
drawIndexed(indexCount: number, instanceCount?: number, firstIndex?: number, baseVertex?: number, firstInstance?: number): void;
|
|
242
|
+
drawIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
243
|
+
drawIndexedIndirect(indirectBuffer: (TgpuBuffer<BaseData> & IndirectFlag) | GPUBuffer, indirectOffset?: PrimitiveOffsetInfo | number): void;
|
|
244
|
+
}
|
|
268
245
|
declare class RenderPipelineCore implements SelfResolvable {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
246
|
+
#private;
|
|
247
|
+
readonly [$internal] = true;
|
|
248
|
+
readonly options: RenderPipelineCoreOptions;
|
|
249
|
+
constructor(options: RenderPipelineCoreOptions);
|
|
250
|
+
static precompiled(root: ExperimentalTgpuRoot, memo: Memo): RenderPipelineCore;
|
|
251
|
+
[$resolve](ctx: ResolutionCtx): ResolvedSnippet;
|
|
252
|
+
toString(): string;
|
|
253
|
+
get performanceCallbackQuerySet(): TgpuQuerySet<"timestamp"> | undefined;
|
|
254
|
+
initAsync(): Promise<void>;
|
|
255
|
+
initSync(): void;
|
|
256
|
+
unwrap(): Memo;
|
|
257
|
+
resolveAndCreateShaderModule(): {
|
|
258
|
+
resolutionResult: import("../../resolutionCtx.ts").ResolutionResult;
|
|
259
|
+
descriptor: GPURenderPipelineDescriptor;
|
|
260
|
+
connectedAttribs: import("../vertexLayout/connectAttributesToShader.ts").ConnectAttributesToShaderResult;
|
|
261
|
+
fragmentOut: WgslStruct<import("../function/ioSchema.ts").WithLocations<Record<string, BaseData>>>;
|
|
262
|
+
};
|
|
278
263
|
}
|
|
279
264
|
/**
|
|
280
265
|
* Assumes vertexOut and fragmentIn are matching when it comes to the keys, that is fragmentIn's keyset is a subset of vertexOut's
|
|
281
266
|
* Logs a warning, when they don't match in terms of custom locations
|
|
282
267
|
*/
|
|
283
|
-
|
|
284
|
-
export {
|
|
268
|
+
export declare function matchUpVaryingLocations(vertexOut: TgpuVertexFn.Out | undefined, fragmentIn: TgpuFragmentFn.In | undefined, vertexFnName: string, fragmentFnName: string): Record<string, number>;
|
|
269
|
+
export {};
|