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
package/types.js
CHANGED
|
@@ -1,45 +1,62 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isWgslData } from "./data/wgslTypes.js";
|
|
1
|
+
import { isLazy, isProviding, isSlot, } from "./core/slot/slotTypes.js";
|
|
3
2
|
import { UnknownData } from "./data/dataTypes.js";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
function isWgsl(value) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
3
|
+
import { isWgslData, } from "./data/wgslTypes.js";
|
|
4
|
+
import { $cast, $gpuCallable, $gpuValueOf, $internal, $ownSnippet, $resolve, } from "./shared/symbols.js";
|
|
5
|
+
export class NormalState {
|
|
6
|
+
type = 'normal';
|
|
7
|
+
}
|
|
8
|
+
export class CodegenState {
|
|
9
|
+
type = 'codegen';
|
|
10
|
+
}
|
|
11
|
+
export class SimulationState {
|
|
12
|
+
type = 'simulate';
|
|
13
|
+
buffers;
|
|
14
|
+
vars;
|
|
15
|
+
constructor(buffers, vars) {
|
|
16
|
+
this.buffers = buffers;
|
|
17
|
+
this.vars = vars;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function isSelfResolvable(value) {
|
|
21
|
+
return !!value?.[$resolve];
|
|
22
|
+
}
|
|
23
|
+
export function getOwnSnippet(value) {
|
|
24
|
+
return value?.[$ownSnippet];
|
|
25
|
+
}
|
|
26
|
+
export function isGPUCallable(value) {
|
|
27
|
+
return !!value?.[$gpuCallable];
|
|
28
|
+
}
|
|
29
|
+
export function hasCast(value) {
|
|
30
|
+
return !!value?.[$cast];
|
|
31
|
+
}
|
|
32
|
+
export function isKnownAtComptime(snippet) {
|
|
33
|
+
return ((typeof snippet.value !== 'string' || snippet.dataType === UnknownData) &&
|
|
34
|
+
getOwnSnippet(snippet.value) === undefined);
|
|
35
|
+
}
|
|
36
|
+
export function isWgsl(value) {
|
|
37
|
+
return (typeof value === 'number' ||
|
|
38
|
+
typeof value === 'boolean' ||
|
|
39
|
+
isSelfResolvable(value) ||
|
|
40
|
+
isWgslData(value) ||
|
|
41
|
+
isSlot(value) ||
|
|
42
|
+
isLazy(value) ||
|
|
43
|
+
isProviding(value));
|
|
44
|
+
}
|
|
45
|
+
export function isGPUBuffer(value) {
|
|
46
|
+
return !!value && typeof value === 'object' && 'getMappedRange' in value && 'mapAsync' in value;
|
|
47
|
+
}
|
|
48
|
+
export function isBuffer(value) {
|
|
49
|
+
return value.resourceType === 'buffer';
|
|
50
|
+
}
|
|
51
|
+
export function isUsableAsVertex(buffer) {
|
|
52
|
+
return !!buffer.usableAsVertex;
|
|
53
|
+
}
|
|
54
|
+
export function isUsableAsIndex(buffer) {
|
|
55
|
+
return !!buffer.usableAsIndex;
|
|
56
|
+
}
|
|
57
|
+
export function isUsableAsUniform(buffer) {
|
|
58
|
+
return !!buffer.usableAsUniform;
|
|
59
|
+
}
|
|
60
|
+
export function isUsableAsStorage(value) {
|
|
61
|
+
return !!value?.usableAsStorage;
|
|
62
|
+
}
|
package/unwrapper.d.ts
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
|
-
import { TgpuQuerySet } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { TgpuTexture, TgpuTextureView } from
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import type { TgpuQuerySet } from './core/querySet/querySet.ts';
|
|
2
|
+
import type { TgpuBuffer } from './core/buffer/buffer.ts';
|
|
3
|
+
import type { TgpuCommandEncoder } from './core/commandEncoder/commandEncoder.ts';
|
|
4
|
+
import type { TgpuComputePass } from './core/commandEncoder/computePass.ts';
|
|
5
|
+
import type { TgpuRenderBundleEncoder, TgpuRenderPass } from './core/commandEncoder/renderPass.ts';
|
|
6
|
+
import type { TgpuComputePipeline } from './core/pipeline/computePipeline.ts';
|
|
7
|
+
import type { TgpuRenderPipeline } from './core/pipeline/renderPipeline.ts';
|
|
8
|
+
import type { TgpuComparisonSampler, TgpuSampler } from './core/sampler/sampler.ts';
|
|
9
|
+
import type { TgpuTexture, TgpuTextureView } from './core/texture/texture.ts';
|
|
10
|
+
import type { TgpuVertexLayout } from './core/vertexLayout/vertexLayout.ts';
|
|
11
|
+
import type { TgpuBindGroup, TgpuBindGroupLayout } from './tgpuBindGroupLayout.ts';
|
|
12
|
+
import type { BaseData } from './data/wgslTypes.ts';
|
|
13
|
+
import type { TgpuBufferBinding } from './core/buffer/bufferBinding.ts';
|
|
14
|
+
export interface Unwrapper {
|
|
15
|
+
readonly device: GPUDevice;
|
|
16
|
+
unwrap(resource: TgpuComputePipeline): GPUComputePipeline;
|
|
17
|
+
unwrap(resource: TgpuRenderPipeline): GPURenderPipeline;
|
|
18
|
+
unwrap(resource: TgpuCommandEncoder): GPUCommandEncoder;
|
|
19
|
+
unwrap(resource: TgpuRenderPass): GPURenderPassEncoder;
|
|
20
|
+
unwrap(resource: TgpuComputePass): GPUComputePassEncoder;
|
|
21
|
+
unwrap(resource: TgpuRenderBundleEncoder): GPURenderBundleEncoder;
|
|
22
|
+
unwrap(resource: TgpuBindGroupLayout): GPUBindGroupLayout;
|
|
23
|
+
unwrap(resource: TgpuBindGroup): GPUBindGroup;
|
|
24
|
+
unwrap(resource: TgpuBuffer<BaseData>): GPUBuffer;
|
|
25
|
+
unwrap(resource: TgpuBufferBinding<BaseData>): GPUBuffer;
|
|
26
|
+
unwrap(resource: TgpuTextureView): GPUTextureView;
|
|
27
|
+
unwrap(resource: TgpuVertexLayout): GPUVertexBufferLayout;
|
|
28
|
+
unwrap(resource: TgpuSampler): GPUSampler;
|
|
29
|
+
unwrap(resource: TgpuComparisonSampler): GPUSampler;
|
|
30
|
+
unwrap(resource: TgpuQuerySet<GPUQueryType>): GPUQuerySet;
|
|
31
|
+
unwrap(resource: TgpuTexture): GPUTexture;
|
|
25
32
|
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { Unwrapper };
|
package/unwrapper.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/wgslExtensions.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
//#endregion
|
|
5
|
-
export { WgslEnableExtension };
|
|
1
|
+
export declare const wgslEnableExtensions: readonly ["f16", "clip_distances", "dual_source_blending", "subgroups", "primitive_index"];
|
|
2
|
+
export type WgslEnableExtension = (typeof wgslEnableExtensions)[number];
|
|
3
|
+
export declare const wgslEnableExtensionToFeatureName: Record<WgslEnableExtension, GPUFeatureName>;
|
package/wgslExtensions.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"primitive_index"
|
|
1
|
+
export const wgslEnableExtensions = [
|
|
2
|
+
'f16',
|
|
3
|
+
'clip_distances',
|
|
4
|
+
'dual_source_blending',
|
|
5
|
+
'subgroups',
|
|
6
|
+
'primitive_index',
|
|
8
7
|
];
|
|
9
|
-
const wgslEnableExtensionToFeatureName = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
export const wgslEnableExtensionToFeatureName = {
|
|
9
|
+
f16: 'shader-f16',
|
|
10
|
+
clip_distances: 'clip-distances',
|
|
11
|
+
dual_source_blending: 'dual-source-blending',
|
|
12
|
+
subgroups: 'subgroups',
|
|
13
|
+
primitive_index: 'primitive-index',
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { wgslEnableExtensionToFeatureName, wgslEnableExtensions };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
//#region rolldown:runtime
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __export = (all) => {
|
|
4
|
-
let target = {};
|
|
5
|
-
for (var name in all) __defProp(target, name, {
|
|
6
|
-
get: all[name],
|
|
7
|
-
enumerable: true
|
|
8
|
-
});
|
|
9
|
-
return target;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
export { __export };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { TgpuNamable } from "../../shared/meta.js";
|
|
2
|
-
import { $gpuValueOf, $internal } from "../../shared/symbols.js";
|
|
3
|
-
import { StorageFlag } from "../../extension.js";
|
|
4
|
-
import "../../data/snippet.js";
|
|
5
|
-
import { BufferWriteOptions, TgpuBuffer, UniformFlag } from "./buffer.js";
|
|
6
|
-
import "../../types.js";
|
|
7
|
-
import { BaseData } from "../../data/wgslTypes.js";
|
|
8
|
-
import { Infer, InferGPU, InferInput, InferPartial, InferPatch } from "../../shared/repr.js";
|
|
9
|
-
|
|
10
|
-
//#region src/core/buffer/bufferShorthand.d.ts
|
|
11
|
-
interface TgpuBufferShorthandBase<TData extends BaseData> extends TgpuNamable {
|
|
12
|
-
readonly [$internal]: true;
|
|
13
|
-
write(data: InferInput<TData>, options?: BufferWriteOptions): void;
|
|
14
|
-
/** @deprecated Use {@link patch} instead. */
|
|
15
|
-
writePartial(data: InferPartial<TData>): void;
|
|
16
|
-
patch(data: InferPatch<TData>): void;
|
|
17
|
-
read(): Promise<Infer<TData>>;
|
|
18
|
-
readonly [$gpuValueOf]: InferGPU<TData>;
|
|
19
|
-
}
|
|
20
|
-
interface TgpuMutable<out TData extends BaseData> extends TgpuBufferShorthandBase<TData> {
|
|
21
|
-
readonly resourceType: 'mutable';
|
|
22
|
-
readonly buffer: TgpuBuffer<TData> & StorageFlag;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated Use `.$` instead, works the same way.
|
|
25
|
-
*/
|
|
26
|
-
value: InferGPU<TData>;
|
|
27
|
-
$: InferGPU<TData>;
|
|
28
|
-
}
|
|
29
|
-
interface TgpuReadonly<out TData extends BaseData> extends TgpuBufferShorthandBase<TData> {
|
|
30
|
-
readonly resourceType: 'readonly';
|
|
31
|
-
readonly buffer: TgpuBuffer<TData> & StorageFlag;
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated Use `.$` instead, works the same way.
|
|
34
|
-
*/
|
|
35
|
-
readonly value: InferGPU<TData>;
|
|
36
|
-
readonly $: InferGPU<TData>;
|
|
37
|
-
}
|
|
38
|
-
interface TgpuUniform<out TData extends BaseData> extends TgpuBufferShorthandBase<TData> {
|
|
39
|
-
readonly resourceType: 'uniform';
|
|
40
|
-
readonly buffer: TgpuBuffer<TData> & UniformFlag;
|
|
41
|
-
/**
|
|
42
|
-
* @deprecated Use `.$` instead, works the same way.
|
|
43
|
-
*/
|
|
44
|
-
readonly value: InferGPU<TData>;
|
|
45
|
-
readonly $: InferGPU<TData>;
|
|
46
|
-
}
|
|
47
|
-
type TgpuBufferShorthand<TData extends BaseData> = TgpuMutable<TData> | TgpuReadonly<TData> | TgpuUniform<TData>;
|
|
48
|
-
declare function isBufferShorthand<TData extends BaseData>(value: unknown): value is TgpuBufferShorthand<TData>;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { TgpuBufferShorthand, TgpuMutable, TgpuReadonly, TgpuUniform, isBufferShorthand };
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { $getNameForward, $gpuValueOf, $internal, $resolve } from "../../shared/symbols.js";
|
|
2
|
-
import { getName, setName } from "../../shared/meta.js";
|
|
3
|
-
|
|
4
|
-
//#region src/core/buffer/bufferShorthand.ts
|
|
5
|
-
function isBufferShorthand(value) {
|
|
6
|
-
return value instanceof TgpuBufferShorthandImpl;
|
|
7
|
-
}
|
|
8
|
-
var TgpuBufferShorthandImpl = class {
|
|
9
|
-
[$internal] = true;
|
|
10
|
-
[$getNameForward];
|
|
11
|
-
resourceType;
|
|
12
|
-
buffer;
|
|
13
|
-
#usage;
|
|
14
|
-
constructor(resourceType, buffer) {
|
|
15
|
-
this.resourceType = resourceType;
|
|
16
|
-
this.buffer = buffer;
|
|
17
|
-
this[$getNameForward] = buffer;
|
|
18
|
-
this.#usage = this.buffer.as(this.resourceType);
|
|
19
|
-
}
|
|
20
|
-
$name(label) {
|
|
21
|
-
setName(this, label);
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
write(data, options) {
|
|
25
|
-
this.buffer.write(data, options);
|
|
26
|
-
}
|
|
27
|
-
/** @deprecated Use {@link patch} instead. */
|
|
28
|
-
writePartial(data) {
|
|
29
|
-
this.buffer.writePartial(data);
|
|
30
|
-
}
|
|
31
|
-
patch(data) {
|
|
32
|
-
this.buffer.patch(data);
|
|
33
|
-
}
|
|
34
|
-
read() {
|
|
35
|
-
return this.buffer.read();
|
|
36
|
-
}
|
|
37
|
-
get [$gpuValueOf]() {
|
|
38
|
-
return this.#usage.$;
|
|
39
|
-
}
|
|
40
|
-
get $() {
|
|
41
|
-
return this.#usage.$;
|
|
42
|
-
}
|
|
43
|
-
get value() {
|
|
44
|
-
return this.$;
|
|
45
|
-
}
|
|
46
|
-
toString() {
|
|
47
|
-
return `${this.resourceType}BufferShorthand:${getName(this) ?? "<unnamed>"}`;
|
|
48
|
-
}
|
|
49
|
-
[$resolve](ctx) {
|
|
50
|
-
return ctx.resolve(this.#usage);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
//#endregion
|
|
55
|
-
export { TgpuBufferShorthandImpl, isBufferShorthand };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { MissingBindGroupsError, MissingVertexBuffersError } from "../../errors.js";
|
|
2
|
-
import { isBuffer } from "../buffer/buffer.js";
|
|
3
|
-
import { isBindGroup } from "../../tgpuBindGroupLayout.js";
|
|
4
|
-
import { warnIfOverflow } from "./limitsOverflow.js";
|
|
5
|
-
|
|
6
|
-
//#region src/core/pipeline/applyPipelineState.ts
|
|
7
|
-
function applyBindGroups(encoder, root, usedBindGroupLayouts, catchall, resolveBindGroup) {
|
|
8
|
-
const missingBindGroups = new Set(usedBindGroupLayouts);
|
|
9
|
-
warnIfOverflow(usedBindGroupLayouts, root.device.limits);
|
|
10
|
-
usedBindGroupLayouts.forEach((layout, idx) => {
|
|
11
|
-
if (catchall && idx === catchall[0]) {
|
|
12
|
-
encoder.setBindGroup(idx, root.unwrap(catchall[1]));
|
|
13
|
-
missingBindGroups.delete(layout);
|
|
14
|
-
} else {
|
|
15
|
-
const bindGroup = resolveBindGroup(layout);
|
|
16
|
-
if (bindGroup !== void 0) {
|
|
17
|
-
missingBindGroups.delete(layout);
|
|
18
|
-
if (isBindGroup(bindGroup)) encoder.setBindGroup(idx, root.unwrap(bindGroup));
|
|
19
|
-
else encoder.setBindGroup(idx, bindGroup);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
if (missingBindGroups.size > 0) throw new MissingBindGroupsError(missingBindGroups);
|
|
24
|
-
}
|
|
25
|
-
function applyVertexBuffers(encoder, root, usedVertexLayouts, resolveVertexBuffer) {
|
|
26
|
-
const missingVertexLayouts = /* @__PURE__ */ new Set();
|
|
27
|
-
usedVertexLayouts.forEach((vertexLayout, idx) => {
|
|
28
|
-
const entry = resolveVertexBuffer(vertexLayout);
|
|
29
|
-
if (!entry || !entry.buffer) missingVertexLayouts.add(vertexLayout);
|
|
30
|
-
else if (isBuffer(entry.buffer)) encoder.setVertexBuffer(idx, root.unwrap(entry.buffer), entry.offset, entry.size);
|
|
31
|
-
else encoder.setVertexBuffer(idx, entry.buffer, entry.offset, entry.size);
|
|
32
|
-
});
|
|
33
|
-
if (missingVertexLayouts.size > 0) throw new MissingVertexBuffersError(missingVertexLayouts);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
//#endregion
|
|
37
|
-
export { applyBindGroups, applyVertexBuffers };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
//#region src/core/pipeline/limitsOverflow.ts
|
|
2
|
-
function warnIfOverflow(layouts, limits) {
|
|
3
|
-
const entries = Object.values(layouts).flatMap((layout) => Object.values(layout.entries)).filter((entry) => entry !== null);
|
|
4
|
-
const uniform = entries.filter((entry) => "uniform" in entry).length;
|
|
5
|
-
const storage = entries.filter((entry) => "storage" in entry).length;
|
|
6
|
-
if (uniform > limits.maxUniformBuffersPerShaderStage) console.warn(`Total number of uniform buffers (${uniform}) exceeds maxUniformBuffersPerShaderStage (${limits.maxUniformBuffersPerShaderStage}). Consider:
|
|
7
|
-
1. Grouping some of the uniforms into one using 'd.struct',
|
|
8
|
-
2. Increasing the limit when requesting a device or creating a root.`);
|
|
9
|
-
if (storage > limits.maxStorageBuffersPerShaderStage) console.warn(`Total number of storage buffers (${storage}) exceeds maxStorageBuffersPerShaderStage (${limits.maxStorageBuffersPerShaderStage}).`);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
export { warnIfOverflow };
|
package/package.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import "../shared/meta.js";
|
|
2
|
-
import { Origin, Snippet } from "../data/snippet.js";
|
|
3
|
-
import { VariableScope } from "../core/variable/tgpuVariable.js";
|
|
4
|
-
import { BindableBufferUsage, FunctionArgument, ResolutionCtx, TgpuShaderStage } from "../types.js";
|
|
5
|
-
import { BaseData } from "../data/wgslTypes.js";
|
|
6
|
-
import { UnknownData } from "../data/dataTypes.js";
|
|
7
|
-
import { Block } from "tinyest";
|
|
8
|
-
|
|
9
|
-
//#region src/tgsl/shaderGenerator_members.d.ts
|
|
10
|
-
|
|
11
|
-
interface FunctionDefinitionOptions {
|
|
12
|
-
readonly functionType: 'normal' | TgpuShaderStage;
|
|
13
|
-
readonly name: string;
|
|
14
|
-
readonly workgroupSize?: readonly number[] | undefined;
|
|
15
|
-
readonly args: readonly FunctionArgument[];
|
|
16
|
-
readonly body: Block;
|
|
17
|
-
determineReturnType(): BaseData;
|
|
18
|
-
}
|
|
19
|
-
interface ConstantDefinitionOptions {
|
|
20
|
-
readonly id: string;
|
|
21
|
-
readonly dataType: BaseData;
|
|
22
|
-
readonly init: Snippet;
|
|
23
|
-
}
|
|
24
|
-
interface VariableDefinitionOptions {
|
|
25
|
-
readonly scope: VariableScope | BindableBufferUsage | 'handle';
|
|
26
|
-
readonly id: string;
|
|
27
|
-
readonly dataType: BaseData;
|
|
28
|
-
readonly init: Snippet | undefined;
|
|
29
|
-
readonly group?: string | undefined;
|
|
30
|
-
readonly binding?: number | undefined;
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { ConstantDefinitionOptions, FunctionDefinitionOptions, VariableDefinitionOptions };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { __export } from "../_virtual/rolldown_runtime.js";
|
|
2
|
-
import { getName } from "../shared/meta.js";
|
|
3
|
-
import { UnknownData } from "../data/dataTypes.js";
|
|
4
|
-
|
|
5
|
-
//#region src/tgsl/shaderGenerator_members.ts
|
|
6
|
-
var shaderGenerator_members_exports = /* @__PURE__ */ __export({
|
|
7
|
-
UnknownData: () => UnknownData,
|
|
8
|
-
getName: () => getName
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
//#endregion
|
|
12
|
-
export { shaderGenerator_members_exports };
|