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/std/copy.js CHANGED
@@ -1,27 +1,30 @@
1
- import { WORKAROUND_getSchema, isMatInstance, isVecInstance } from "../data/wgslTypes.js";
2
- import { stitch } from "../core/resolve/stitch.js";
3
1
  import { dualImpl } from "../core/function/dualImpl.js";
4
-
5
- //#region src/std/copy.ts
6
- function cpuCopy(e) {
7
- if (isVecInstance(e) || isMatInstance(e)) return WORKAROUND_getSchema(e)(e);
8
- if (Array.isArray(e)) return e.map(cpuCopy);
9
- if (typeof e === "object" && e !== null) return Object.fromEntries(Object.entries(e).map(([key, value]) => [key, cpuCopy(value)]));
10
- return e;
2
+ import { stitch } from "../core/resolve/stitch.js";
3
+ import { isMatInstance, isVecInstance, WORKAROUND_getSchema } from "../data/wgslTypes.js";
4
+ export function cpuCopy(e) {
5
+ if (isVecInstance(e) || isMatInstance(e)) {
6
+ const schema = WORKAROUND_getSchema(e);
7
+ return schema(e);
8
+ }
9
+ if (Array.isArray(e)) {
10
+ return e.map(cpuCopy);
11
+ }
12
+ if (typeof e === 'object' && e !== null) {
13
+ return Object.fromEntries(Object.entries(e).map(([key, value]) => [key, cpuCopy(value)]));
14
+ }
15
+ return e;
11
16
  }
12
- const copy = dualImpl({
13
- name: "copy",
14
- signature: (arg) => {
15
- return {
16
- argTypes: [arg],
17
- returnType: arg
18
- };
19
- },
20
- normalImpl: cpuCopy,
21
- codegenImpl(_ctx, [a]) {
22
- return stitch`${a}`;
23
- }
17
+ export const copy = dualImpl({
18
+ name: 'copy',
19
+ signature: (arg) => {
20
+ return {
21
+ argTypes: [arg],
22
+ returnType: arg,
23
+ };
24
+ },
25
+ normalImpl: cpuCopy,
26
+ codegenImpl(_ctx, [a]) {
27
+ return stitch `${a}`;
28
+ },
29
+ sideEffects: false,
24
30
  });
25
-
26
- //#endregion
27
- export { copy };
@@ -1,16 +1,12 @@
1
- import { DualFn } from "../types.js";
2
- import { AnyFloat32VecInstance } from "../data/wgslTypes.js";
3
-
4
- //#region src/std/derivative.d.ts
1
+ import type { AnyFloat32VecInstance } from '../data/wgslTypes.ts';
5
2
  type DerivativeSignature = ((value: number) => number) & (<T extends AnyFloat32VecInstance>(value: T) => T);
6
- declare const dpdx: DualFn<DerivativeSignature>;
7
- declare const dpdxCoarse: DualFn<DerivativeSignature>;
8
- declare const dpdxFine: DualFn<DerivativeSignature>;
9
- declare const dpdy: DualFn<DerivativeSignature>;
10
- declare const dpdyCoarse: DualFn<DerivativeSignature>;
11
- declare const dpdyFine: DualFn<DerivativeSignature>;
12
- declare const fwidth: DualFn<DerivativeSignature>;
13
- declare const fwidthCoarse: DualFn<DerivativeSignature>;
14
- declare const fwidthFine: DualFn<DerivativeSignature>;
15
- //#endregion
16
- export { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine };
3
+ export declare const dpdx: import("../types.ts").DualFn<DerivativeSignature>;
4
+ export declare const dpdxCoarse: import("../types.ts").DualFn<DerivativeSignature>;
5
+ export declare const dpdxFine: import("../types.ts").DualFn<DerivativeSignature>;
6
+ export declare const dpdy: import("../types.ts").DualFn<DerivativeSignature>;
7
+ export declare const dpdyCoarse: import("../types.ts").DualFn<DerivativeSignature>;
8
+ export declare const dpdyFine: import("../types.ts").DualFn<DerivativeSignature>;
9
+ export declare const fwidth: import("../types.ts").DualFn<DerivativeSignature>;
10
+ export declare const fwidthCoarse: import("../types.ts").DualFn<DerivativeSignature>;
11
+ export declare const fwidthFine: import("../types.ts").DualFn<DerivativeSignature>;
12
+ export {};
package/std/derivative.js CHANGED
@@ -1,89 +1,66 @@
1
- import { stitch } from "../core/resolve/stitch.js";
2
1
  import { dualImpl } from "../core/function/dualImpl.js";
3
-
4
- //#region src/std/derivative.ts
5
- const derivativeNormalError = "Derivative builtins are not allowed on the CPU";
6
- const dpdx = dualImpl({
7
- name: "dpdx",
8
- normalImpl: derivativeNormalError,
9
- signature: (value) => ({
10
- argTypes: [value],
11
- returnType: value
12
- }),
13
- codegenImpl: (_ctx, [value]) => stitch`dpdx(${value})`
2
+ import { stitch } from "../core/resolve/stitch.js";
3
+ const derivativeNormalError = 'Derivative builtins are not allowed on the CPU';
4
+ export const dpdx = dualImpl({
5
+ name: 'dpdx',
6
+ normalImpl: derivativeNormalError,
7
+ signature: (value) => ({ argTypes: [value], returnType: value }),
8
+ codegenImpl: (_ctx, [value]) => stitch `dpdx(${value})`,
9
+ sideEffects: false,
14
10
  });
15
- const dpdxCoarse = dualImpl({
16
- name: "dpdxCoarse",
17
- normalImpl: derivativeNormalError,
18
- signature: (value) => ({
19
- argTypes: [value],
20
- returnType: value
21
- }),
22
- codegenImpl: (_ctx, [value]) => stitch`dpdxCoarse(${value})`
11
+ export const dpdxCoarse = dualImpl({
12
+ name: 'dpdxCoarse',
13
+ normalImpl: derivativeNormalError,
14
+ signature: (value) => ({ argTypes: [value], returnType: value }),
15
+ codegenImpl: (_ctx, [value]) => stitch `dpdxCoarse(${value})`,
16
+ sideEffects: false,
23
17
  });
24
- const dpdxFine = dualImpl({
25
- name: "dpdxFine",
26
- normalImpl: derivativeNormalError,
27
- signature: (value) => ({
28
- argTypes: [value],
29
- returnType: value
30
- }),
31
- codegenImpl: (_ctx, [value]) => stitch`dpdxFine(${value})`
18
+ export const dpdxFine = dualImpl({
19
+ name: 'dpdxFine',
20
+ normalImpl: derivativeNormalError,
21
+ signature: (value) => ({ argTypes: [value], returnType: value }),
22
+ codegenImpl: (_ctx, [value]) => stitch `dpdxFine(${value})`,
23
+ sideEffects: false,
32
24
  });
33
- const dpdy = dualImpl({
34
- name: "dpdy",
35
- normalImpl: derivativeNormalError,
36
- signature: (value) => ({
37
- argTypes: [value],
38
- returnType: value
39
- }),
40
- codegenImpl: (_ctx, [value]) => stitch`dpdy(${value})`
25
+ export const dpdy = dualImpl({
26
+ name: 'dpdy',
27
+ normalImpl: derivativeNormalError,
28
+ signature: (value) => ({ argTypes: [value], returnType: value }),
29
+ codegenImpl: (_ctx, [value]) => stitch `dpdy(${value})`,
30
+ sideEffects: false,
41
31
  });
42
- const dpdyCoarse = dualImpl({
43
- name: "dpdyCoarse",
44
- normalImpl: derivativeNormalError,
45
- signature: (value) => ({
46
- argTypes: [value],
47
- returnType: value
48
- }),
49
- codegenImpl: (_ctx, [value]) => stitch`dpdyCoarse(${value})`
32
+ export const dpdyCoarse = dualImpl({
33
+ name: 'dpdyCoarse',
34
+ normalImpl: derivativeNormalError,
35
+ signature: (value) => ({ argTypes: [value], returnType: value }),
36
+ codegenImpl: (_ctx, [value]) => stitch `dpdyCoarse(${value})`,
37
+ sideEffects: false,
50
38
  });
51
- const dpdyFine = dualImpl({
52
- name: "dpdyFine",
53
- normalImpl: derivativeNormalError,
54
- signature: (value) => ({
55
- argTypes: [value],
56
- returnType: value
57
- }),
58
- codegenImpl: (_ctx, [value]) => stitch`dpdyFine(${value})`
39
+ export const dpdyFine = dualImpl({
40
+ name: 'dpdyFine',
41
+ normalImpl: derivativeNormalError,
42
+ signature: (value) => ({ argTypes: [value], returnType: value }),
43
+ codegenImpl: (_ctx, [value]) => stitch `dpdyFine(${value})`,
44
+ sideEffects: false,
59
45
  });
60
- const fwidth = dualImpl({
61
- name: "fwidth",
62
- normalImpl: derivativeNormalError,
63
- signature: (value) => ({
64
- argTypes: [value],
65
- returnType: value
66
- }),
67
- codegenImpl: (_ctx, [value]) => stitch`fwidth(${value})`
46
+ export const fwidth = dualImpl({
47
+ name: 'fwidth',
48
+ normalImpl: derivativeNormalError,
49
+ signature: (value) => ({ argTypes: [value], returnType: value }),
50
+ codegenImpl: (_ctx, [value]) => stitch `fwidth(${value})`,
51
+ sideEffects: false,
68
52
  });
69
- const fwidthCoarse = dualImpl({
70
- name: "fwidthCoarse",
71
- normalImpl: derivativeNormalError,
72
- signature: (value) => ({
73
- argTypes: [value],
74
- returnType: value
75
- }),
76
- codegenImpl: (_ctx, [value]) => stitch`fwidthCoarse(${value})`
53
+ export const fwidthCoarse = dualImpl({
54
+ name: 'fwidthCoarse',
55
+ normalImpl: derivativeNormalError,
56
+ signature: (value) => ({ argTypes: [value], returnType: value }),
57
+ codegenImpl: (_ctx, [value]) => stitch `fwidthCoarse(${value})`,
58
+ sideEffects: false,
77
59
  });
78
- const fwidthFine = dualImpl({
79
- name: "fwidthFine",
80
- normalImpl: derivativeNormalError,
81
- signature: (value) => ({
82
- argTypes: [value],
83
- returnType: value
84
- }),
85
- codegenImpl: (_ctx, [value]) => stitch`fwidthFine(${value})`
60
+ export const fwidthFine = dualImpl({
61
+ name: 'fwidthFine',
62
+ normalImpl: derivativeNormalError,
63
+ signature: (value) => ({ argTypes: [value], returnType: value }),
64
+ codegenImpl: (_ctx, [value]) => stitch `fwidthFine(${value})`,
65
+ sideEffects: false,
86
66
  });
87
-
88
- //#endregion
89
- export { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine };
package/std/discard.d.ts CHANGED
@@ -1,6 +1 @@
1
- import { DualFn } from "../types.js";
2
-
3
- //#region src/std/discard.d.ts
4
- declare const discard: DualFn<() => never>;
5
- //#endregion
6
- export { discard };
1
+ export declare const discard: import("../types.ts").DualFn<() => never>;
package/std/discard.js CHANGED
@@ -1,16 +1,9 @@
1
- import { Void } from "../data/wgslTypes.js";
2
1
  import { dualImpl } from "../core/function/dualImpl.js";
3
-
4
- //#region src/std/discard.ts
5
- const discard = dualImpl({
6
- name: "discard",
7
- normalImpl: "`discard` relies on GPU resources and cannot be executed outside of a draw call",
8
- signature: {
9
- argTypes: [],
10
- returnType: Void
11
- },
12
- codegenImpl: () => "discard;"
2
+ import { Void } from "../data/wgslTypes.js";
3
+ export const discard = dualImpl({
4
+ name: 'discard',
5
+ normalImpl: '`discard` relies on GPU resources and cannot be executed outside of a draw call',
6
+ signature: { argTypes: [], returnType: Void },
7
+ codegenImpl: () => 'discard;',
8
+ sideEffects: true,
13
9
  });
14
-
15
- //#endregion
16
- export { discard };
@@ -1,9 +1,4 @@
1
- import { DualFn } from "../types.js";
2
- import { TgpuComptime } from "../core/function/comptime.js";
3
- import "../indexNamedExports.js";
4
-
5
- //#region src/std/environment.d.ts
6
-
1
+ import type { DualFn, ShaderStage } from '../types.ts';
7
2
  /**
8
3
  * Returns `true` when the direct callee is being transpiled for GPU, otherwise `false`.
9
4
  *
@@ -22,12 +17,13 @@ import "../indexNamedExports.js";
22
17
  * @note
23
18
  * Inside `comptime`, `lazy` or `simulate`, it always returns `false`.
24
19
  */
25
- declare const isBeingTranspiled: DualFn<() => boolean>;
20
+ export declare const isBeingTranspiled: DualFn<() => boolean>;
26
21
  /**
27
- * Returns `wgsl` if invoked during the resolution process; otherwise, returns `undefined`.
22
+ * If invoked during the resolution process, it returns the name of the shader language that
23
+ * is ultimately being generated (usually `wgsl`); otherwise, returns `undefined`.
28
24
  *
29
25
  * @example
30
- * const f = () => {
26
+ * function f() {
31
27
  * 'use gpu';
32
28
  * return getTargetShaderLanguage() === 'wgsl';
33
29
  * };
@@ -39,10 +35,19 @@ declare const isBeingTranspiled: DualFn<() => boolean>;
39
35
  * }
40
36
  *
41
37
  * @note
42
- * Inside `lazy`, it always returns `wgsl`.
43
38
  * Inside `simulate`, it always returns `undefined`.
44
- * Inside `comptime`, it returns `wgsl` if called during the resolution process; otherwise, `undefined`.
39
+ *
40
+ * Inside `comptime`, it returns the shader language that is ultimately
41
+ * being generated (usually `wgsl`) if called during the resolution process; otherwise, `undefined`.
42
+ */
43
+ export declare const getTargetShaderLanguage: import("../indexNamedExports.ts").TgpuComptime<() => string | undefined>;
44
+ /**
45
+ * Can be used to change behavior based on which shader stage the code is being
46
+ * used in. If used in a 'use gpu' function, its definition will be duplicated
47
+ * for each shader stage.
48
+ *
49
+ * @note
50
+ * When called outside of shader resolution, or when the shader stage cannot be
51
+ * determined, `undefined` is returned.
45
52
  */
46
- declare const getTargetShaderLanguage: TgpuComptime<() => string | undefined>;
47
- //#endregion
48
- export { getTargetShaderLanguage, isBeingTranspiled };
53
+ export declare const getShaderStage: import("../indexNamedExports.ts").TgpuComptime<() => ShaderStage | undefined>;
@@ -1,57 +1,77 @@
1
- import { $gpuCallable } from "../shared/symbols.js";
1
+ import { comptime } from "../core/function/comptime.js";
2
+ import { shaderStageSlot } from "../core/slot/internalSlots.js";
2
3
  import { getExecMode, getResolutionCtx } from "../execMode.js";
4
+ import { $gpuCallable } from "../shared/symbols.js";
3
5
  import { coerceToSnippet } from "../tgsl/generationHelpers.js";
4
- import { comptime } from "../core/function/comptime.js";
5
-
6
- //#region src/std/environment.ts
7
6
  const impl = (() => false);
8
- impl.toString = () => "isBeingTranspiled";
9
- impl[$gpuCallable] = { call(_ctx, _args) {
10
- return coerceToSnippet(true);
11
- } };
7
+ impl.toString = () => 'isBeingTranspiled';
8
+ impl[$gpuCallable] = {
9
+ call(_ctx, _args) {
10
+ return coerceToSnippet(true);
11
+ },
12
+ };
12
13
  /**
13
- * Returns `true` when the direct callee is being transpiled for GPU, otherwise `false`.
14
- *
15
- * @example
16
- * const f = () => {
17
- * 'use gpu';
18
- * return isBeingTranspiled() ? 1 : 0;
19
- * };
20
- *
21
- * f(); // returns 0, but resolved WGSL looks like this:
22
- *
23
- * fn f() -> i32 {
24
- * return 1;
25
- * }
26
- *
27
- * @note
28
- * Inside `comptime`, `lazy` or `simulate`, it always returns `false`.
29
- */
30
- const isBeingTranspiled = impl;
14
+ * Returns `true` when the direct callee is being transpiled for GPU, otherwise `false`.
15
+ *
16
+ * @example
17
+ * const f = () => {
18
+ * 'use gpu';
19
+ * return isBeingTranspiled() ? 1 : 0;
20
+ * };
21
+ *
22
+ * f(); // returns 0, but resolved WGSL looks like this:
23
+ *
24
+ * fn f() -> i32 {
25
+ * return 1;
26
+ * }
27
+ *
28
+ * @note
29
+ * Inside `comptime`, `lazy` or `simulate`, it always returns `false`.
30
+ */
31
+ export const isBeingTranspiled = impl;
31
32
  /**
32
- * Returns `wgsl` if invoked during the resolution process; otherwise, returns `undefined`.
33
- *
34
- * @example
35
- * const f = () => {
36
- * 'use gpu';
37
- * return getTargetShaderLanguage() === 'wgsl';
38
- * };
39
- *
40
- * f(); // returns false, but resolved WGSL looks like this:
41
- *
42
- * fn f() -> bool {
43
- * return true;
44
- * }
45
- *
46
- * @note
47
- * Inside `lazy`, it always returns `wgsl`.
48
- * Inside `simulate`, it always returns `undefined`.
49
- * Inside `comptime`, it returns `wgsl` if called during the resolution process; otherwise, `undefined`.
50
- */
51
- const getTargetShaderLanguage = comptime((() => {
52
- if (!getResolutionCtx()) return;
53
- return getExecMode().type !== "simulate" ? "wgsl" : void 0;
33
+ * If invoked during the resolution process, it returns the name of the shader language that
34
+ * is ultimately being generated (usually `wgsl`); otherwise, returns `undefined`.
35
+ *
36
+ * @example
37
+ * function f() {
38
+ * 'use gpu';
39
+ * return getTargetShaderLanguage() === 'wgsl';
40
+ * };
41
+ *
42
+ * f(); // returns false, but resolved WGSL looks like this:
43
+ *
44
+ * fn f() -> bool {
45
+ * return true;
46
+ * }
47
+ *
48
+ * @note
49
+ * Inside `simulate`, it always returns `undefined`.
50
+ *
51
+ * Inside `comptime`, it returns the shader language that is ultimately
52
+ * being generated (usually `wgsl`) if called during the resolution process; otherwise, `undefined`.
53
+ */
54
+ export const getTargetShaderLanguage = comptime((() => {
55
+ const ctx = getResolutionCtx();
56
+ if (!ctx) {
57
+ return undefined;
58
+ }
59
+ return getExecMode().type !== 'simulate' ? ctx.gen.languageKey : undefined;
54
60
  }));
55
-
56
- //#endregion
57
- export { getTargetShaderLanguage, isBeingTranspiled };
61
+ /**
62
+ * Can be used to change behavior based on which shader stage the code is being
63
+ * used in. If used in a 'use gpu' function, its definition will be duplicated
64
+ * for each shader stage.
65
+ *
66
+ * @note
67
+ * When called outside of shader resolution, or when the shader stage cannot be
68
+ * determined, `undefined` is returned.
69
+ */
70
+ export const getShaderStage = comptime(() => {
71
+ const ctx = getResolutionCtx();
72
+ if (!ctx) {
73
+ // Called outside of resolution
74
+ return undefined;
75
+ }
76
+ return shaderStageSlot.$ ?? undefined;
77
+ });
@@ -1,8 +1,2 @@
1
- import { WgslEnableExtension } from "../wgslExtensions.js";
2
- import { TgpuComptime } from "../core/function/comptime.js";
3
- import "../indexNamedExports.js";
4
-
5
- //#region src/std/extensions.d.ts
6
- declare const extensionEnabled: TgpuComptime<(extensionName: WgslEnableExtension) => boolean>;
7
- //#endregion
8
- export { extensionEnabled };
1
+ import { type WgslEnableExtension } from '../wgslExtensions.ts';
2
+ export declare const extensionEnabled: import("../indexNamedExports.ts").TgpuComptime<(extensionName: WgslEnableExtension) => boolean>;
package/std/extensions.js CHANGED
@@ -1,14 +1,13 @@
1
- import { getResolutionCtx } from "../execMode.js";
2
1
  import { comptime } from "../core/function/comptime.js";
2
+ import { getResolutionCtx } from "../execMode.js";
3
3
  import { wgslEnableExtensions } from "../wgslExtensions.js";
4
-
5
- //#region src/std/extensions.ts
6
- const extensionEnabled = comptime((extensionName) => {
7
- const resolutionCtx = getResolutionCtx();
8
- if (!resolutionCtx) throw new Error("Functions using `extensionEnabled` cannot be called directly. Either generate WGSL from them, or use tgpu['~unstable'].simulate(...)");
9
- if (typeof extensionName !== "string" || !wgslEnableExtensions.includes(extensionName)) throw new Error(`extensionEnabled has to be called with a string literal representing a valid WGSL extension name. Got: '${extensionName}'`);
10
- return (resolutionCtx.enableExtensions ?? []).includes(extensionName);
4
+ export const extensionEnabled = comptime((extensionName) => {
5
+ const resolutionCtx = getResolutionCtx();
6
+ if (!resolutionCtx) {
7
+ throw new Error("Functions using `extensionEnabled` cannot be called directly. Either generate WGSL from them, or use tgpu['~unstable'].simulate(...)");
8
+ }
9
+ if (typeof extensionName !== 'string' || !wgslEnableExtensions.includes(extensionName)) {
10
+ throw new Error(`extensionEnabled has to be called with a string literal representing a valid WGSL extension name. Got: '${extensionName}'`);
11
+ }
12
+ return (resolutionCtx.enableExtensions ?? []).includes(extensionName);
11
13
  });
12
-
13
- //#endregion
14
- export { extensionEnabled };
package/std/index.d.ts CHANGED
@@ -1,24 +1,20 @@
1
- import { identity2, identity3, identity4, rotationX4, rotationY4, rotationZ4, scaling4, translation4 } from "../data/matrix.js";
2
- import { copy } from "./copy.js";
3
- import { discard } from "./discard.js";
4
- import { abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, clamp, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, distance, dot, dot4I8Packed, dot4U8Packed, exp, exp2, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, insertBits, inverseSqrt, ldexp, length, log, log2, max, min, mix, modf, normalize, pow, quantizeToF16, radians, reflect, refract, reverseBits, round, saturate, sign, sin, sinh, smoothstep, sqrt, step, tan, tanh, transpose, trunc } from "./numeric.js";
5
- import { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub } from "./operators.js";
6
- import { rotateX4, rotateY4, rotateZ4, scale4, translate4 } from "./matrix.js";
7
- import { all, allEq, and, any, eq, ge, gt, isCloseTo, le, lt, ne, not, or, select } from "./boolean.js";
8
- import { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, storageBarrier, textureBarrier, workgroupBarrier } from "./atomic.js";
9
- import { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine } from "./derivative.js";
10
- import { arrayLength } from "./array.js";
11
- import { pack2x16float, pack4x8unorm, unpack2x16float, unpack4x8unorm } from "./packing.js";
12
- import { textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore } from "./texture.js";
13
- import { subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor } from "./subgroup.js";
14
- import { extensionEnabled } from "./extensions.js";
15
- import { bitcastU32toF32, bitcastU32toI32 } from "./bitcast.js";
16
- import { range } from "./range.js";
17
- import { getTargetShaderLanguage, isBeingTranspiled } from "./environment.js";
18
-
19
- //#region src/std/index.d.ts
20
- declare namespace index_d_exports {
21
- export { abs, acos, acosh, add, all, allEq, and, any, arrayLength, asin, asinh, atan, atan2, atanh, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, bitShiftLeft, bitShiftRight, bitcastU32toF32, bitcastU32toI32, ceil, clamp, copy, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, discard, distance, div, dot, dot4I8Packed, dot4U8Packed, dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, eq, exp, exp2, extensionEnabled, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, fwidth, fwidthCoarse, fwidthFine, ge, getTargetShaderLanguage, gt, identity2, identity3, identity4, insertBits, inverseSqrt, isBeingTranspiled, isCloseTo, ldexp, le, length, log, log2, lt, max, min, mix, mod, modf, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, quantizeToF16, radians, range, reflect, refract, reverseBits, rotateX4, rotateY4, rotateZ4, rotationX4, rotationY4, rotationZ4, round, saturate, scale4, scaling4, select, sign, sin, sinh, smoothstep, sqrt, step, storageBarrier, sub, subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor, tan, tanh, textureBarrier, textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore, translate4, translation4, transpose, trunc, unpack2x16float, unpack4x8unorm, workgroupBarrier };
22
- }
23
- //#endregion
24
- export { abs, acos, acosh, add, all, allEq, and, any, arrayLength, asin, asinh, atan, atan2, atanh, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, bitShiftLeft, bitShiftRight, bitcastU32toF32, bitcastU32toI32, ceil, clamp, copy, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, discard, distance, div, dot, dot4I8Packed, dot4U8Packed, dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, eq, exp, exp2, extensionEnabled, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, fwidth, fwidthCoarse, fwidthFine, ge, getTargetShaderLanguage, gt, identity2, identity3, identity4, index_d_exports, insertBits, inverseSqrt, isBeingTranspiled, isCloseTo, ldexp, le, length, log, log2, lt, max, min, mix, mod, modf, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, quantizeToF16, radians, range, reflect, refract, reverseBits, rotateX4, rotateY4, rotateZ4, rotationX4, rotationY4, rotationZ4, round, saturate, scale4, scaling4, select, sign, sin, sinh, smoothstep, sqrt, step, storageBarrier, sub, subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor, tan, tanh, textureBarrier, textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore, translate4, translation4, transpose, trunc, unpack2x16float, unpack4x8unorm, workgroupBarrier };
1
+ /**
2
+ * @module typegpu/std
3
+ */
4
+ export { copy } from './copy.ts';
5
+ export { discard } from './discard.ts';
6
+ export { abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, clamp, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, distance, dot, dot4I8Packed, dot4U8Packed, exp, exp2, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, insertBits, inverseSqrt, ldexp, length, log, log2, max, min, mix, modf, normalize, pow, quantizeToF16, radians, reflect, refract, reverseBits, round, saturate, sign, sin, sinh, smoothstep, sqrt, step, tan, tanh, transpose, trunc, intdiv, } from './numeric.ts';
7
+ export { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub } from './operators.ts';
8
+ export { rotateX4, rotateY4, rotateZ4, scale4, translate4 } from './matrix.ts';
9
+ export { identity2, identity3, identity4, rotationX4, rotationY4, rotationZ4, scaling4, translation4, } from '../data/matrix.ts';
10
+ export { allEq, eq, ne, lt, le, gt, ge, not, or, and, all, any, isCloseTo, select, } from './boolean.ts';
11
+ export { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, workgroupBarrier, storageBarrier, textureBarrier, } from './atomic.ts';
12
+ export { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine, } from './derivative.ts';
13
+ export { arrayLength } from './array.ts';
14
+ export { pack4x8unorm, pack2x16float, unpack4x8unorm, unpack2x16float, } from './packing.ts';
15
+ export { textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore, } from './texture.ts';
16
+ export { subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor, } from './subgroup.ts';
17
+ export { extensionEnabled } from './extensions.ts';
18
+ export { bitcastU32toF32, bitcastU32toI32, bitcastF32toU32, bitcast } from './bitcast.ts';
19
+ export { range } from './range.ts';
20
+ export { isBeingTranspiled, getTargetShaderLanguage, getShaderStage } from './environment.ts';