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.
Files changed (366) hide show
  1. package/bin.mjs +28 -6
  2. package/builtin.d.ts +51 -53
  3. package/builtin.js +30 -34
  4. package/common/fullScreenTriangle.d.ts +2 -10
  5. package/common/fullScreenTriangle.js +20 -28
  6. package/common/index.d.ts +2 -9
  7. package/common/index.js +3 -12
  8. package/common/writeSoA.d.ts +11 -12
  9. package/common/writeSoA.js +88 -76
  10. package/core/buffer/buffer.d.ts +79 -62
  11. package/core/buffer/buffer.js +283 -205
  12. package/core/buffer/bufferBinding.d.ts +71 -0
  13. package/core/buffer/bufferBinding.js +154 -0
  14. package/core/buffer/bufferUsage.d.ts +14 -45
  15. package/core/buffer/bufferUsage.js +1 -171
  16. package/core/buffer/laidOutBuffer.d.ts +25 -0
  17. package/core/buffer/laidOutBuffer.js +55 -0
  18. package/core/commandEncoder/attachments.d.ts +125 -0
  19. package/core/commandEncoder/attachments.js +29 -0
  20. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  21. package/core/commandEncoder/commandEncoder.js +56 -0
  22. package/core/commandEncoder/computePass.d.ts +58 -0
  23. package/core/commandEncoder/computePass.js +63 -0
  24. package/core/commandEncoder/renderPass.d.ts +121 -0
  25. package/core/commandEncoder/renderPass.js +196 -0
  26. package/core/constant/tgpuConstant.d.ts +26 -26
  27. package/core/constant/tgpuConstant.js +76 -65
  28. package/core/declare/tgpuDeclare.d.ts +3 -6
  29. package/core/declare/tgpuDeclare.js +36 -36
  30. package/core/function/autoIO.d.ts +61 -33
  31. package/core/function/autoIO.js +68 -73
  32. package/core/function/comptime.d.ts +11 -13
  33. package/core/function/comptime.js +60 -52
  34. package/core/function/createCallableSchema.d.ts +16 -0
  35. package/core/function/createCallableSchema.js +50 -40
  36. package/core/function/dualImpl.d.ts +44 -0
  37. package/core/function/dualImpl.js +71 -50
  38. package/core/function/entryInputRouter.d.ts +26 -0
  39. package/core/function/entryInputRouter.js +31 -33
  40. package/core/function/extractArgs.d.ts +38 -0
  41. package/core/function/extractArgs.js +202 -200
  42. package/core/function/fnCore.d.ts +44 -5
  43. package/core/function/fnCore.js +148 -93
  44. package/core/function/fnTypes.d.ts +31 -29
  45. package/core/function/fnTypes.js +1 -0
  46. package/core/function/ioSchema.d.ts +12 -10
  47. package/core/function/ioSchema.js +65 -47
  48. package/core/function/shelllessImpl.d.ts +9 -12
  49. package/core/function/shelllessImpl.js +17 -22
  50. package/core/function/templateUtils.d.ts +2 -0
  51. package/core/function/templateUtils.js +9 -8
  52. package/core/function/tgpuComputeFn.d.ts +26 -28
  53. package/core/function/tgpuComputeFn.js +47 -48
  54. package/core/function/tgpuFn.d.ts +34 -37
  55. package/core/function/tgpuFn.js +179 -153
  56. package/core/function/tgpuFragmentFn.d.ts +52 -53
  57. package/core/function/tgpuFragmentFn.js +63 -56
  58. package/core/function/tgpuVertexFn.d.ts +36 -39
  59. package/core/function/tgpuVertexFn.js +56 -53
  60. package/core/pipeline/computePipeline.d.ts +141 -53
  61. package/core/pipeline/computePipeline.js +291 -225
  62. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  63. package/core/pipeline/connectAttachmentToShader.js +25 -22
  64. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  65. package/core/pipeline/connectTargetsToShader.js +29 -27
  66. package/core/pipeline/drawState.d.ts +52 -0
  67. package/core/pipeline/drawState.js +225 -0
  68. package/core/pipeline/performanceTracker.d.ts +14 -0
  69. package/core/pipeline/performanceTracker.js +34 -0
  70. package/core/pipeline/pipelineUtils.d.ts +18 -0
  71. package/core/pipeline/pipelineUtils.js +54 -25
  72. package/core/pipeline/priors.d.ts +1 -0
  73. package/core/pipeline/priors.js +12 -0
  74. package/core/pipeline/renderPipeline.d.ts +246 -261
  75. package/core/pipeline/renderPipeline.js +487 -480
  76. package/core/pipeline/timeable.d.ts +28 -18
  77. package/core/pipeline/timeable.js +90 -52
  78. package/core/pipeline/typeGuards.d.ts +17 -0
  79. package/core/pipeline/typeGuards.js +52 -22
  80. package/core/pipeline/webgpuLimitations.d.ts +10 -0
  81. package/core/pipeline/webgpuLimitations.js +81 -0
  82. package/core/querySet/querySet.d.ts +26 -21
  83. package/core/querySet/querySet.js +127 -103
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  85. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  86. package/core/resolve/externals.d.ts +25 -8
  87. package/core/resolve/externals.js +78 -54
  88. package/core/resolve/namespace.d.ts +22 -25
  89. package/core/resolve/namespace.js +16 -21
  90. package/core/resolve/resolvableString.d.ts +7 -0
  91. package/core/resolve/resolvableString.js +13 -0
  92. package/core/resolve/resolveData.d.ts +10 -0
  93. package/core/resolve/resolveData.js +162 -121
  94. package/core/resolve/stitch.d.ts +8 -0
  95. package/core/resolve/stitch.js +23 -21
  96. package/core/resolve/tgpuResolve.d.ts +55 -53
  97. package/core/resolve/tgpuResolve.js +106 -53
  98. package/core/root/configurableImpl.d.ts +10 -0
  99. package/core/root/configurableImpl.js +17 -19
  100. package/core/root/init.d.ts +76 -38
  101. package/core/root/init.js +346 -455
  102. package/core/root/rootTypes.d.ts +461 -636
  103. package/core/root/rootTypes.js +1 -0
  104. package/core/sampler/sampler.d.ts +50 -31
  105. package/core/sampler/sampler.js +120 -113
  106. package/core/simulate/tgpuSimulate.d.ts +9 -12
  107. package/core/simulate/tgpuSimulate.js +68 -71
  108. package/core/slot/accessor.d.ts +36 -13
  109. package/core/slot/accessor.js +138 -91
  110. package/core/slot/internalSlots.d.ts +2 -0
  111. package/core/slot/internalSlots.js +1 -6
  112. package/core/slot/lazy.d.ts +2 -6
  113. package/core/slot/lazy.js +71 -39
  114. package/core/slot/slot.d.ts +2 -6
  115. package/core/slot/slot.js +45 -38
  116. package/core/slot/slotTypes.d.ts +78 -80
  117. package/core/slot/slotTypes.js +11 -16
  118. package/core/texture/externalTexture.d.ts +20 -11
  119. package/core/texture/externalTexture.js +46 -46
  120. package/core/texture/texture.d.ts +152 -97
  121. package/core/texture/texture.js +407 -314
  122. package/core/texture/textureFormats.d.ts +42 -23
  123. package/core/texture/textureFormats.js +104 -75
  124. package/core/texture/textureProps.d.ts +7 -10
  125. package/core/texture/textureProps.js +1 -0
  126. package/core/texture/textureUtils.d.ts +8 -0
  127. package/core/texture/textureUtils.js +185 -179
  128. package/core/texture/usageExtension.d.ts +21 -18
  129. package/core/texture/usageExtension.js +13 -17
  130. package/core/unroll/tgpuUnroll.d.ts +20 -19
  131. package/core/unroll/tgpuUnroll.js +82 -91
  132. package/core/valueProxyUtils.d.ts +3 -0
  133. package/core/valueProxyUtils.js +52 -41
  134. package/core/variable/tgpuVariable.d.ts +26 -27
  135. package/core/variable/tgpuVariable.js +93 -96
  136. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  137. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  138. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  139. package/core/vertexLayout/vertexAttribute.js +1 -0
  140. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  141. package/core/vertexLayout/vertexLayout.js +130 -99
  142. package/core/whitespaces.d.ts +2 -0
  143. package/core/whitespaces.js +16 -0
  144. package/data/alignIO.d.ts +7 -0
  145. package/data/alignIO.js +13 -13
  146. package/data/alignmentOf.d.ts +5 -8
  147. package/data/alignmentOf.js +90 -75
  148. package/data/array.d.ts +17 -9
  149. package/data/array.js +57 -40
  150. package/data/atomic.d.ts +2 -7
  151. package/data/atomic.js +26 -23
  152. package/data/attributes.d.ts +19 -21
  153. package/data/attributes.js +192 -132
  154. package/data/autoStruct.d.ts +36 -3
  155. package/data/autoStruct.js +84 -81
  156. package/data/compiledIO.d.ts +5 -0
  157. package/data/compiledIO.js +231 -215
  158. package/data/dataIO.d.ts +13 -11
  159. package/data/dataIO.js +643 -589
  160. package/data/dataTypes.d.ts +83 -65
  161. package/data/dataTypes.js +66 -68
  162. package/data/deepEqual.d.ts +2 -7
  163. package/data/deepEqual.js +80 -55
  164. package/data/disarray.d.ts +6 -10
  165. package/data/disarray.js +52 -46
  166. package/data/float16Conversion.d.ts +4 -0
  167. package/data/float16Conversion.js +7 -0
  168. package/data/generalizeFn.d.ts +25 -0
  169. package/data/generalizeFn.js +89 -0
  170. package/data/getLongestContiguousPrefix.d.ts +4 -8
  171. package/data/getLongestContiguousPrefix.js +6 -11
  172. package/data/index.d.ts +30 -31
  173. package/data/index.js +39 -172
  174. package/data/instanceToSchema.d.ts +24 -27
  175. package/data/instanceToSchema.js +1 -0
  176. package/data/isContiguous.d.ts +4 -8
  177. package/data/isContiguous.js +6 -11
  178. package/data/matrix.d.ts +21 -21
  179. package/data/matrix.js +513 -505
  180. package/data/numberOps.d.ts +5 -0
  181. package/data/numberOps.js +21 -21
  182. package/data/numeric.d.ts +21 -12
  183. package/data/numeric.js +287 -197
  184. package/data/offsetUtils.d.ts +9 -13
  185. package/data/offsetUtils.js +204 -144
  186. package/data/offsets.d.ts +8 -0
  187. package/data/offsets.js +33 -33
  188. package/data/partialIO.d.ts +13 -8
  189. package/data/partialIO.js +124 -113
  190. package/data/ptr.d.ts +12 -12
  191. package/data/ptr.js +42 -44
  192. package/data/ref.d.ts +40 -27
  193. package/data/ref.js +125 -95
  194. package/data/sampler.d.ts +99 -101
  195. package/data/sampler.js +17 -21
  196. package/data/schemaCallWrapper.d.ts +19 -0
  197. package/data/schemaCallWrapper.js +31 -26
  198. package/data/schemaMemoryLayout.d.ts +8 -0
  199. package/data/schemaMemoryLayout.js +213 -185
  200. package/data/sizeOf.d.ts +4 -8
  201. package/data/sizeOf.js +6 -11
  202. package/data/snippet.d.ts +96 -20
  203. package/data/snippet.js +75 -86
  204. package/data/struct.d.ts +4 -7
  205. package/data/struct.js +51 -39
  206. package/data/texture.d.ts +253 -250
  207. package/data/texture.js +238 -200
  208. package/data/unstruct.d.ts +2 -7
  209. package/data/unstruct.js +43 -37
  210. package/data/vector.d.ts +33 -21
  211. package/data/vector.js +234 -221
  212. package/data/vectorImpl.d.ts +231 -0
  213. package/data/vectorImpl.js +563 -515
  214. package/data/vectorOps.d.ts +25 -0
  215. package/data/vectorOps.js +118 -669
  216. package/data/vertexFormatData.d.ts +181 -184
  217. package/data/vertexFormatData.js +104 -106
  218. package/data/wgslTypes.d.ts +665 -600
  219. package/data/wgslTypes.js +220 -198
  220. package/errors.d.ts +50 -24
  221. package/errors.js +146 -126
  222. package/execMode.d.ts +16 -0
  223. package/execMode.js +47 -40
  224. package/extension.d.ts +13 -8
  225. package/extension.js +10 -16
  226. package/getGPUValue.d.ts +1 -0
  227. package/getGPUValue.js +2 -7
  228. package/index.d.ts +28 -68
  229. package/index.js +8 -28
  230. package/indexNamedExports.d.ts +69 -42
  231. package/indexNamedExports.js +25 -0
  232. package/internal.d.ts +16 -0
  233. package/internal.js +12 -0
  234. package/mathUtils.d.ts +5 -0
  235. package/mathUtils.js +7 -11
  236. package/memo.d.ts +11 -0
  237. package/memo.js +20 -22
  238. package/minify.d.ts +5 -0
  239. package/minify.js +93 -0
  240. package/nameUtils.d.ts +29 -0
  241. package/nameUtils.js +427 -394
  242. package/package.json +5 -1
  243. package/resolutionCtx.d.ts +162 -22
  244. package/resolutionCtx.js +911 -629
  245. package/serial/registry.d.ts +15 -0
  246. package/serial/registry.js +106 -0
  247. package/serial/restore.d.ts +49 -0
  248. package/serial/restore.js +68 -0
  249. package/serial/schema.d.ts +58 -0
  250. package/serial/schema.js +209 -0
  251. package/serial/types.d.ts +5 -0
  252. package/serial/types.js +1 -0
  253. package/shared/env.d.ts +9 -0
  254. package/shared/env.js +9 -12
  255. package/shared/generators.d.ts +4 -0
  256. package/shared/generators.js +10 -12
  257. package/shared/meta.d.ts +29 -14
  258. package/shared/meta.js +71 -55
  259. package/shared/normalizeMetadata.d.ts +32 -27
  260. package/shared/normalizeMetadata.js +23 -36
  261. package/shared/repr.d.ts +73 -55
  262. package/shared/repr.js +1 -0
  263. package/shared/soul.d.ts +17 -0
  264. package/shared/soul.js +1 -0
  265. package/shared/stringify.d.ts +2 -0
  266. package/shared/stringify.js +29 -20
  267. package/shared/symbols.d.ts +26 -20
  268. package/shared/symbols.js +79 -79
  269. package/shared/tseynit.d.ts +2 -0
  270. package/shared/tseynit.js +160 -75
  271. package/shared/utilityTypes.d.ts +30 -14
  272. package/shared/utilityTypes.js +2 -6
  273. package/shared/vertexFormat.d.ts +41 -43
  274. package/shared/vertexFormat.js +59 -62
  275. package/std/array.d.ts +2 -7
  276. package/std/array.js +18 -23
  277. package/std/atomic.d.ts +14 -18
  278. package/std/atomic.js +96 -95
  279. package/std/bitcast.d.ts +193 -10
  280. package/std/bitcast.js +309 -39
  281. package/std/boolean.d.ts +19 -33
  282. package/std/boolean.js +296 -292
  283. package/std/copy.d.ts +2 -7
  284. package/std/copy.js +27 -24
  285. package/std/derivative.d.ts +11 -15
  286. package/std/derivative.js +56 -79
  287. package/std/discard.d.ts +1 -6
  288. package/std/discard.js +7 -14
  289. package/std/environment.d.ts +19 -14
  290. package/std/environment.js +71 -51
  291. package/std/extensions.d.ts +2 -8
  292. package/std/extensions.js +10 -11
  293. package/std/index.d.ts +20 -24
  294. package/std/index.js +32 -187
  295. package/std/matrix.d.ts +6 -12
  296. package/std/matrix.js +60 -69
  297. package/std/numeric.d.ts +150 -146
  298. package/std/numeric.js +771 -727
  299. package/std/operators.d.ts +19 -27
  300. package/std/operators.js +195 -194
  301. package/std/packing.d.ts +5 -11
  302. package/std/packing.js +67 -75
  303. package/std/range.d.ts +6 -11
  304. package/std/range.js +48 -36
  305. package/std/subgroup.d.ts +33 -37
  306. package/std/subgroup.js +180 -217
  307. package/std/texture.d.ts +70 -38
  308. package/std/texture.js +176 -172
  309. package/taskQueue.d.ts +6 -0
  310. package/taskQueue.js +30 -0
  311. package/tgpu.d.ts +16 -0
  312. package/tgpu.js +17 -44
  313. package/tgpuBindGroupLayout.d.ts +132 -152
  314. package/tgpuBindGroupLayout.js +346 -268
  315. package/tgpuLogger.d.ts +34 -0
  316. package/tgpuLogger.js +64 -0
  317. package/tgpuUnstable.d.ts +16 -22
  318. package/tgpuUnstable.js +13 -35
  319. package/tgsl/accessIndex.d.ts +2 -0
  320. package/tgsl/accessIndex.js +76 -33
  321. package/tgsl/accessProp.d.ts +2 -0
  322. package/tgsl/accessProp.js +142 -101
  323. package/tgsl/accessStructProp.d.ts +5 -0
  324. package/tgsl/accessStructProp.js +13 -15
  325. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  326. package/tgsl/consoleLog/deserializers.js +119 -103
  327. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  328. package/tgsl/consoleLog/logGenerator.js +85 -80
  329. package/tgsl/consoleLog/serializers.d.ts +21 -0
  330. package/tgsl/consoleLog/serializers.js +119 -100
  331. package/tgsl/consoleLog/types.d.ts +40 -39
  332. package/tgsl/consoleLog/types.js +1 -0
  333. package/tgsl/conversion.d.ts +33 -0
  334. package/tgsl/conversion.js +271 -216
  335. package/tgsl/forOfUtils.d.ts +15 -0
  336. package/tgsl/forOfUtils.js +85 -70
  337. package/tgsl/generationHelpers.d.ts +22 -39
  338. package/tgsl/generationHelpers.js +85 -58
  339. package/tgsl/infixDispatch.d.ts +70 -0
  340. package/tgsl/infixDispatch.js +48 -46
  341. package/tgsl/jsPolyfills.d.ts +16 -19
  342. package/tgsl/jsPolyfills.js +44 -42
  343. package/tgsl/makeDereferenceable.d.ts +48 -0
  344. package/tgsl/makeDereferenceable.js +86 -0
  345. package/tgsl/makeResolvable.d.ts +22 -0
  346. package/tgsl/makeResolvable.js +33 -0
  347. package/tgsl/shaderGenerator.d.ts +77 -17
  348. package/tgsl/shaderGenerator.js +1 -0
  349. package/tgsl/shellless.d.ts +6 -9
  350. package/tgsl/shellless.js +73 -43
  351. package/tgsl/wgslGenerator.d.ts +66 -59
  352. package/tgsl/wgslGenerator.js +1345 -760
  353. package/types.d.ts +287 -222
  354. package/types.js +61 -44
  355. package/unwrapper.d.ts +31 -26
  356. package/unwrapper.js +1 -0
  357. package/wgslExtensions.d.ts +3 -5
  358. package/wgslExtensions.js +12 -16
  359. package/_virtual/rolldown_runtime.js +0 -13
  360. package/core/buffer/bufferShorthand.d.ts +0 -50
  361. package/core/buffer/bufferShorthand.js +0 -55
  362. package/core/pipeline/applyPipelineState.js +0 -37
  363. package/core/pipeline/limitsOverflow.js +0 -13
  364. package/package.js +0 -5
  365. package/tgsl/shaderGenerator_members.d.ts +0 -33
  366. package/tgsl/shaderGenerator_members.js +0 -12
package/types.js CHANGED
@@ -1,45 +1,62 @@
1
- import { $cast, $gpuCallable, $ownSnippet, $resolve } from "./shared/symbols.js";
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 { isLazy, isProviding, isSlot } from "./core/slot/slotTypes.js";
5
-
6
- //#region src/types.ts
7
- var NormalState = class {
8
- type = "normal";
9
- };
10
- var CodegenState = class {
11
- type = "codegen";
12
- };
13
- var SimulationState = class {
14
- type = "simulate";
15
- buffers;
16
- vars;
17
- constructor(buffers, vars) {
18
- this.buffers = buffers;
19
- this.vars = vars;
20
- }
21
- };
22
- function isSelfResolvable(value) {
23
- return !!value?.[$resolve];
24
- }
25
- function getOwnSnippet(value) {
26
- return value?.[$ownSnippet];
27
- }
28
- function isGPUCallable(value) {
29
- return !!value?.[$gpuCallable];
30
- }
31
- function hasCast(value) {
32
- return !!value?.[$cast];
33
- }
34
- function isKnownAtComptime(snippet) {
35
- return (typeof snippet.value !== "string" || snippet.dataType === UnknownData) && getOwnSnippet(snippet.value) === void 0;
36
- }
37
- function isWgsl(value) {
38
- return typeof value === "number" || typeof value === "boolean" || typeof value === "string" || isSelfResolvable(value) || isWgslData(value) || isSlot(value) || isLazy(value) || isProviding(value);
39
- }
40
- function isGPUBuffer(value) {
41
- return !!value && typeof value === "object" && "getMappedRange" in value && "mapAsync" in value;
42
- }
43
-
44
- //#endregion
45
- export { CodegenState, NormalState, SimulationState, getOwnSnippet, hasCast, isGPUBuffer, isGPUCallable, isKnownAtComptime, isSelfResolvable, isWgsl };
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 "./core/querySet/querySet.js";
2
- import { TgpuComputePipeline } from "./core/pipeline/computePipeline.js";
3
- import { TgpuVertexLayout } from "./core/vertexLayout/vertexLayout.js";
4
- import { TgpuRenderPipeline } from "./core/pipeline/renderPipeline.js";
5
- import { TgpuComparisonSampler, TgpuSampler } from "./core/sampler/sampler.js";
6
- import { TgpuBindGroup, TgpuBindGroupLayout } from "./tgpuBindGroupLayout.js";
7
- import { TgpuBuffer } from "./core/buffer/buffer.js";
8
- import { BaseData } from "./data/wgslTypes.js";
9
- import { TgpuTexture, TgpuTextureView } from "./core/texture/texture.js";
10
-
11
- //#region src/unwrapper.d.ts
12
- interface Unwrapper {
13
- readonly device: GPUDevice;
14
- unwrap(resource: TgpuComputePipeline): GPUComputePipeline;
15
- unwrap(resource: TgpuRenderPipeline): GPURenderPipeline;
16
- unwrap(resource: TgpuBindGroupLayout): GPUBindGroupLayout;
17
- unwrap(resource: TgpuBindGroup): GPUBindGroup;
18
- unwrap(resource: TgpuBuffer<BaseData>): GPUBuffer;
19
- unwrap(resource: TgpuTextureView): GPUTextureView;
20
- unwrap(resource: TgpuVertexLayout): GPUVertexBufferLayout;
21
- unwrap(resource: TgpuSampler): GPUSampler;
22
- unwrap(resource: TgpuComparisonSampler): GPUSampler;
23
- unwrap(resource: TgpuQuerySet<GPUQueryType>): GPUQuerySet;
24
- unwrap(resource: TgpuTexture): GPUTexture;
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 {};
@@ -1,5 +1,3 @@
1
- //#region src/wgslExtensions.d.ts
2
- declare const wgslEnableExtensions: readonly ["f16", "clip_distances", "dual_source_blending", "subgroups", "primitive_index"];
3
- type WgslEnableExtension = (typeof wgslEnableExtensions)[number];
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
- //#region src/wgslExtensions.ts
2
- const wgslEnableExtensions = [
3
- "f16",
4
- "clip_distances",
5
- "dual_source_blending",
6
- "subgroups",
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
- f16: "shader-f16",
11
- clip_distances: "clip-distances",
12
- dual_source_blending: "dual-source-blending",
13
- subgroups: "subgroups",
14
- primitive_index: "primitive-index"
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,5 +0,0 @@
1
- //#region package.json
2
- var version = "0.11.9";
3
-
4
- //#endregion
5
- export { version };
@@ -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 };