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.
Files changed (362) hide show
  1. package/builtin.d.ts +51 -53
  2. package/builtin.js +30 -34
  3. package/common/fullScreenTriangle.d.ts +2 -10
  4. package/common/fullScreenTriangle.js +20 -28
  5. package/common/index.d.ts +2 -9
  6. package/common/index.js +3 -12
  7. package/common/writeSoA.d.ts +11 -12
  8. package/common/writeSoA.js +88 -76
  9. package/core/buffer/buffer.d.ts +79 -62
  10. package/core/buffer/buffer.js +279 -205
  11. package/core/buffer/bufferBinding.d.ts +71 -0
  12. package/core/buffer/bufferBinding.js +154 -0
  13. package/core/buffer/bufferUsage.d.ts +14 -45
  14. package/core/buffer/bufferUsage.js +1 -171
  15. package/core/buffer/laidOutBuffer.d.ts +25 -0
  16. package/core/buffer/laidOutBuffer.js +55 -0
  17. package/core/commandEncoder/attachments.d.ts +125 -0
  18. package/core/commandEncoder/attachments.js +29 -0
  19. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  20. package/core/commandEncoder/commandEncoder.js +56 -0
  21. package/core/commandEncoder/computePass.d.ts +58 -0
  22. package/core/commandEncoder/computePass.js +63 -0
  23. package/core/commandEncoder/renderPass.d.ts +121 -0
  24. package/core/commandEncoder/renderPass.js +196 -0
  25. package/core/constant/tgpuConstant.d.ts +26 -26
  26. package/core/constant/tgpuConstant.js +76 -65
  27. package/core/declare/tgpuDeclare.d.ts +3 -6
  28. package/core/declare/tgpuDeclare.js +36 -36
  29. package/core/function/autoIO.d.ts +61 -33
  30. package/core/function/autoIO.js +68 -73
  31. package/core/function/comptime.d.ts +11 -13
  32. package/core/function/comptime.js +60 -52
  33. package/core/function/createCallableSchema.d.ts +16 -0
  34. package/core/function/createCallableSchema.js +50 -40
  35. package/core/function/dualImpl.d.ts +44 -0
  36. package/core/function/dualImpl.js +71 -50
  37. package/core/function/entryInputRouter.d.ts +26 -0
  38. package/core/function/entryInputRouter.js +31 -33
  39. package/core/function/extractArgs.d.ts +38 -0
  40. package/core/function/extractArgs.js +202 -200
  41. package/core/function/fnCore.d.ts +44 -5
  42. package/core/function/fnCore.js +148 -93
  43. package/core/function/fnTypes.d.ts +31 -29
  44. package/core/function/fnTypes.js +1 -0
  45. package/core/function/ioSchema.d.ts +12 -10
  46. package/core/function/ioSchema.js +65 -47
  47. package/core/function/shelllessImpl.d.ts +9 -12
  48. package/core/function/shelllessImpl.js +17 -22
  49. package/core/function/templateUtils.d.ts +2 -0
  50. package/core/function/templateUtils.js +9 -8
  51. package/core/function/tgpuComputeFn.d.ts +26 -28
  52. package/core/function/tgpuComputeFn.js +47 -48
  53. package/core/function/tgpuFn.d.ts +34 -37
  54. package/core/function/tgpuFn.js +179 -153
  55. package/core/function/tgpuFragmentFn.d.ts +52 -53
  56. package/core/function/tgpuFragmentFn.js +63 -56
  57. package/core/function/tgpuVertexFn.d.ts +36 -39
  58. package/core/function/tgpuVertexFn.js +56 -53
  59. package/core/pipeline/computePipeline.d.ts +141 -53
  60. package/core/pipeline/computePipeline.js +291 -225
  61. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  62. package/core/pipeline/connectAttachmentToShader.js +25 -22
  63. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  64. package/core/pipeline/connectTargetsToShader.js +29 -27
  65. package/core/pipeline/drawState.d.ts +52 -0
  66. package/core/pipeline/drawState.js +225 -0
  67. package/core/pipeline/limitsOverflow.d.ts +2 -0
  68. package/core/pipeline/limitsOverflow.js +13 -10
  69. package/core/pipeline/performanceTracker.d.ts +14 -0
  70. package/core/pipeline/performanceTracker.js +34 -0
  71. package/core/pipeline/pipelineUtils.d.ts +18 -0
  72. package/core/pipeline/pipelineUtils.js +54 -25
  73. package/core/pipeline/priors.d.ts +1 -0
  74. package/core/pipeline/priors.js +12 -0
  75. package/core/pipeline/renderPipeline.d.ts +246 -261
  76. package/core/pipeline/renderPipeline.js +487 -480
  77. package/core/pipeline/timeable.d.ts +28 -18
  78. package/core/pipeline/timeable.js +90 -52
  79. package/core/pipeline/typeGuards.d.ts +17 -0
  80. package/core/pipeline/typeGuards.js +52 -22
  81. package/core/querySet/querySet.d.ts +26 -21
  82. package/core/querySet/querySet.js +127 -103
  83. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  85. package/core/resolve/externals.d.ts +25 -8
  86. package/core/resolve/externals.js +78 -54
  87. package/core/resolve/namespace.d.ts +22 -25
  88. package/core/resolve/namespace.js +16 -21
  89. package/core/resolve/resolvableString.d.ts +7 -0
  90. package/core/resolve/resolvableString.js +13 -0
  91. package/core/resolve/resolveData.d.ts +10 -0
  92. package/core/resolve/resolveData.js +162 -121
  93. package/core/resolve/stitch.d.ts +8 -0
  94. package/core/resolve/stitch.js +23 -21
  95. package/core/resolve/tgpuResolve.d.ts +55 -53
  96. package/core/resolve/tgpuResolve.js +106 -53
  97. package/core/root/configurableImpl.d.ts +10 -0
  98. package/core/root/configurableImpl.js +17 -19
  99. package/core/root/init.d.ts +76 -38
  100. package/core/root/init.js +346 -455
  101. package/core/root/rootTypes.d.ts +461 -636
  102. package/core/root/rootTypes.js +1 -0
  103. package/core/sampler/sampler.d.ts +50 -31
  104. package/core/sampler/sampler.js +120 -113
  105. package/core/simulate/tgpuSimulate.d.ts +9 -12
  106. package/core/simulate/tgpuSimulate.js +68 -71
  107. package/core/slot/accessor.d.ts +36 -13
  108. package/core/slot/accessor.js +138 -91
  109. package/core/slot/internalSlots.d.ts +2 -0
  110. package/core/slot/internalSlots.js +1 -6
  111. package/core/slot/lazy.d.ts +2 -6
  112. package/core/slot/lazy.js +71 -39
  113. package/core/slot/slot.d.ts +2 -6
  114. package/core/slot/slot.js +45 -38
  115. package/core/slot/slotTypes.d.ts +78 -80
  116. package/core/slot/slotTypes.js +11 -16
  117. package/core/texture/externalTexture.d.ts +20 -11
  118. package/core/texture/externalTexture.js +46 -46
  119. package/core/texture/texture.d.ts +152 -97
  120. package/core/texture/texture.js +407 -314
  121. package/core/texture/textureFormats.d.ts +42 -23
  122. package/core/texture/textureFormats.js +104 -75
  123. package/core/texture/textureProps.d.ts +7 -10
  124. package/core/texture/textureProps.js +1 -0
  125. package/core/texture/textureUtils.d.ts +8 -0
  126. package/core/texture/textureUtils.js +185 -179
  127. package/core/texture/usageExtension.d.ts +21 -18
  128. package/core/texture/usageExtension.js +13 -17
  129. package/core/unroll/tgpuUnroll.d.ts +20 -19
  130. package/core/unroll/tgpuUnroll.js +82 -91
  131. package/core/valueProxyUtils.d.ts +3 -0
  132. package/core/valueProxyUtils.js +52 -41
  133. package/core/variable/tgpuVariable.d.ts +26 -27
  134. package/core/variable/tgpuVariable.js +93 -96
  135. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  136. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  137. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  138. package/core/vertexLayout/vertexAttribute.js +1 -0
  139. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  140. package/core/vertexLayout/vertexLayout.js +130 -99
  141. package/core/whitespaces.d.ts +2 -0
  142. package/core/whitespaces.js +16 -0
  143. package/data/alignIO.d.ts +7 -0
  144. package/data/alignIO.js +13 -13
  145. package/data/alignmentOf.d.ts +5 -8
  146. package/data/alignmentOf.js +90 -75
  147. package/data/array.d.ts +6 -9
  148. package/data/array.js +48 -40
  149. package/data/atomic.d.ts +2 -7
  150. package/data/atomic.js +26 -23
  151. package/data/attributes.d.ts +19 -21
  152. package/data/attributes.js +192 -132
  153. package/data/autoStruct.d.ts +36 -3
  154. package/data/autoStruct.js +84 -81
  155. package/data/compiledIO.d.ts +5 -0
  156. package/data/compiledIO.js +231 -215
  157. package/data/dataIO.d.ts +13 -11
  158. package/data/dataIO.js +643 -589
  159. package/data/dataTypes.d.ts +83 -65
  160. package/data/dataTypes.js +66 -68
  161. package/data/deepEqual.d.ts +2 -7
  162. package/data/deepEqual.js +80 -55
  163. package/data/disarray.d.ts +6 -10
  164. package/data/disarray.js +52 -46
  165. package/data/float16Conversion.d.ts +4 -0
  166. package/data/float16Conversion.js +7 -0
  167. package/data/getLongestContiguousPrefix.d.ts +4 -8
  168. package/data/getLongestContiguousPrefix.js +6 -11
  169. package/data/index.d.ts +30 -31
  170. package/data/index.js +39 -172
  171. package/data/instanceToSchema.d.ts +24 -27
  172. package/data/instanceToSchema.js +1 -0
  173. package/data/isContiguous.d.ts +4 -8
  174. package/data/isContiguous.js +6 -11
  175. package/data/matrix.d.ts +21 -21
  176. package/data/matrix.js +513 -505
  177. package/data/numberOps.d.ts +6 -0
  178. package/data/numberOps.js +26 -20
  179. package/data/numeric.d.ts +21 -12
  180. package/data/numeric.js +287 -197
  181. package/data/offsetUtils.d.ts +9 -13
  182. package/data/offsetUtils.js +204 -144
  183. package/data/offsets.d.ts +8 -0
  184. package/data/offsets.js +33 -33
  185. package/data/partialIO.d.ts +13 -8
  186. package/data/partialIO.js +124 -113
  187. package/data/ptr.d.ts +12 -12
  188. package/data/ptr.js +42 -44
  189. package/data/ref.d.ts +40 -27
  190. package/data/ref.js +125 -95
  191. package/data/sampler.d.ts +99 -101
  192. package/data/sampler.js +17 -21
  193. package/data/schemaCallWrapper.d.ts +19 -0
  194. package/data/schemaCallWrapper.js +31 -26
  195. package/data/schemaMemoryLayout.d.ts +8 -0
  196. package/data/schemaMemoryLayout.js +213 -185
  197. package/data/sizeOf.d.ts +4 -8
  198. package/data/sizeOf.js +6 -11
  199. package/data/snippet.d.ts +96 -20
  200. package/data/snippet.js +75 -86
  201. package/data/struct.d.ts +4 -7
  202. package/data/struct.js +51 -39
  203. package/data/texture.d.ts +253 -250
  204. package/data/texture.js +238 -200
  205. package/data/unstruct.d.ts +2 -7
  206. package/data/unstruct.js +43 -37
  207. package/data/vector.d.ts +33 -21
  208. package/data/vector.js +234 -221
  209. package/data/vectorImpl.d.ts +231 -0
  210. package/data/vectorImpl.js +563 -515
  211. package/data/vectorOps.d.ts +63 -0
  212. package/data/vectorOps.js +642 -630
  213. package/data/vertexFormatData.d.ts +181 -184
  214. package/data/vertexFormatData.js +104 -106
  215. package/data/wgslTypes.d.ts +665 -600
  216. package/data/wgslTypes.js +220 -198
  217. package/errors.d.ts +50 -24
  218. package/errors.js +146 -126
  219. package/execMode.d.ts +16 -0
  220. package/execMode.js +47 -40
  221. package/extension.d.ts +13 -8
  222. package/extension.js +10 -16
  223. package/getGPUValue.d.ts +1 -0
  224. package/getGPUValue.js +2 -7
  225. package/index.d.ts +28 -68
  226. package/index.js +8 -28
  227. package/indexNamedExports.d.ts +69 -42
  228. package/indexNamedExports.js +25 -0
  229. package/internal.d.ts +16 -0
  230. package/internal.js +12 -0
  231. package/mathUtils.d.ts +5 -0
  232. package/mathUtils.js +7 -11
  233. package/memo.d.ts +11 -0
  234. package/memo.js +20 -22
  235. package/minify.d.ts +5 -0
  236. package/minify.js +93 -0
  237. package/nameUtils.d.ts +29 -0
  238. package/nameUtils.js +427 -394
  239. package/package.json +5 -1
  240. package/resolutionCtx.d.ts +162 -22
  241. package/resolutionCtx.js +911 -629
  242. package/serial/registry.d.ts +15 -0
  243. package/serial/registry.js +106 -0
  244. package/serial/restore.d.ts +49 -0
  245. package/serial/restore.js +68 -0
  246. package/serial/schema.d.ts +58 -0
  247. package/serial/schema.js +209 -0
  248. package/serial/types.d.ts +5 -0
  249. package/serial/types.js +1 -0
  250. package/shared/env.d.ts +9 -0
  251. package/shared/env.js +9 -12
  252. package/shared/generators.d.ts +4 -0
  253. package/shared/generators.js +10 -12
  254. package/shared/meta.d.ts +29 -14
  255. package/shared/meta.js +71 -55
  256. package/shared/normalizeMetadata.d.ts +32 -27
  257. package/shared/normalizeMetadata.js +23 -36
  258. package/shared/repr.d.ts +73 -55
  259. package/shared/repr.js +1 -0
  260. package/shared/soul.d.ts +17 -0
  261. package/shared/soul.js +1 -0
  262. package/shared/stringify.d.ts +2 -0
  263. package/shared/stringify.js +29 -20
  264. package/shared/symbols.d.ts +26 -20
  265. package/shared/symbols.js +79 -79
  266. package/shared/tseynit.d.ts +2 -0
  267. package/shared/tseynit.js +160 -75
  268. package/shared/utilityTypes.d.ts +30 -14
  269. package/shared/utilityTypes.js +2 -6
  270. package/shared/vertexFormat.d.ts +41 -43
  271. package/shared/vertexFormat.js +59 -62
  272. package/std/array.d.ts +2 -7
  273. package/std/array.js +18 -23
  274. package/std/atomic.d.ts +14 -18
  275. package/std/atomic.js +96 -95
  276. package/std/bitcast.d.ts +193 -10
  277. package/std/bitcast.js +309 -39
  278. package/std/boolean.d.ts +19 -33
  279. package/std/boolean.js +296 -288
  280. package/std/copy.d.ts +2 -7
  281. package/std/copy.js +27 -24
  282. package/std/derivative.d.ts +11 -15
  283. package/std/derivative.js +56 -79
  284. package/std/discard.d.ts +1 -6
  285. package/std/discard.js +7 -14
  286. package/std/environment.d.ts +19 -14
  287. package/std/environment.js +71 -51
  288. package/std/extensions.d.ts +2 -8
  289. package/std/extensions.js +10 -11
  290. package/std/index.d.ts +20 -24
  291. package/std/index.js +32 -187
  292. package/std/matrix.d.ts +6 -12
  293. package/std/matrix.js +60 -69
  294. package/std/numeric.d.ts +143 -146
  295. package/std/numeric.js +858 -749
  296. package/std/operators.d.ts +19 -27
  297. package/std/operators.js +227 -193
  298. package/std/packing.d.ts +5 -11
  299. package/std/packing.js +67 -75
  300. package/std/range.d.ts +6 -11
  301. package/std/range.js +48 -36
  302. package/std/subgroup.d.ts +33 -37
  303. package/std/subgroup.js +180 -217
  304. package/std/texture.d.ts +70 -38
  305. package/std/texture.js +176 -172
  306. package/taskQueue.d.ts +6 -0
  307. package/taskQueue.js +30 -0
  308. package/tgpu.d.ts +16 -0
  309. package/tgpu.js +17 -44
  310. package/tgpuBindGroupLayout.d.ts +132 -152
  311. package/tgpuBindGroupLayout.js +346 -268
  312. package/tgpuLogger.d.ts +34 -0
  313. package/tgpuLogger.js +63 -0
  314. package/tgpuUnstable.d.ts +16 -22
  315. package/tgpuUnstable.js +13 -35
  316. package/tgsl/accessIndex.d.ts +2 -0
  317. package/tgsl/accessIndex.js +76 -33
  318. package/tgsl/accessProp.d.ts +2 -0
  319. package/tgsl/accessProp.js +142 -101
  320. package/tgsl/accessStructProp.d.ts +5 -0
  321. package/tgsl/accessStructProp.js +13 -15
  322. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  323. package/tgsl/consoleLog/deserializers.js +119 -103
  324. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  325. package/tgsl/consoleLog/logGenerator.js +85 -80
  326. package/tgsl/consoleLog/serializers.d.ts +21 -0
  327. package/tgsl/consoleLog/serializers.js +119 -100
  328. package/tgsl/consoleLog/types.d.ts +40 -39
  329. package/tgsl/consoleLog/types.js +1 -0
  330. package/tgsl/conversion.d.ts +33 -0
  331. package/tgsl/conversion.js +271 -216
  332. package/tgsl/forOfUtils.d.ts +15 -0
  333. package/tgsl/forOfUtils.js +85 -70
  334. package/tgsl/generationHelpers.d.ts +22 -39
  335. package/tgsl/generationHelpers.js +85 -58
  336. package/tgsl/infixDispatch.d.ts +70 -0
  337. package/tgsl/infixDispatch.js +48 -46
  338. package/tgsl/jsPolyfills.d.ts +16 -19
  339. package/tgsl/jsPolyfills.js +44 -42
  340. package/tgsl/makeDereferenceable.d.ts +48 -0
  341. package/tgsl/makeDereferenceable.js +86 -0
  342. package/tgsl/makeResolvable.d.ts +22 -0
  343. package/tgsl/makeResolvable.js +33 -0
  344. package/tgsl/shaderGenerator.d.ts +77 -17
  345. package/tgsl/shaderGenerator.js +1 -0
  346. package/tgsl/shellless.d.ts +6 -9
  347. package/tgsl/shellless.js +73 -43
  348. package/tgsl/wgslGenerator.d.ts +66 -59
  349. package/tgsl/wgslGenerator.js +1344 -760
  350. package/types.d.ts +287 -222
  351. package/types.js +61 -44
  352. package/unwrapper.d.ts +31 -26
  353. package/unwrapper.js +1 -0
  354. package/wgslExtensions.d.ts +3 -5
  355. package/wgslExtensions.js +12 -16
  356. package/_virtual/rolldown_runtime.js +0 -13
  357. package/core/buffer/bufferShorthand.d.ts +0 -50
  358. package/core/buffer/bufferShorthand.js +0 -55
  359. package/core/pipeline/applyPipelineState.js +0 -37
  360. package/package.js +0 -5
  361. package/tgsl/shaderGenerator_members.d.ts +0 -33
  362. 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 { dualImpl } from "../core/function/dualImpl.js";
6
-
7
- //#region src/std/subgroup.ts
8
- const errorMessage = "Subgroup operations can only be used in the GPU context.";
9
- const subgroupAdd = dualImpl({
10
- name: "subgroupAdd",
11
- signature: (arg) => ({
12
- argTypes: [arg],
13
- returnType: arg
14
- }),
15
- normalImpl: errorMessage,
16
- codegenImpl: (_ctx, [arg]) => stitch`subgroupAdd(${arg})`
17
- });
18
- const subgroupExclusiveAdd = dualImpl({
19
- name: "subgroupExclusiveAdd",
20
- signature: (arg) => ({
21
- argTypes: [arg],
22
- returnType: arg
23
- }),
24
- normalImpl: errorMessage,
25
- codegenImpl: (_ctx, [arg]) => stitch`subgroupExclusiveAdd(${arg})`
26
- });
27
- const subgroupInclusiveAdd = dualImpl({
28
- name: "subgroupInclusiveAdd",
29
- signature: (arg) => ({
30
- argTypes: [arg],
31
- returnType: arg
32
- }),
33
- normalImpl: errorMessage,
34
- codegenImpl: (_ctx, [arg]) => stitch`subgroupInclusiveAdd(${arg})`
35
- });
36
- const subgroupAll = dualImpl({
37
- name: "subgroupAll",
38
- signature: {
39
- argTypes: [bool],
40
- returnType: bool
41
- },
42
- normalImpl: errorMessage,
43
- codegenImpl: (_ctx, [e]) => stitch`subgroupAll(${e})`
44
- });
45
- const subgroupAnd = dualImpl({
46
- name: "subgroupAnd",
47
- signature: (arg) => ({
48
- argTypes: [arg],
49
- returnType: arg
50
- }),
51
- normalImpl: errorMessage,
52
- codegenImpl: (_ctx, [e]) => stitch`subgroupAnd(${e})`
53
- });
54
- const subgroupAny = dualImpl({
55
- name: "subgroupAny",
56
- signature: {
57
- argTypes: [bool],
58
- returnType: bool
59
- },
60
- normalImpl: errorMessage,
61
- codegenImpl: (_ctx, [e]) => stitch`subgroupAny(${e})`
62
- });
63
- const subgroupBallot = dualImpl({
64
- name: "subgroupBallot",
65
- signature: {
66
- argTypes: [bool],
67
- returnType: vec4u
68
- },
69
- normalImpl: errorMessage,
70
- codegenImpl: (_ctx, [e]) => stitch`subgroupBallot(${e})`
71
- });
72
- const subgroupBroadcast = dualImpl({
73
- name: "subgroupBroadcast",
74
- signature: (...args) => {
75
- const id = unify([args[1]], [i32, u32]);
76
- if (!id) throw new Error(`subgroupBroadcast's second argument has to be compatible with i32 or u32. Got: ${args[1].type}`);
77
- return {
78
- argTypes: [args[0], id[0]],
79
- returnType: args[0]
80
- };
81
- },
82
- normalImpl: errorMessage,
83
- codegenImpl: (_ctx, [e, index]) => stitch`subgroupBroadcast(${e}, ${index})`
84
- });
85
- const subgroupBroadcastFirst = dualImpl({
86
- name: "subgroupBroadcastFirst",
87
- signature: (arg) => ({
88
- argTypes: [arg],
89
- returnType: arg
90
- }),
91
- normalImpl: errorMessage,
92
- codegenImpl: (_ctx, [e]) => stitch`subgroupBroadcastFirst(${e})`
93
- });
94
- const subgroupElect = dualImpl({
95
- name: "subgroupElect",
96
- signature: {
97
- argTypes: [],
98
- returnType: bool
99
- },
100
- normalImpl: errorMessage,
101
- codegenImpl: () => stitch`subgroupElect()`
102
- });
103
- const subgroupMax = dualImpl({
104
- name: "subgroupMax",
105
- signature: (arg) => ({
106
- argTypes: [arg],
107
- returnType: arg
108
- }),
109
- normalImpl: errorMessage,
110
- codegenImpl: (_ctx, [arg]) => stitch`subgroupMax(${arg})`
111
- });
112
- const subgroupMin = dualImpl({
113
- name: "subgroupMin",
114
- signature: (arg) => ({
115
- argTypes: [arg],
116
- returnType: arg
117
- }),
118
- normalImpl: errorMessage,
119
- codegenImpl: (_ctx, [arg]) => stitch`subgroupMin(${arg})`
120
- });
121
- const subgroupMul = dualImpl({
122
- name: "subgroupMul",
123
- signature: (arg) => ({
124
- argTypes: [arg],
125
- returnType: arg
126
- }),
127
- normalImpl: errorMessage,
128
- codegenImpl: (_ctx, [arg]) => stitch`subgroupMul(${arg})`
129
- });
130
- const subgroupExclusiveMul = dualImpl({
131
- name: "subgroupExclusiveMul",
132
- signature: (arg) => ({
133
- argTypes: [arg],
134
- returnType: arg
135
- }),
136
- normalImpl: errorMessage,
137
- codegenImpl: (_ctx, [arg]) => stitch`subgroupExclusiveMul(${arg})`
138
- });
139
- const subgroupInclusiveMul = dualImpl({
140
- name: "subgroupInclusiveMul",
141
- signature: (arg) => ({
142
- argTypes: [arg],
143
- returnType: arg
144
- }),
145
- normalImpl: errorMessage,
146
- codegenImpl: (_ctx, [arg]) => stitch`subgroupInclusiveMul(${arg})`
147
- });
148
- const subgroupOr = dualImpl({
149
- name: "subgroupOr",
150
- signature: (arg) => ({
151
- argTypes: [arg],
152
- returnType: arg
153
- }),
154
- normalImpl: errorMessage,
155
- codegenImpl: (_ctx, [e]) => stitch`subgroupOr(${e})`
156
- });
157
- const subgroupShuffle = dualImpl({
158
- name: "subgroupShuffle",
159
- signature: (...args) => {
160
- const id = unify([args[1]], [i32, u32]);
161
- if (!id) throw new Error(`subgroupShuffle's second argument has to be compatible with i32 or u32. Got: ${args[1].type}`);
162
- return {
163
- argTypes: [args[0], id[0]],
164
- returnType: args[0]
165
- };
166
- },
167
- normalImpl: errorMessage,
168
- codegenImpl: (_ctx, [e, index]) => stitch`subgroupShuffle(${e}, ${index})`
169
- });
170
- const subgroupShuffleDown = dualImpl({
171
- name: "subgroupShuffleDown",
172
- signature: (...args) => {
173
- const delta = unify([args[1]], [u32]);
174
- if (!delta) throw new Error(`subgroupShuffleDown's second argument has to be compatible with u32. Got: ${args[1].type}`);
175
- return {
176
- argTypes: [args[0], delta[0]],
177
- returnType: args[0]
178
- };
179
- },
180
- normalImpl: errorMessage,
181
- codegenImpl: (_ctx, [e, delta]) => stitch`subgroupShuffleDown(${e}, ${delta})`
182
- });
183
- const subgroupShuffleUp = dualImpl({
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 { $internal, $repr } from "../shared/symbols.js";
2
- import { comparisonSampler, sampler } from "../data/sampler.js";
3
- import { DualFn } from "../types.js";
4
- import { v2f, v2i, v2u, v3f, v3i, v3u, v4f, v4i, v4u } from "../data/wgslTypes.js";
5
- import { StorageTextureFormats, TextureFormats } from "../core/texture/textureFormats.js";
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
- f32: v4f;
42
- i32: v4i;
43
- u32: v4u;
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> = [component: number, texture: T, sampler: sampler, coords: v2f, offset?: v2i];
73
- type Gather2dArrayArgs<T extends texture2dArray = texture2dArray> = [component: number, texture: T, sampler: sampler, coords: v2f, arrayIndex: number, offset?: v2i];
74
- type GatherCubeArgs<T extends textureCube = textureCube> = [component: number, texture: T, sampler: sampler, coords: v3f];
75
- type GatherCubeArrayArgs<T extends textureCubeArray = textureCubeArray> = [component: number, texture: T, sampler: sampler, coords: v3f, arrayIndex: number];
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 = [texture: textureDepth2dArray, sampler: sampler, coords: v2f, arrayIndex: number, offset?: v2i];
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 = [texture: textureDepthCubeArray, sampler: sampler, coords: v3f, arrayIndex: number];
106
+ type GatherDepthCubeArrayArgs = [
107
+ texture: textureDepthCubeArray,
108
+ sampler: sampler,
109
+ coords: v3f,
110
+ arrayIndex: number
111
+ ];
80
112
  type TextureGatherCpuFn = {
81
- <T extends texture2d>(...args: Gather2dArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
82
- <T extends texture2dArray>(...args: Gather2dArrayArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
83
- <T extends textureCube>(...args: GatherCubeArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
84
- <T extends textureCubeArray>(...args: GatherCubeArrayArgs<T>): PrimitiveToLoadedType[T[typeof $internal]['type']];
85
- (...args: GatherDepth2dArgs): v4f;
86
- (...args: GatherDepth2dArrayArgs): v4f;
87
- (...args: GatherDepthCubeArgs): v4f;
88
- (...args: GatherDepthCubeArrayArgs): v4f;
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 textureGather: DualFn<TextureGatherCpuFn>;
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
- //#endregion
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 {};