typegpu 0.11.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builtin.d.ts +51 -53
- package/builtin.js +30 -34
- package/common/fullScreenTriangle.d.ts +2 -10
- package/common/fullScreenTriangle.js +20 -28
- package/common/index.d.ts +2 -9
- package/common/index.js +3 -12
- package/common/writeSoA.d.ts +11 -12
- package/common/writeSoA.js +88 -76
- package/core/buffer/buffer.d.ts +79 -62
- package/core/buffer/buffer.js +279 -205
- package/core/buffer/bufferBinding.d.ts +71 -0
- package/core/buffer/bufferBinding.js +154 -0
- package/core/buffer/bufferUsage.d.ts +14 -45
- package/core/buffer/bufferUsage.js +1 -171
- package/core/buffer/laidOutBuffer.d.ts +25 -0
- package/core/buffer/laidOutBuffer.js +55 -0
- package/core/commandEncoder/attachments.d.ts +125 -0
- package/core/commandEncoder/attachments.js +29 -0
- package/core/commandEncoder/commandEncoder.d.ts +53 -0
- package/core/commandEncoder/commandEncoder.js +56 -0
- package/core/commandEncoder/computePass.d.ts +58 -0
- package/core/commandEncoder/computePass.js +63 -0
- package/core/commandEncoder/renderPass.d.ts +121 -0
- package/core/commandEncoder/renderPass.js +196 -0
- package/core/constant/tgpuConstant.d.ts +26 -26
- package/core/constant/tgpuConstant.js +76 -65
- package/core/declare/tgpuDeclare.d.ts +3 -6
- package/core/declare/tgpuDeclare.js +36 -36
- package/core/function/autoIO.d.ts +61 -33
- package/core/function/autoIO.js +68 -73
- package/core/function/comptime.d.ts +11 -13
- package/core/function/comptime.js +60 -52
- package/core/function/createCallableSchema.d.ts +16 -0
- package/core/function/createCallableSchema.js +50 -40
- package/core/function/dualImpl.d.ts +44 -0
- package/core/function/dualImpl.js +71 -50
- package/core/function/entryInputRouter.d.ts +26 -0
- package/core/function/entryInputRouter.js +31 -33
- package/core/function/extractArgs.d.ts +38 -0
- package/core/function/extractArgs.js +202 -200
- package/core/function/fnCore.d.ts +44 -5
- package/core/function/fnCore.js +148 -93
- package/core/function/fnTypes.d.ts +31 -29
- package/core/function/fnTypes.js +1 -0
- package/core/function/ioSchema.d.ts +12 -10
- package/core/function/ioSchema.js +65 -47
- package/core/function/shelllessImpl.d.ts +9 -12
- package/core/function/shelllessImpl.js +17 -22
- package/core/function/templateUtils.d.ts +2 -0
- package/core/function/templateUtils.js +9 -8
- package/core/function/tgpuComputeFn.d.ts +26 -28
- package/core/function/tgpuComputeFn.js +47 -48
- package/core/function/tgpuFn.d.ts +34 -37
- package/core/function/tgpuFn.js +179 -153
- package/core/function/tgpuFragmentFn.d.ts +52 -53
- package/core/function/tgpuFragmentFn.js +63 -56
- package/core/function/tgpuVertexFn.d.ts +36 -39
- package/core/function/tgpuVertexFn.js +56 -53
- package/core/pipeline/computePipeline.d.ts +141 -53
- package/core/pipeline/computePipeline.js +291 -225
- package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
- package/core/pipeline/connectAttachmentToShader.js +25 -22
- package/core/pipeline/connectTargetsToShader.d.ts +3 -0
- package/core/pipeline/connectTargetsToShader.js +29 -27
- package/core/pipeline/drawState.d.ts +52 -0
- package/core/pipeline/drawState.js +225 -0
- package/core/pipeline/limitsOverflow.d.ts +2 -0
- package/core/pipeline/limitsOverflow.js +13 -10
- package/core/pipeline/performanceTracker.d.ts +14 -0
- package/core/pipeline/performanceTracker.js +34 -0
- package/core/pipeline/pipelineUtils.d.ts +18 -0
- package/core/pipeline/pipelineUtils.js +54 -25
- package/core/pipeline/priors.d.ts +1 -0
- package/core/pipeline/priors.js +12 -0
- package/core/pipeline/renderPipeline.d.ts +246 -261
- package/core/pipeline/renderPipeline.js +487 -480
- package/core/pipeline/timeable.d.ts +28 -18
- package/core/pipeline/timeable.js +90 -52
- package/core/pipeline/typeGuards.d.ts +17 -0
- package/core/pipeline/typeGuards.js +52 -22
- package/core/querySet/querySet.d.ts +26 -21
- package/core/querySet/querySet.js +127 -103
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
- package/core/resolve/externals.d.ts +25 -8
- package/core/resolve/externals.js +78 -54
- package/core/resolve/namespace.d.ts +22 -25
- package/core/resolve/namespace.js +16 -21
- package/core/resolve/resolvableString.d.ts +7 -0
- package/core/resolve/resolvableString.js +13 -0
- package/core/resolve/resolveData.d.ts +10 -0
- package/core/resolve/resolveData.js +162 -121
- package/core/resolve/stitch.d.ts +8 -0
- package/core/resolve/stitch.js +23 -21
- package/core/resolve/tgpuResolve.d.ts +55 -53
- package/core/resolve/tgpuResolve.js +106 -53
- package/core/root/configurableImpl.d.ts +10 -0
- package/core/root/configurableImpl.js +17 -19
- package/core/root/init.d.ts +76 -38
- package/core/root/init.js +346 -455
- package/core/root/rootTypes.d.ts +461 -636
- package/core/root/rootTypes.js +1 -0
- package/core/sampler/sampler.d.ts +50 -31
- package/core/sampler/sampler.js +120 -113
- package/core/simulate/tgpuSimulate.d.ts +9 -12
- package/core/simulate/tgpuSimulate.js +68 -71
- package/core/slot/accessor.d.ts +36 -13
- package/core/slot/accessor.js +138 -91
- package/core/slot/internalSlots.d.ts +2 -0
- package/core/slot/internalSlots.js +1 -6
- package/core/slot/lazy.d.ts +2 -6
- package/core/slot/lazy.js +71 -39
- package/core/slot/slot.d.ts +2 -6
- package/core/slot/slot.js +45 -38
- package/core/slot/slotTypes.d.ts +78 -80
- package/core/slot/slotTypes.js +11 -16
- package/core/texture/externalTexture.d.ts +20 -11
- package/core/texture/externalTexture.js +46 -46
- package/core/texture/texture.d.ts +152 -97
- package/core/texture/texture.js +407 -314
- package/core/texture/textureFormats.d.ts +42 -23
- package/core/texture/textureFormats.js +104 -75
- package/core/texture/textureProps.d.ts +7 -10
- package/core/texture/textureProps.js +1 -0
- package/core/texture/textureUtils.d.ts +8 -0
- package/core/texture/textureUtils.js +185 -179
- package/core/texture/usageExtension.d.ts +21 -18
- package/core/texture/usageExtension.js +13 -17
- package/core/unroll/tgpuUnroll.d.ts +20 -19
- package/core/unroll/tgpuUnroll.js +82 -91
- package/core/valueProxyUtils.d.ts +3 -0
- package/core/valueProxyUtils.js +52 -41
- package/core/variable/tgpuVariable.d.ts +26 -27
- package/core/variable/tgpuVariable.js +93 -96
- package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
- package/core/vertexLayout/connectAttributesToShader.js +61 -56
- package/core/vertexLayout/vertexAttribute.d.ts +21 -17
- package/core/vertexLayout/vertexAttribute.js +1 -0
- package/core/vertexLayout/vertexLayout.d.ts +24 -18
- package/core/vertexLayout/vertexLayout.js +130 -99
- package/core/whitespaces.d.ts +2 -0
- package/core/whitespaces.js +16 -0
- package/data/alignIO.d.ts +7 -0
- package/data/alignIO.js +13 -13
- package/data/alignmentOf.d.ts +5 -8
- package/data/alignmentOf.js +90 -75
- package/data/array.d.ts +6 -9
- package/data/array.js +48 -40
- package/data/atomic.d.ts +2 -7
- package/data/atomic.js +26 -23
- package/data/attributes.d.ts +19 -21
- package/data/attributes.js +192 -132
- package/data/autoStruct.d.ts +36 -3
- package/data/autoStruct.js +84 -81
- package/data/compiledIO.d.ts +5 -0
- package/data/compiledIO.js +231 -215
- package/data/dataIO.d.ts +13 -11
- package/data/dataIO.js +643 -589
- package/data/dataTypes.d.ts +83 -65
- package/data/dataTypes.js +66 -68
- package/data/deepEqual.d.ts +2 -7
- package/data/deepEqual.js +80 -55
- package/data/disarray.d.ts +6 -10
- package/data/disarray.js +52 -46
- package/data/float16Conversion.d.ts +4 -0
- package/data/float16Conversion.js +7 -0
- package/data/getLongestContiguousPrefix.d.ts +4 -8
- package/data/getLongestContiguousPrefix.js +6 -11
- package/data/index.d.ts +30 -31
- package/data/index.js +39 -172
- package/data/instanceToSchema.d.ts +24 -27
- package/data/instanceToSchema.js +1 -0
- package/data/isContiguous.d.ts +4 -8
- package/data/isContiguous.js +6 -11
- package/data/matrix.d.ts +21 -21
- package/data/matrix.js +513 -505
- package/data/numberOps.d.ts +6 -0
- package/data/numberOps.js +26 -20
- package/data/numeric.d.ts +21 -12
- package/data/numeric.js +287 -197
- package/data/offsetUtils.d.ts +9 -13
- package/data/offsetUtils.js +204 -144
- package/data/offsets.d.ts +8 -0
- package/data/offsets.js +33 -33
- package/data/partialIO.d.ts +13 -8
- package/data/partialIO.js +124 -113
- package/data/ptr.d.ts +12 -12
- package/data/ptr.js +42 -44
- package/data/ref.d.ts +40 -27
- package/data/ref.js +125 -95
- package/data/sampler.d.ts +99 -101
- package/data/sampler.js +17 -21
- package/data/schemaCallWrapper.d.ts +19 -0
- package/data/schemaCallWrapper.js +31 -26
- package/data/schemaMemoryLayout.d.ts +8 -0
- package/data/schemaMemoryLayout.js +213 -185
- package/data/sizeOf.d.ts +4 -8
- package/data/sizeOf.js +6 -11
- package/data/snippet.d.ts +96 -20
- package/data/snippet.js +75 -86
- package/data/struct.d.ts +4 -7
- package/data/struct.js +51 -39
- package/data/texture.d.ts +253 -250
- package/data/texture.js +238 -200
- package/data/unstruct.d.ts +2 -7
- package/data/unstruct.js +43 -37
- package/data/vector.d.ts +33 -21
- package/data/vector.js +234 -221
- package/data/vectorImpl.d.ts +231 -0
- package/data/vectorImpl.js +563 -515
- package/data/vectorOps.d.ts +63 -0
- package/data/vectorOps.js +642 -630
- package/data/vertexFormatData.d.ts +181 -184
- package/data/vertexFormatData.js +104 -106
- package/data/wgslTypes.d.ts +665 -600
- package/data/wgslTypes.js +220 -198
- package/errors.d.ts +50 -24
- package/errors.js +146 -126
- package/execMode.d.ts +16 -0
- package/execMode.js +47 -40
- package/extension.d.ts +13 -8
- package/extension.js +10 -16
- package/getGPUValue.d.ts +1 -0
- package/getGPUValue.js +2 -7
- package/index.d.ts +28 -68
- package/index.js +8 -28
- package/indexNamedExports.d.ts +69 -42
- package/indexNamedExports.js +25 -0
- package/internal.d.ts +16 -0
- package/internal.js +12 -0
- package/mathUtils.d.ts +5 -0
- package/mathUtils.js +7 -11
- package/memo.d.ts +11 -0
- package/memo.js +20 -22
- package/minify.d.ts +5 -0
- package/minify.js +93 -0
- package/nameUtils.d.ts +29 -0
- package/nameUtils.js +427 -394
- package/package.json +5 -1
- package/resolutionCtx.d.ts +162 -22
- package/resolutionCtx.js +911 -629
- package/serial/registry.d.ts +15 -0
- package/serial/registry.js +106 -0
- package/serial/restore.d.ts +49 -0
- package/serial/restore.js +68 -0
- package/serial/schema.d.ts +58 -0
- package/serial/schema.js +209 -0
- package/serial/types.d.ts +5 -0
- package/serial/types.js +1 -0
- package/shared/env.d.ts +9 -0
- package/shared/env.js +9 -12
- package/shared/generators.d.ts +4 -0
- package/shared/generators.js +10 -12
- package/shared/meta.d.ts +29 -14
- package/shared/meta.js +71 -55
- package/shared/normalizeMetadata.d.ts +32 -27
- package/shared/normalizeMetadata.js +23 -36
- package/shared/repr.d.ts +73 -55
- package/shared/repr.js +1 -0
- package/shared/soul.d.ts +17 -0
- package/shared/soul.js +1 -0
- package/shared/stringify.d.ts +2 -0
- package/shared/stringify.js +29 -20
- package/shared/symbols.d.ts +26 -20
- package/shared/symbols.js +79 -79
- package/shared/tseynit.d.ts +2 -0
- package/shared/tseynit.js +160 -75
- package/shared/utilityTypes.d.ts +30 -14
- package/shared/utilityTypes.js +2 -6
- package/shared/vertexFormat.d.ts +41 -43
- package/shared/vertexFormat.js +59 -62
- package/std/array.d.ts +2 -7
- package/std/array.js +18 -23
- package/std/atomic.d.ts +14 -18
- package/std/atomic.js +96 -95
- package/std/bitcast.d.ts +193 -10
- package/std/bitcast.js +309 -39
- package/std/boolean.d.ts +19 -33
- package/std/boolean.js +296 -288
- package/std/copy.d.ts +2 -7
- package/std/copy.js +27 -24
- package/std/derivative.d.ts +11 -15
- package/std/derivative.js +56 -79
- package/std/discard.d.ts +1 -6
- package/std/discard.js +7 -14
- package/std/environment.d.ts +19 -14
- package/std/environment.js +71 -51
- package/std/extensions.d.ts +2 -8
- package/std/extensions.js +10 -11
- package/std/index.d.ts +20 -24
- package/std/index.js +32 -187
- package/std/matrix.d.ts +6 -12
- package/std/matrix.js +60 -69
- package/std/numeric.d.ts +143 -146
- package/std/numeric.js +858 -749
- package/std/operators.d.ts +19 -27
- package/std/operators.js +227 -193
- package/std/packing.d.ts +5 -11
- package/std/packing.js +67 -75
- package/std/range.d.ts +6 -11
- package/std/range.js +48 -36
- package/std/subgroup.d.ts +33 -37
- package/std/subgroup.js +180 -217
- package/std/texture.d.ts +70 -38
- package/std/texture.js +176 -172
- package/taskQueue.d.ts +6 -0
- package/taskQueue.js +30 -0
- package/tgpu.d.ts +16 -0
- package/tgpu.js +17 -44
- package/tgpuBindGroupLayout.d.ts +132 -152
- package/tgpuBindGroupLayout.js +346 -268
- package/tgpuLogger.d.ts +34 -0
- package/tgpuLogger.js +63 -0
- package/tgpuUnstable.d.ts +16 -22
- package/tgpuUnstable.js +13 -35
- package/tgsl/accessIndex.d.ts +2 -0
- package/tgsl/accessIndex.js +76 -33
- package/tgsl/accessProp.d.ts +2 -0
- package/tgsl/accessProp.js +142 -101
- package/tgsl/accessStructProp.d.ts +5 -0
- package/tgsl/accessStructProp.js +13 -15
- package/tgsl/consoleLog/deserializers.d.ts +13 -0
- package/tgsl/consoleLog/deserializers.js +119 -103
- package/tgsl/consoleLog/logGenerator.d.ts +21 -0
- package/tgsl/consoleLog/logGenerator.js +85 -80
- package/tgsl/consoleLog/serializers.d.ts +21 -0
- package/tgsl/consoleLog/serializers.js +119 -100
- package/tgsl/consoleLog/types.d.ts +40 -39
- package/tgsl/consoleLog/types.js +1 -0
- package/tgsl/conversion.d.ts +33 -0
- package/tgsl/conversion.js +271 -216
- package/tgsl/forOfUtils.d.ts +15 -0
- package/tgsl/forOfUtils.js +85 -70
- package/tgsl/generationHelpers.d.ts +22 -39
- package/tgsl/generationHelpers.js +85 -58
- package/tgsl/infixDispatch.d.ts +70 -0
- package/tgsl/infixDispatch.js +48 -46
- package/tgsl/jsPolyfills.d.ts +16 -19
- package/tgsl/jsPolyfills.js +44 -42
- package/tgsl/makeDereferenceable.d.ts +48 -0
- package/tgsl/makeDereferenceable.js +86 -0
- package/tgsl/makeResolvable.d.ts +22 -0
- package/tgsl/makeResolvable.js +33 -0
- package/tgsl/shaderGenerator.d.ts +77 -17
- package/tgsl/shaderGenerator.js +1 -0
- package/tgsl/shellless.d.ts +6 -9
- package/tgsl/shellless.js +73 -43
- package/tgsl/wgslGenerator.d.ts +66 -59
- package/tgsl/wgslGenerator.js +1344 -760
- package/types.d.ts +287 -222
- package/types.js +61 -44
- package/unwrapper.d.ts +31 -26
- package/unwrapper.js +1 -0
- package/wgslExtensions.d.ts +3 -5
- package/wgslExtensions.js +12 -16
- package/_virtual/rolldown_runtime.js +0 -13
- package/core/buffer/bufferShorthand.d.ts +0 -50
- package/core/buffer/bufferShorthand.js +0 -55
- package/core/pipeline/applyPipelineState.js +0 -37
- package/package.js +0 -5
- package/tgsl/shaderGenerator_members.d.ts +0 -33
- package/tgsl/shaderGenerator_members.js +0 -12
package/std/subgroup.js
CHANGED
|
@@ -1,220 +1,183 @@
|
|
|
1
|
+
import { dualImpl } from "../core/function/dualImpl.js";
|
|
1
2
|
import { stitch } from "../core/resolve/stitch.js";
|
|
2
|
-
import { unify } from "../tgsl/conversion.js";
|
|
3
3
|
import { bool, i32, u32 } from "../data/numeric.js";
|
|
4
4
|
import { vec4u } from "../data/vector.js";
|
|
5
|
-
import {
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
name: "subgroupShuffleUp",
|
|
185
|
-
signature: (...args) => {
|
|
186
|
-
const delta = unify([args[1]], [u32]);
|
|
187
|
-
if (!delta) throw new Error(`subgroupShuffleUp's second argument has to be compatible with u32. Got: ${args[1].type}`);
|
|
188
|
-
return {
|
|
189
|
-
argTypes: [args[0], delta[0]],
|
|
190
|
-
returnType: args[0]
|
|
191
|
-
};
|
|
192
|
-
},
|
|
193
|
-
normalImpl: errorMessage,
|
|
194
|
-
codegenImpl: (_ctx, [e, delta]) => stitch`subgroupShuffleUp(${e}, ${delta})`
|
|
195
|
-
});
|
|
196
|
-
const subgroupShuffleXor = dualImpl({
|
|
197
|
-
name: "subgroupShuffleXor",
|
|
198
|
-
signature: (...args) => {
|
|
199
|
-
const mask = unify([args[1]], [u32]);
|
|
200
|
-
if (!mask) throw new Error(`subgroupShuffleXor's second argument has to be compatible with u32. Got: ${args[1].type}`);
|
|
201
|
-
return {
|
|
202
|
-
argTypes: [args[0], mask[0]],
|
|
203
|
-
returnType: args[0]
|
|
204
|
-
};
|
|
205
|
-
},
|
|
206
|
-
normalImpl: errorMessage,
|
|
207
|
-
codegenImpl: (_ctx, [e, mask]) => stitch`subgroupShuffleXor(${e}, ${mask})`
|
|
208
|
-
});
|
|
209
|
-
const subgroupXor = dualImpl({
|
|
210
|
-
name: "subgroupXor",
|
|
211
|
-
signature: (arg) => ({
|
|
212
|
-
argTypes: [arg],
|
|
213
|
-
returnType: arg
|
|
214
|
-
}),
|
|
215
|
-
normalImpl: errorMessage,
|
|
216
|
-
codegenImpl: (_ctx, [e]) => stitch`subgroupXor(${e})`
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
//#endregion
|
|
220
|
-
export { subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor };
|
|
5
|
+
import { unify } from "../tgsl/conversion.js";
|
|
6
|
+
const errorMessage = 'Subgroup operations can only be used in the GPU context.';
|
|
7
|
+
export const subgroupAdd = dualImpl({
|
|
8
|
+
name: 'subgroupAdd',
|
|
9
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
10
|
+
normalImpl: errorMessage,
|
|
11
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupAdd(${arg})`,
|
|
12
|
+
sideEffects: false,
|
|
13
|
+
});
|
|
14
|
+
export const subgroupExclusiveAdd = dualImpl({
|
|
15
|
+
name: 'subgroupExclusiveAdd',
|
|
16
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
17
|
+
normalImpl: errorMessage,
|
|
18
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupExclusiveAdd(${arg})`,
|
|
19
|
+
sideEffects: false,
|
|
20
|
+
});
|
|
21
|
+
export const subgroupInclusiveAdd = dualImpl({
|
|
22
|
+
name: 'subgroupInclusiveAdd',
|
|
23
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
24
|
+
normalImpl: errorMessage,
|
|
25
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupInclusiveAdd(${arg})`,
|
|
26
|
+
sideEffects: false,
|
|
27
|
+
});
|
|
28
|
+
export const subgroupAll = dualImpl({
|
|
29
|
+
name: 'subgroupAll',
|
|
30
|
+
signature: { argTypes: [bool], returnType: bool },
|
|
31
|
+
normalImpl: errorMessage,
|
|
32
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupAll(${e})`,
|
|
33
|
+
sideEffects: false,
|
|
34
|
+
});
|
|
35
|
+
export const subgroupAnd = dualImpl({
|
|
36
|
+
name: 'subgroupAnd',
|
|
37
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
38
|
+
normalImpl: errorMessage,
|
|
39
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupAnd(${e})`,
|
|
40
|
+
sideEffects: false,
|
|
41
|
+
});
|
|
42
|
+
export const subgroupAny = dualImpl({
|
|
43
|
+
name: 'subgroupAny',
|
|
44
|
+
signature: { argTypes: [bool], returnType: bool },
|
|
45
|
+
normalImpl: errorMessage,
|
|
46
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupAny(${e})`,
|
|
47
|
+
sideEffects: false,
|
|
48
|
+
});
|
|
49
|
+
export const subgroupBallot = dualImpl({
|
|
50
|
+
name: 'subgroupBallot',
|
|
51
|
+
signature: { argTypes: [bool], returnType: vec4u },
|
|
52
|
+
normalImpl: errorMessage,
|
|
53
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupBallot(${e})`,
|
|
54
|
+
sideEffects: false,
|
|
55
|
+
});
|
|
56
|
+
export const subgroupBroadcast = dualImpl({
|
|
57
|
+
name: 'subgroupBroadcast',
|
|
58
|
+
signature: (...args) => {
|
|
59
|
+
const id = unify([args[1]], [i32, u32]);
|
|
60
|
+
if (!id) {
|
|
61
|
+
throw new Error(`subgroupBroadcast's second argument has to be compatible with i32 or u32. Got: ${args[1].type}`);
|
|
62
|
+
}
|
|
63
|
+
return { argTypes: [args[0], id[0]], returnType: args[0] };
|
|
64
|
+
},
|
|
65
|
+
normalImpl: errorMessage,
|
|
66
|
+
codegenImpl: (_ctx, [e, index]) => stitch `subgroupBroadcast(${e}, ${index})`,
|
|
67
|
+
sideEffects: false,
|
|
68
|
+
});
|
|
69
|
+
export const subgroupBroadcastFirst = dualImpl({
|
|
70
|
+
name: 'subgroupBroadcastFirst',
|
|
71
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
72
|
+
normalImpl: errorMessage,
|
|
73
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupBroadcastFirst(${e})`,
|
|
74
|
+
sideEffects: false,
|
|
75
|
+
});
|
|
76
|
+
export const subgroupElect = dualImpl({
|
|
77
|
+
name: 'subgroupElect',
|
|
78
|
+
signature: { argTypes: [], returnType: bool },
|
|
79
|
+
normalImpl: errorMessage,
|
|
80
|
+
codegenImpl: () => stitch `subgroupElect()`,
|
|
81
|
+
sideEffects: false,
|
|
82
|
+
});
|
|
83
|
+
export const subgroupMax = dualImpl({
|
|
84
|
+
name: 'subgroupMax',
|
|
85
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
86
|
+
normalImpl: errorMessage,
|
|
87
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupMax(${arg})`,
|
|
88
|
+
sideEffects: false,
|
|
89
|
+
});
|
|
90
|
+
export const subgroupMin = dualImpl({
|
|
91
|
+
name: 'subgroupMin',
|
|
92
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
93
|
+
normalImpl: errorMessage,
|
|
94
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupMin(${arg})`,
|
|
95
|
+
sideEffects: false,
|
|
96
|
+
});
|
|
97
|
+
export const subgroupMul = dualImpl({
|
|
98
|
+
name: 'subgroupMul',
|
|
99
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
100
|
+
normalImpl: errorMessage,
|
|
101
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupMul(${arg})`,
|
|
102
|
+
sideEffects: false,
|
|
103
|
+
});
|
|
104
|
+
export const subgroupExclusiveMul = dualImpl({
|
|
105
|
+
name: 'subgroupExclusiveMul',
|
|
106
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
107
|
+
normalImpl: errorMessage,
|
|
108
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupExclusiveMul(${arg})`,
|
|
109
|
+
sideEffects: false,
|
|
110
|
+
});
|
|
111
|
+
export const subgroupInclusiveMul = dualImpl({
|
|
112
|
+
name: 'subgroupInclusiveMul',
|
|
113
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
114
|
+
normalImpl: errorMessage,
|
|
115
|
+
codegenImpl: (_ctx, [arg]) => stitch `subgroupInclusiveMul(${arg})`,
|
|
116
|
+
sideEffects: false,
|
|
117
|
+
});
|
|
118
|
+
export const subgroupOr = dualImpl({
|
|
119
|
+
name: 'subgroupOr',
|
|
120
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
121
|
+
normalImpl: errorMessage,
|
|
122
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupOr(${e})`,
|
|
123
|
+
sideEffects: false,
|
|
124
|
+
});
|
|
125
|
+
export const subgroupShuffle = dualImpl({
|
|
126
|
+
name: 'subgroupShuffle',
|
|
127
|
+
signature: (...args) => {
|
|
128
|
+
const id = unify([args[1]], [i32, u32]);
|
|
129
|
+
if (!id) {
|
|
130
|
+
throw new Error(`subgroupShuffle's second argument has to be compatible with i32 or u32. Got: ${args[1].type}`);
|
|
131
|
+
}
|
|
132
|
+
return { argTypes: [args[0], id[0]], returnType: args[0] };
|
|
133
|
+
},
|
|
134
|
+
normalImpl: errorMessage,
|
|
135
|
+
codegenImpl: (_ctx, [e, index]) => stitch `subgroupShuffle(${e}, ${index})`,
|
|
136
|
+
sideEffects: false,
|
|
137
|
+
});
|
|
138
|
+
export const subgroupShuffleDown = dualImpl({
|
|
139
|
+
name: 'subgroupShuffleDown',
|
|
140
|
+
signature: (...args) => {
|
|
141
|
+
const delta = unify([args[1]], [u32]);
|
|
142
|
+
if (!delta) {
|
|
143
|
+
throw new Error(`subgroupShuffleDown's second argument has to be compatible with u32. Got: ${args[1].type}`);
|
|
144
|
+
}
|
|
145
|
+
return { argTypes: [args[0], delta[0]], returnType: args[0] };
|
|
146
|
+
},
|
|
147
|
+
normalImpl: errorMessage,
|
|
148
|
+
codegenImpl: (_ctx, [e, delta]) => stitch `subgroupShuffleDown(${e}, ${delta})`,
|
|
149
|
+
sideEffects: false,
|
|
150
|
+
});
|
|
151
|
+
export const subgroupShuffleUp = dualImpl({
|
|
152
|
+
name: 'subgroupShuffleUp',
|
|
153
|
+
signature: (...args) => {
|
|
154
|
+
const delta = unify([args[1]], [u32]);
|
|
155
|
+
if (!delta) {
|
|
156
|
+
throw new Error(`subgroupShuffleUp's second argument has to be compatible with u32. Got: ${args[1].type}`);
|
|
157
|
+
}
|
|
158
|
+
return { argTypes: [args[0], delta[0]], returnType: args[0] };
|
|
159
|
+
},
|
|
160
|
+
normalImpl: errorMessage,
|
|
161
|
+
codegenImpl: (_ctx, [e, delta]) => stitch `subgroupShuffleUp(${e}, ${delta})`,
|
|
162
|
+
sideEffects: false,
|
|
163
|
+
});
|
|
164
|
+
export const subgroupShuffleXor = dualImpl({
|
|
165
|
+
name: 'subgroupShuffleXor',
|
|
166
|
+
signature: (...args) => {
|
|
167
|
+
const mask = unify([args[1]], [u32]);
|
|
168
|
+
if (!mask) {
|
|
169
|
+
throw new Error(`subgroupShuffleXor's second argument has to be compatible with u32. Got: ${args[1].type}`);
|
|
170
|
+
}
|
|
171
|
+
return { argTypes: [args[0], mask[0]], returnType: args[0] };
|
|
172
|
+
},
|
|
173
|
+
normalImpl: errorMessage,
|
|
174
|
+
codegenImpl: (_ctx, [e, mask]) => stitch `subgroupShuffleXor(${e}, ${mask})`,
|
|
175
|
+
sideEffects: false,
|
|
176
|
+
});
|
|
177
|
+
export const subgroupXor = dualImpl({
|
|
178
|
+
name: 'subgroupXor',
|
|
179
|
+
signature: (arg) => ({ argTypes: [arg], returnType: arg }),
|
|
180
|
+
normalImpl: errorMessage,
|
|
181
|
+
codegenImpl: (_ctx, [e]) => stitch `subgroupXor(${e})`,
|
|
182
|
+
sideEffects: false,
|
|
183
|
+
});
|
package/std/texture.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d } from "../data/texture.js";
|
|
7
|
-
|
|
8
|
-
//#region src/std/texture.d.ts
|
|
1
|
+
import { type v2f, type v2i, type v2u, type v3f, type v3i, type v3u, type v4f, type v4i, type v4u } from '../data/wgslTypes.ts';
|
|
2
|
+
import { type StorageTextureFormats, type TextureFormats } from '../core/texture/textureFormats.ts';
|
|
3
|
+
import type { $internal, $repr } from '../shared/symbols.ts';
|
|
4
|
+
import type { texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d } from '../data/texture.ts';
|
|
5
|
+
import type { comparisonSampler, sampler } from '../data/sampler.ts';
|
|
9
6
|
declare function sampleCpu<T extends texture1d>(texture: T, sampler: sampler, coords: number): v4f;
|
|
10
7
|
declare function sampleCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, offset?: v2i): v4f;
|
|
11
8
|
declare function sampleCpu<T extends texture2dArray>(texture: T, sampler: sampler, coords: v2f, arrayIndex: number, offset?: v2i): v4f;
|
|
@@ -15,13 +12,13 @@ declare function sampleCpu<T extends textureCubeArray>(texture: T, sampler: samp
|
|
|
15
12
|
declare function sampleCpu<T extends textureDepth2d>(texture: T, sampler: sampler, coords: v2f, offset?: v2i): number;
|
|
16
13
|
declare function sampleCpu<T extends textureDepth2dArray>(texture: T, sampler: sampler, coords: v2f, arrayIndex: number, offset?: v2i): number;
|
|
17
14
|
declare function sampleCpu<T extends textureDepthCube>(texture: T, sampler: sampler, coords: v3f, arrayIndex?: number): number;
|
|
18
|
-
declare const textureSample: DualFn<typeof sampleCpu>;
|
|
15
|
+
export declare const textureSample: import("../types.ts").DualFn<typeof sampleCpu>;
|
|
19
16
|
declare function sampleBiasCpu<T extends texture1d>(texture: T, sampler: sampler, coords: number, bias: number): v4f;
|
|
20
17
|
declare function sampleBiasCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, bias: number, offset?: v2i): v4f;
|
|
21
18
|
declare function sampleBiasCpu<T extends texture2dArray>(texture: T, sampler: sampler, coords: v2f, arrayIndex: number, bias: number, offset?: v2i): v4f;
|
|
22
19
|
declare function sampleBiasCpu<T extends texture3d | textureCube>(texture: T, sampler: sampler, coords: v3f, bias: number, offset?: v3i): v4f;
|
|
23
20
|
declare function sampleBiasCpu<T extends textureCubeArray>(texture: T, sampler: sampler, coords: v3f, arrayIndex: number, bias: number): v4f;
|
|
24
|
-
declare const textureSampleBias: DualFn<typeof sampleBiasCpu>;
|
|
21
|
+
export declare const textureSampleBias: import("../types.ts").DualFn<typeof sampleBiasCpu>;
|
|
25
22
|
declare function sampleLevelCpu<T extends texture1d>(texture: T, sampler: sampler, coords: number, level: number): v4f;
|
|
26
23
|
declare function sampleLevelCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, level: number): v4f;
|
|
27
24
|
declare function sampleLevelCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, level: number, offset: v2i): v4f;
|
|
@@ -36,11 +33,11 @@ declare function sampleLevelCpu<T extends textureDepth2dArray>(texture: T, sampl
|
|
|
36
33
|
declare function sampleLevelCpu<T extends textureDepth2dArray>(texture: T, sampler: sampler, coords: v2f, arrayIndex: number, level: number, offset: v2i): number;
|
|
37
34
|
declare function sampleLevelCpu<T extends textureDepthCube>(texture: T, sampler: sampler, coords: v3f, level: number): number;
|
|
38
35
|
declare function sampleLevelCpu<T extends textureCubeArray>(texture: T, sampler: sampler, coords: v3f, arrayIndex: number, level: number): number;
|
|
39
|
-
declare const textureSampleLevel: DualFn<typeof sampleLevelCpu>;
|
|
36
|
+
export declare const textureSampleLevel: import("../types.ts").DualFn<typeof sampleLevelCpu>;
|
|
40
37
|
type PrimitiveToLoadedType = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
f32: v4f;
|
|
39
|
+
i32: v4i;
|
|
40
|
+
u32: v4u;
|
|
44
41
|
};
|
|
45
42
|
type TexelFormatToInstanceType<T extends StorageTextureFormats> = TextureFormats[T]['vectorType'][typeof $repr];
|
|
46
43
|
declare function textureLoadCpu<T extends texture1d>(texture: T, coords: number, level: number): PrimitiveToLoadedType[T[typeof $internal]['type']];
|
|
@@ -56,52 +53,88 @@ declare function textureLoadCpu<T extends textureStorage1d>(texture: T, coords:
|
|
|
56
53
|
declare function textureLoadCpu<T extends textureStorage2d>(texture: T, coords: v2i | v2u): TexelFormatToInstanceType<T[typeof $internal][0]>;
|
|
57
54
|
declare function textureLoadCpu<T extends textureStorage2dArray>(texture: T, coords: v2i | v2u, arrayIndex: number): TexelFormatToInstanceType<T[typeof $internal][0]>;
|
|
58
55
|
declare function textureLoadCpu<T extends textureStorage3d>(texture: T, coords: v3i | v3u): TexelFormatToInstanceType<T[typeof $internal][0]>;
|
|
59
|
-
declare const textureLoad: DualFn<typeof textureLoadCpu>;
|
|
56
|
+
export declare const textureLoad: import("../types.ts").DualFn<typeof textureLoadCpu>;
|
|
60
57
|
declare function textureStoreCpu<T extends textureStorage1d>(texture: T, coords: number, value: TexelFormatToInstanceType<T[typeof $internal][0]>): void;
|
|
61
58
|
declare function textureStoreCpu<T extends textureStorage2d>(texture: T, coords: v2i | v2u, value: TexelFormatToInstanceType<T[typeof $internal][0]>): void;
|
|
62
59
|
declare function textureStoreCpu<T extends textureStorage2dArray>(texture: T, coords: v2i | v2u, arrayIndex: number, value: TexelFormatToInstanceType<T[typeof $internal][0]>): void;
|
|
63
60
|
declare function textureStoreCpu<T extends textureStorage3d>(texture: T, coords: v3i | v3u, value: TexelFormatToInstanceType<T[typeof $internal][0]>): void;
|
|
64
|
-
declare const textureStore: DualFn<typeof textureStoreCpu>;
|
|
61
|
+
export declare const textureStore: import("../types.ts").DualFn<typeof textureStoreCpu>;
|
|
65
62
|
declare function textureDimensionsCpu<T extends texture1d | textureStorage1d>(texture: T): number;
|
|
66
63
|
declare function textureDimensionsCpu<T extends texture1d>(texture: T, level: number): number;
|
|
67
64
|
declare function textureDimensionsCpu<T extends texture2d | texture2dArray | textureCube | textureCubeArray | textureStorage2d | textureStorage2dArray | textureExternal>(texture: T): v2u;
|
|
68
65
|
declare function textureDimensionsCpu<T extends texture2d | texture2dArray | textureCube | textureCubeArray>(texture: T, level: number): v2u;
|
|
69
66
|
declare function textureDimensionsCpu<T extends texture3d | textureStorage3d>(texture: T): v3u;
|
|
70
67
|
declare function textureDimensionsCpu<T extends texture3d>(texture: T, level: number): v3u;
|
|
71
|
-
declare const textureDimensions: DualFn<typeof textureDimensionsCpu>;
|
|
72
|
-
type Gather2dArgs<T extends texture2d = texture2d> = [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
export declare const textureDimensions: import("../types.ts").DualFn<typeof textureDimensionsCpu>;
|
|
69
|
+
type Gather2dArgs<T extends texture2d = texture2d> = [
|
|
70
|
+
component: number,
|
|
71
|
+
texture: T,
|
|
72
|
+
sampler: sampler,
|
|
73
|
+
coords: v2f,
|
|
74
|
+
offset?: v2i
|
|
75
|
+
];
|
|
76
|
+
type Gather2dArrayArgs<T extends texture2dArray = texture2dArray> = [
|
|
77
|
+
component: number,
|
|
78
|
+
texture: T,
|
|
79
|
+
sampler: sampler,
|
|
80
|
+
coords: v2f,
|
|
81
|
+
arrayIndex: number,
|
|
82
|
+
offset?: v2i
|
|
83
|
+
];
|
|
84
|
+
type GatherCubeArgs<T extends textureCube = textureCube> = [
|
|
85
|
+
component: number,
|
|
86
|
+
texture: T,
|
|
87
|
+
sampler: sampler,
|
|
88
|
+
coords: v3f
|
|
89
|
+
];
|
|
90
|
+
type GatherCubeArrayArgs<T extends textureCubeArray = textureCubeArray> = [
|
|
91
|
+
component: number,
|
|
92
|
+
texture: T,
|
|
93
|
+
sampler: sampler,
|
|
94
|
+
coords: v3f,
|
|
95
|
+
arrayIndex: number
|
|
96
|
+
];
|
|
76
97
|
type GatherDepth2dArgs = [texture: textureDepth2d, sampler: sampler, coords: v2f, offset?: v2i];
|
|
77
|
-
type GatherDepth2dArrayArgs = [
|
|
98
|
+
type GatherDepth2dArrayArgs = [
|
|
99
|
+
texture: textureDepth2dArray,
|
|
100
|
+
sampler: sampler,
|
|
101
|
+
coords: v2f,
|
|
102
|
+
arrayIndex: number,
|
|
103
|
+
offset?: v2i
|
|
104
|
+
];
|
|
78
105
|
type GatherDepthCubeArgs = [texture: textureDepthCube, sampler: sampler, coords: v3f];
|
|
79
|
-
type GatherDepthCubeArrayArgs = [
|
|
106
|
+
type GatherDepthCubeArrayArgs = [
|
|
107
|
+
texture: textureDepthCubeArray,
|
|
108
|
+
sampler: sampler,
|
|
109
|
+
coords: v3f,
|
|
110
|
+
arrayIndex: number
|
|
111
|
+
];
|
|
80
112
|
type TextureGatherCpuFn = {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
113
|
+
<T extends texture2d>(...args: Gather2dArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
|
|
114
|
+
<T extends texture2dArray>(...args: Gather2dArrayArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
|
|
115
|
+
<T extends textureCube>(...args: GatherCubeArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
|
|
116
|
+
<T extends textureCubeArray>(...args: GatherCubeArrayArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
|
|
117
|
+
(...args: GatherDepth2dArgs): v4f;
|
|
118
|
+
(...args: GatherDepth2dArrayArgs): v4f;
|
|
119
|
+
(...args: GatherDepthCubeArgs): v4f;
|
|
120
|
+
(...args: GatherDepthCubeArrayArgs): v4f;
|
|
89
121
|
};
|
|
90
|
-
declare const
|
|
122
|
+
export declare const textureGatherCpu: TextureGatherCpuFn;
|
|
123
|
+
export declare const textureGather: import("../types.ts").DualFn<TextureGatherCpuFn>;
|
|
91
124
|
declare function textureSampleCompareCpu<T extends textureDepth2d>(texture: T, sampler: comparisonSampler, coords: v2f, depthRef: number): number;
|
|
92
125
|
declare function textureSampleCompareCpu<T extends textureDepth2d>(texture: T, sampler: comparisonSampler, coords: v2f, depthRef: number, offset: v2i): number;
|
|
93
126
|
declare function textureSampleCompareCpu<T extends textureDepth2dArray>(texture: T, sampler: comparisonSampler, coords: v2f, arrayIndex: number, depthRef: number): number;
|
|
94
127
|
declare function textureSampleCompareCpu<T extends textureDepth2dArray>(texture: T, sampler: comparisonSampler, coords: v2f, arrayIndex: number, depthRef: number, offset: v2i): number;
|
|
95
128
|
declare function textureSampleCompareCpu<T extends textureDepthCube>(texture: T, sampler: comparisonSampler, coords: v3f, depthRef: number): number;
|
|
96
129
|
declare function textureSampleCompareCpu<T extends textureDepthCubeArray>(texture: T, sampler: comparisonSampler, coords: v3f, arrayIndex: number, depthRef: number): number;
|
|
97
|
-
declare const textureSampleCompare: DualFn<typeof textureSampleCompareCpu>;
|
|
130
|
+
export declare const textureSampleCompare: import("../types.ts").DualFn<typeof textureSampleCompareCpu>;
|
|
98
131
|
declare function textureSampleCompareLevelCpu<T extends textureDepth2d>(texture: T, sampler: comparisonSampler, coords: v2f, depthRef: number): number;
|
|
99
132
|
declare function textureSampleCompareLevelCpu<T extends textureDepth2d>(texture: T, sampler: comparisonSampler, coords: v2f, depthRef: number, offset: v2i): number;
|
|
100
133
|
declare function textureSampleCompareLevelCpu<T extends textureDepth2dArray>(texture: T, sampler: comparisonSampler, coords: v2f, arrayIndex: number, depthRef: number): number;
|
|
101
134
|
declare function textureSampleCompareLevelCpu<T extends textureDepth2dArray>(texture: T, sampler: comparisonSampler, coords: v2f, arrayIndex: number, depthRef: number, offset: v2i): number;
|
|
102
135
|
declare function textureSampleCompareLevelCpu<T extends textureDepthCube>(texture: T, sampler: comparisonSampler, coords: v3f, depthRef: number): number;
|
|
103
136
|
declare function textureSampleCompareLevelCpu<T extends textureDepthCubeArray>(texture: T, sampler: comparisonSampler, coords: v3f, arrayIndex: number, depthRef: number): number;
|
|
104
|
-
declare const textureSampleCompareLevel: DualFn<typeof textureSampleCompareLevelCpu>;
|
|
137
|
+
export declare const textureSampleCompareLevel: import("../types.ts").DualFn<typeof textureSampleCompareLevelCpu>;
|
|
105
138
|
declare function textureSampleBaseClampToEdgeCpu<T extends texture2d | textureExternal>(_texture: T, _sampler: sampler, _coords: v2f): v4f;
|
|
106
139
|
declare function sampleGradCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, ddx: v2f, ddy: v2f): v4f;
|
|
107
140
|
declare function sampleGradCpu<T extends texture2d>(texture: T, sampler: sampler, coords: v2f, ddx: v2f, ddy: v2f, offset: v2i): v4f;
|
|
@@ -111,7 +144,6 @@ declare function sampleGradCpu<T extends texture3d>(texture: T, sampler: sampler
|
|
|
111
144
|
declare function sampleGradCpu<T extends texture3d>(texture: T, sampler: sampler, coords: v3f, ddx: v3f, ddy: v3f, offset: v3i): v4f;
|
|
112
145
|
declare function sampleGradCpu<T extends textureCube>(texture: T, sampler: sampler, coords: v3f, ddx: v3f, ddy: v3f): v4f;
|
|
113
146
|
declare function sampleGradCpu<T extends textureCubeArray>(texture: T, sampler: sampler, coords: v3f, arrayIndex: number, ddx: v3f, ddy: v3f): v4f;
|
|
114
|
-
declare const textureSampleGrad: DualFn<typeof sampleGradCpu>;
|
|
115
|
-
declare const textureSampleBaseClampToEdge: DualFn<typeof textureSampleBaseClampToEdgeCpu>;
|
|
116
|
-
|
|
117
|
-
export { textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore };
|
|
147
|
+
export declare const textureSampleGrad: import("../types.ts").DualFn<typeof sampleGradCpu>;
|
|
148
|
+
export declare const textureSampleBaseClampToEdge: import("../types.ts").DualFn<typeof textureSampleBaseClampToEdgeCpu>;
|
|
149
|
+
export {};
|