Skip to content

impr: Use named tgpu export#2610

Draft
aleksanderkatan wants to merge 7 commits into
mainfrom
impr/default-export
Draft

impr: Use named tgpu export#2610
aleksanderkatan wants to merge 7 commits into
mainfrom
impr/default-export

Conversation

@aleksanderkatan

@aleksanderkatan aleksanderkatan commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

After just replacing the imports, I had some issues with tgpu['~unstable'].

This was fine:

import type { IndexFlag } from 'typegpu';
import { tgpu } from 'typegpu';
const _ = tgpu['~unstable'];

This linted tgpu['~unstable'] as 'Unable to validate computed reference to imported namespace "tgpu".'

import { tgpu } from 'typegpu';
const _ = tgpu['~unstable'];

So I disabled the rule that reported this.

Also, I added an internal lint rule against import tgpu so that we don't use it on autopilot.

@aleksanderkatan aleksanderkatan linked an issue Jun 15, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/typegpu@6a80c2fdff76b3f91635d8bd946ca8ee2024f128
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@6a80c2fdff76b3f91635d8bd946ca8ee2024f128
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@6a80c2fdff76b3f91635d8bd946ca8ee2024f128
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@6a80c2fdff76b3f91635d8bd946ca8ee2024f128
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@6a80c2fdff76b3f91635d8bd946ca8ee2024f128

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
1 319 0 0

import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):

Click to reveal the results table (297 entries).
Test tsdown
d_Void.ts 87.36 kB ($${\color{red}+12087.6\%}$$)
d_sampler.ts 87.36 kB ($${\color{red}+11956.6\%}$$)
d_isPtr.ts 87.36 kB ($${\color{red}+11796.0\%}$$)
d_comparisonSampler.ts 87.37 kB ($${\color{red}+11781.8\%}$$)
d_isSizeAttrib.ts 87.37 kB ($${\color{red}+11765.4\%}$$)
d_isWgslArray.ts 87.37 kB ($${\color{red}+11765.3\%}$$)
d_isAlignAttrib.ts 87.37 kB ($${\color{red}+11749.8\%}$$)
d_isWgslStruct.ts 87.37 kB ($${\color{red}+11749.7\%}$$)
d_isAtomic.ts 87.36 kB ($${\color{red}+11749.1\%}$$)
d_isBuiltinAttrib.ts 87.37 kB ($${\color{red}+11718.8\%}$$)
d_isLocationAttrib.ts 87.37 kB ($${\color{red}+11703.3\%}$$)
d_isDecorated.ts 87.37 kB ($${\color{red}+11702.6\%}$$)
d_isInterpolateAttrib.ts 87.38 kB ($${\color{red}+11657.2\%}$$)
d_atomic.ts 87.36 kB ($${\color{red}+11383.8\%}$$)
d_ptrHandle.ts 87.37 kB ($${\color{red}+10412.6\%}$$)
d_ptrUniform.ts 87.37 kB ($${\color{red}+10400.4\%}$$)
d_ptrStorage.ts 87.37 kB ($${\color{red}+10351.3\%}$$)
d_ptrPrivate.ts 87.37 kB ($${\color{red}+10326.9\%}$$)
d_ptrFn.ts 87.36 kB ($${\color{red}+10314.2\%}$$)
d_ptrWorkgroup.ts 87.37 kB ($${\color{red}+10302.9\%}$$)
d_textureExternal.ts 87.37 kB ($${\color{red}+10148.3\%}$$)
d_textureStorage1d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage2d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage3d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage2dArray.ts 87.38 kB ($${\color{red}+8380.9\%}$$)
d_isDisarray.ts 87.37 kB ($${\color{red}+7754.5\%}$$)
d_isUnstruct.ts 87.37 kB ($${\color{red}+7754.5\%}$$)
d_isLooseDecorated.ts 87.37 kB ($${\color{red}+7707.1\%}$$)
d_isLooseData.ts 87.37 kB ($${\color{red}+7443.3\%}$$)
d_isWgslData.ts 87.37 kB ($${\color{red}+6566.4\%}$$)
d_unstruct.ts 87.36 kB ($${\color{red}+5544.2\%}$$)
d_isData.ts 87.36 kB ($${\color{red}+4733.0\%}$$)
d_deepEqual.ts 87.37 kB ($${\color{red}+3884.9\%}$$)
d_struct.ts 87.36 kB ($${\color{red}+2323.7\%}$$)
d_ref.ts 87.36 kB ($${\color{red}+1724.5\%}$$)
std_discard.ts 103.09 kB ($${\color{red}+626.6\%}$$)
std_copy.ts 103.09 kB ($${\color{red}+614.4\%}$$)
std_arrayLength.ts 103.10 kB ($${\color{red}+614.2\%}$$)
std_isBeingTranspiled.ts 103.10 kB ($${\color{red}+612.7\%}$$)
std_getTargetShaderLanguage.ts 103.11 kB ($${\color{red}+609.5\%}$$)
std_extensionEnabled.ts 103.10 kB ($${\color{red}+607.0\%}$$)
std_range.ts 103.09 kB ($${\color{red}+594.2\%}$$)
std_dpdx.ts 103.09 kB ($${\color{red}+585.8\%}$$)
std_fwidthCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdxCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdyCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_fwidthFine.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdxFine.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_dpdyFine.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_fwidth.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_dpdy.ts 103.09 kB ($${\color{red}+585.6\%}$$)
d_bool.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_f16.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_f32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_i32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_u32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_u16.ts 87.36 kB ($${\color{red}+572.1\%}$$)
std_atomicLoad.ts 103.10 kB ($${\color{red}+553.0\%}$$)
std_textureBarrier.ts 103.10 kB ($${\color{red}+552.8\%}$$)
std_atomicStore.ts 103.10 kB ($${\color{red}+552.8\%}$$)
std_workgroupBarrier.ts 103.10 kB ($${\color{red}+552.5\%}$$)
std_storageBarrier.ts 103.10 kB ($${\color{red}+552.5\%}$$)
std_atomicAdd.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicAnd.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicMax.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicMin.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicSub.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicXor.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicOr.ts 103.09 kB ($${\color{red}+552.5\%}$$)
d_textureDepth2d.ts 87.37 kB ($${\color{red}+551.1\%}$$)
d_textureDepthCube.ts 87.37 kB ($${\color{red}+550.9\%}$$)
d_texture1d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_texture2d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_texture3d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_textureDepth2dArray.ts 87.38 kB ($${\color{red}+550.3\%}$$)
d_textureCube.ts 87.37 kB ($${\color{red}+550.3\%}$$)
d_textureDepthCubeArray.ts 87.38 kB ($${\color{red}+550.1\%}$$)
d_textureDepthMultisampled2d.ts 87.38 kB ($${\color{red}+550.0\%}$$)
d_texture2dArray.ts 87.37 kB ($${\color{red}+549.8\%}$$)
d_textureCubeArray.ts 87.37 kB ($${\color{red}+549.5\%}$$)
d_textureMultisampled2d.ts 87.38 kB ($${\color{red}+549.4\%}$$)
d_disarrayOf.ts 87.37 kB ($${\color{red}+481.7\%}$$)
d_vec2b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
std_subgroupAdd.ts 103.10 kB ($${\color{red}+329.9\%}$$)
std_subgroupBroadcastFirst.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupExclusiveAdd.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupExclusiveMul.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupInclusiveAdd.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupInclusiveMul.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleDown.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleXor.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupBroadcast.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleUp.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffle.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupBallot.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupElect.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAll.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAnd.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAny.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMax.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMin.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMul.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupXor.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupOr.ts 103.10 kB ($${\color{red}+329.8\%}$$)
d_formatToWGSLType.ts 87.37 kB ($${\color{red}+318.1\%}$$)
d_uint8.ts 87.36 kB ($${\color{red}+318.0\%}$$)
d_unorm10_10_10_2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm8x4_bgra.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x3.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_snorm16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_snorm16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_sint16x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint16x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x3.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x3.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_float16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_float32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_packedFormats.ts 87.37 kB ($${\color{red}+317.5\%}$$)
d_isPackedData.ts 87.37 kB ($${\color{red}+316.7\%}$$)
std_textureDimensions.ts 103.10 kB ($${\color{red}+300.6\%}$$)
std_textureGather.ts 103.10 kB ($${\color{red}+300.6\%}$$)
std_textureSampleBaseClampToEdge.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleCompareLevel.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleCompare.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleLevel.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSampleBias.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSampleGrad.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSample.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureStore.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureLoad.ts 103.10 kB ($${\color{red}+300.5\%}$$)
d_alignmentOf.ts 87.37 kB ($${\color{red}+299.8\%}$$)
std_translation4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationX4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationY4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationZ4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_identity2.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_identity3.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_identity4.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_scaling4.ts 103.09 kB ($${\color{red}+282.0\%}$$)
d_isBuiltin.ts 87.37 kB ($${\color{red}+255.5\%}$$)
d_sizeOf.ts 87.36 kB ($${\color{red}+254.8\%}$$)
d_isContiguous.ts 87.37 kB ($${\color{red}+254.7\%}$$)
d_getLongestContiguousPrefix.ts 87.38 kB ($${\color{red}+254.6\%}$$)
d_arrayOf.ts 87.36 kB ($${\color{red}+233.8\%}$$)
d_size.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_align.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_location.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_interpolate.ts 87.37 kB ($${\color{red}+232.0\%}$$)
d_invariant.ts 87.37 kB ($${\color{red}+227.4\%}$$)
d_mat4x4f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_mat2x2f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_mat3x3f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_matToArray.ts 87.37 kB ($${\color{red}+222.1\%}$$)
d_builtin.ts 87.36 kB ($${\color{red}+205.1\%}$$)
std_unpack2x16float.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_unpack4x8unorm.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_pack2x16float.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_pack4x8unorm.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_bitcastU32toF32.ts 103.10 kB ($${\color{red}+133.3\%}$$)
std_bitcastU32toI32.ts 103.10 kB ($${\color{red}+133.3\%}$$)
std_neg.ts 103.09 kB ($${\color{red}+113.2\%}$$)
std_bitShiftRight.ts 103.10 kB ($${\color{red}+113.2\%}$$)
std_bitShiftLeft.ts 103.10 kB ($${\color{red}+113.2\%}$$)
std_add.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_div.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_mod.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_mul.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_sub.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_translate4.ts 103.10 kB ($${\color{red}+109.9\%}$$)
std_rotateX4.ts 103.09 kB ($${\color{red}+109.9\%}$$)
std_scale4.ts 103.09 kB ($${\color{red}+109.9\%}$$)
std_rotateY4.ts 103.09 kB ($${\color{red}+109.8\%}$$)
std_rotateZ4.ts 103.09 kB ($${\color{red}+109.8\%}$$)
d_memoryLayoutOf.ts 87.37 kB ($${\color{red}+108.3\%}$$)
std_and.ts 103.09 kB ($${\color{red}+99.3\%}$$)
std_or.ts 103.09 kB ($${\color{red}+99.3\%}$$)
std_select.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_any.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_ge.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_gt.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_le.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_dot4U8Packed.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_firstLeadingBit.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_fract.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_frexp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_modf.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_quantizeToF16.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_mix.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countOneBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_dot4I8Packed.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_determinant.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_extractBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_faceForward.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_inverseSqrt.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_reverseBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_insertBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_smoothstep.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_normalize.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_transpose.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_saturate.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_degrees.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_radians.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_reflect.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_refract.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_acosh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_asinh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atan2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atanh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_clamp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cross.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_floor.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_ldexp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_round.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_trunc.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_acos.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_asin.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atan.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_ceil.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cosh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_exp2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_log2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sign.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sinh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sqrt.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_step.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_tanh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_abs.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cos.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_exp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_fma.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_log.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_max.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_min.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_pow.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sin.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_tan.ts 103.09 kB ($${\color{red}+56.2\%}$$)
common_fullScreenTriangle.ts 56.66 kB ($${\color{red}+42.1\%}$$)
common_writeSoA.ts 56.65 kB ($${\color{red}+37.5\%}$$)
STATIC_allImports.ts 286.38 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.36 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.08 kB ($${\color{green}-2.7\%}$$)

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [1.00, 2.08, 4.63, 6.80, 7.55, 12.04, 22.88, 25.43]
  line [0.97, 2.14, 4.36, 6.97, 7.62, 11.51, 23.24, 25.77]
  line [0.98, 1.97, 4.58, 6.46, 7.69, 10.09, 21.93, 23.10]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.37, 0.56, 0.74, 0.93, 1.25, 1.29, 1.54, 1.64]
  line [0.31, 0.54, 0.71, 0.85, 1.15, 1.24, 1.51, 1.68]
  line [0.28, 0.52, 0.74, 0.90, 1.15, 1.22, 1.43, 1.66]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [1.05, 2.34, 5.03, 7.76, 13.46, 27.99, 57.05, 117.80]
  line [0.85, 2.14, 4.10, 6.42, 13.00, 26.59, 57.27, 118.03]
  line [0.87, 1.98, 4.20, 6.32, 12.49, 25.61, 57.89, 114.79]
Loading

@aleksanderkatan aleksanderkatan requested a review from Copilot June 15, 2026 10:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@aleksanderkatan

Copy link
Copy Markdown
Contributor Author

@pullfrog review

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ One naming suggestion inline — otherwise the import migration is clean and all checks pass.

Reviewed changes — This PR migrates internal and documentation usage of TypeGPU from the default import import tgpu to the named import import { tgpu }, and adds an internal ESLint rule to enforce the new style going forward.

  • Migrate all consumers to import { tgpu } from 'typegpu' across docs, examples, tests, internal packages, and tooling.
  • Add eslint-plugin-internal/no-tgpu-namespace-import to flag default imports of tgpu.
  • Disable eslint-plugin-import/namespace in oxlint.config.ts to avoid false positives on tgpu['~unstable'] computed namespace access.
  • Update unplugin test snapshots and the treeshake-test fixtures to use the named import form.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

import { createRule } from '../ruleCreator.ts';

export const noTgpuNamespaceImport = createRule({
name: 'no-tgpu-namespace-import',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ The rule name no-tgpu-namespace-import suggests it forbids import * as tgpu from 'typegpu', but the implementation actually flags the default import form import tgpu from 'typegpu'. Consider renaming it to no-tgpu-default-import (and the constant/file/test to noTgpuDefaultImport) to match ESLint naming conventions and avoid future confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

impr: Default export

2 participants