typegpu 0.11.8 → 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 +37 -38
- 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 -0
- package/core/function/fnCore.js +148 -92
- 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 +18 -20
- 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 +90 -93
- package/core/resolve/externals.d.ts +25 -7
- package/core/resolve/externals.js +79 -62
- 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 -55
- 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 -454
- package/core/root/rootTypes.d.ts +461 -627
- 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 -214
- 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 -192
- 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 -120
- 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 +428 -398
- package/package.json +9 -3
- package/resolutionCtx.d.ts +162 -22
- package/resolutionCtx.js +911 -624
- 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 -100
- package/tgsl/accessStructProp.d.ts +5 -0
- package/tgsl/accessStructProp.js +18 -0
- 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 +272 -193
- 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 -747
- package/types.d.ts +287 -221
- 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
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 };
|
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 };
|