Skip to content

feat: Export internals from 'typegpu/~internal'#2657

Merged
iwoplaza merged 1 commit into
mainfrom
feat/export-internals
Jun 30, 2026
Merged

feat: Export internals from 'typegpu/~internal'#2657
iwoplaza merged 1 commit into
mainfrom
feat/export-internals

Conversation

@iwoplaza

Copy link
Copy Markdown
Collaborator

No description provided.

@iwoplaza

Copy link
Copy Markdown
Collaborator Author

@pullfrog Review this 🙏

@github-actions

github-actions Bot commented Jun 29, 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@2379a22f00a03125d9be891067f43de28ecaece5
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@2379a22f00a03125d9be891067f43de28ecaece5
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@2379a22f00a03125d9be891067f43de28ecaece5
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@2379a22f00a03125d9be891067f43de28ecaece5
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@2379a22f00a03125d9be891067f43de28ecaece5

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

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

🟢 Decreased (max -0.00%) ➖ Unchanged 🔴 Increased ❔ Unknown
21 299 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.41 kB ($${\color{red}+12094.3\%}$$)
d_sampler.ts 87.41 kB ($${\color{red}+11963.2\%}$$)
d_isPtr.ts 87.41 kB ($${\color{red}+11802.5\%}$$)
d_comparisonSampler.ts 87.42 kB ($${\color{red}+11788.3\%}$$)
d_isSizeAttrib.ts 87.42 kB ($${\color{red}+11771.9\%}$$)
d_isWgslArray.ts 87.42 kB ($${\color{red}+11771.8\%}$$)
d_isAlignAttrib.ts 87.42 kB ($${\color{red}+11756.3\%}$$)
d_isWgslStruct.ts 87.42 kB ($${\color{red}+11756.2\%}$$)
d_isAtomic.ts 87.41 kB ($${\color{red}+11755.6\%}$$)
d_isBuiltinAttrib.ts 87.42 kB ($${\color{red}+11725.2\%}$$)
d_isLocationAttrib.ts 87.42 kB ($${\color{red}+11709.8\%}$$)
d_isDecorated.ts 87.42 kB ($${\color{red}+11709.1\%}$$)
d_isInterpolateAttrib.ts 87.42 kB ($${\color{red}+11663.6\%}$$)
d_atomic.ts 87.41 kB ($${\color{red}+11390.1\%}$$)
d_ptrHandle.ts 87.41 kB ($${\color{red}+10418.3\%}$$)
d_ptrUniform.ts 87.41 kB ($${\color{red}+10406.1\%}$$)
d_ptrStorage.ts 87.41 kB ($${\color{red}+10357.0\%}$$)
d_ptrPrivate.ts 87.41 kB ($${\color{red}+10332.6\%}$$)
d_ptrFn.ts 87.41 kB ($${\color{red}+10319.9\%}$$)
d_ptrWorkgroup.ts 87.42 kB ($${\color{red}+10308.6\%}$$)
d_textureExternal.ts 87.42 kB ($${\color{red}+10154.0\%}$$)
d_textureStorage1d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage3d.ts 87.42 kB ($${\color{red}+8532.4\%}$$)
d_textureStorage2dArray.ts 87.42 kB ($${\color{red}+8385.6\%}$$)
d_isDisarray.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isUnstruct.ts 87.41 kB ($${\color{red}+7758.8\%}$$)
d_isLooseDecorated.ts 87.42 kB ($${\color{red}+7711.3\%}$$)
d_isLooseData.ts 87.42 kB ($${\color{red}+7447.5\%}$$)
d_isWgslData.ts 87.41 kB ($${\color{red}+6570.0\%}$$)
d_unstruct.ts 87.41 kB ($${\color{red}+5547.3\%}$$)
d_isData.ts 87.41 kB ($${\color{red}+4735.7\%}$$)
d_deepEqual.ts 87.41 kB ($${\color{red}+3887.1\%}$$)
d_struct.ts 87.41 kB ($${\color{red}+2325.0\%}$$)
d_ref.ts 87.41 kB ($${\color{red}+1725.5\%}$$)
std_discard.ts 103.15 kB ($${\color{red}+624.8\%}$$)
std_copy.ts 103.14 kB ($${\color{red}+612.6\%}$$)
std_arrayLength.ts 103.15 kB ($${\color{red}+612.4\%}$$)
std_isBeingTranspiled.ts 103.16 kB ($${\color{red}+610.9\%}$$)
std_getTargetShaderLanguage.ts 103.16 kB ($${\color{red}+607.7\%}$$)
std_extensionEnabled.ts 103.16 kB ($${\color{red}+605.2\%}$$)
std_range.ts 103.14 kB ($${\color{red}+592.5\%}$$)
std_dpdx.ts 103.14 kB ($${\color{red}+584.2\%}$$)
std_fwidthCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyCoarse.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidthFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdxFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_dpdyFine.ts 103.15 kB ($${\color{red}+584.0\%}$$)
std_fwidth.ts 103.15 kB ($${\color{red}+583.9\%}$$)
std_dpdy.ts 103.14 kB ($${\color{red}+583.9\%}$$)
d_bool.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f16.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_f32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_i32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u32.ts 87.41 kB ($${\color{red}+571.4\%}$$)
d_u16.ts 87.41 kB ($${\color{red}+570.2\%}$$)
std_atomicLoad.ts 103.15 kB ($${\color{red}+551.5\%}$$)
std_textureBarrier.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_atomicStore.ts 103.15 kB ($${\color{red}+551.3\%}$$)
std_workgroupBarrier.ts 103.16 kB ($${\color{red}+551.1\%}$$)
std_storageBarrier.ts 103.15 kB ($${\color{red}+551.1\%}$$)
std_atomicAdd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicAnd.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMax.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicMin.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicSub.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicXor.ts 103.15 kB ($${\color{red}+551.0\%}$$)
std_atomicOr.ts 103.15 kB ($${\color{red}+551.0\%}$$)
d_textureDepth2d.ts 87.42 kB ($${\color{red}+549.4\%}$$)
d_textureDepthCube.ts 87.42 kB ($${\color{red}+549.1\%}$$)
d_texture1d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture2d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_texture3d.ts 87.41 kB ($${\color{red}+548.8\%}$$)
d_textureDepth2dArray.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureCube.ts 87.42 kB ($${\color{red}+548.6\%}$$)
d_textureDepthCubeArray.ts 87.42 kB ($${\color{red}+548.3\%}$$)
d_textureDepthMultisampled2d.ts 87.43 kB ($${\color{red}+548.2\%}$$)
d_texture2dArray.ts 87.42 kB ($${\color{red}+548.0\%}$$)
d_textureCubeArray.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_textureMultisampled2d.ts 87.42 kB ($${\color{red}+547.7\%}$$)
d_disarrayOf.ts 87.41 kB ($${\color{red}+480.3\%}$$)
d_vec2b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec2u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec3u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4b.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4f.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4h.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4i.ts 87.41 kB ($${\color{red}+349.4\%}$$)
d_vec4u.ts 87.41 kB ($${\color{red}+349.4\%}$$)
std_subgroupAdd.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcastFirst.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupExclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveAdd.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupInclusiveMul.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleDown.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleXor.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupBroadcast.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffleUp.ts 103.16 kB ($${\color{red}+329.3\%}$$)
std_subgroupShuffle.ts 103.15 kB ($${\color{red}+329.3\%}$$)
std_subgroupBallot.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupElect.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAll.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAnd.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupAny.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMax.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMin.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupMul.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupXor.ts 103.15 kB ($${\color{red}+329.2\%}$$)
std_subgroupOr.ts 103.15 kB ($${\color{red}+329.2\%}$$)
d_formatToWGSLType.ts 87.42 kB ($${\color{red}+317.5\%}$$)
d_uint8.ts 87.41 kB ($${\color{red}+317.3\%}$$)
d_unorm10_10_10_2.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_unorm8x4_bgra.ts 87.42 kB ($${\color{red}+317.3\%}$$)
d_float16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x3.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_float32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x2.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint8x4.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_snorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint16.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_uint32.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_unorm8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_sint8.ts 87.41 kB ($${\color{red}+317.2\%}$$)
d_packedFormats.ts 87.42 kB ($${\color{red}+316.9\%}$$)
d_isPackedData.ts 87.42 kB ($${\color{red}+316.0\%}$$)
std_textureDimensions.ts 103.16 kB ($${\color{red}+300.1\%}$$)
std_textureGather.ts 103.15 kB ($${\color{red}+300.1\%}$$)
std_textureSampleBaseClampToEdge.ts 103.17 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompareLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleCompare.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleLevel.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleBias.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSampleGrad.ts 103.16 kB ($${\color{red}+300.0\%}$$)
std_textureSample.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureStore.ts 103.15 kB ($${\color{red}+300.0\%}$$)
std_textureLoad.ts 103.15 kB ($${\color{red}+300.0\%}$$)
d_alignmentOf.ts 87.42 kB ($${\color{red}+299.2\%}$$)
std_translation4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationX4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationY4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_rotationZ4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity2.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity3.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_identity4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
std_scaling4.ts 103.15 kB ($${\color{red}+281.6\%}$$)
d_isBuiltin.ts 87.41 kB ($${\color{red}+255.1\%}$$)
d_sizeOf.ts 87.41 kB ($${\color{red}+254.4\%}$$)
d_isContiguous.ts 87.42 kB ($${\color{red}+254.3\%}$$)
d_getLongestContiguousPrefix.ts 87.43 kB ($${\color{red}+254.2\%}$$)
d_arrayOf.ts 87.41 kB ($${\color{red}+233.4\%}$$)
d_size.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_align.ts 87.41 kB ($${\color{red}+231.7\%}$$)
d_location.ts 87.41 kB ($${\color{red}+231.6\%}$$)
d_interpolate.ts 87.42 kB ($${\color{red}+231.6\%}$$)
d_invariant.ts 87.41 kB ($${\color{red}+227.0\%}$$)
d_mat4x4f.ts 87.41 kB ($${\color{red}+223.4\%}$$)
d_mat2x2f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_mat3x3f.ts 87.41 kB ($${\color{red}+223.3\%}$$)
d_matToArray.ts 87.41 kB ($${\color{red}+221.8\%}$$)
d_builtin.ts 87.41 kB ($${\color{red}+204.8\%}$$)
std_unpack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_unpack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack2x16float.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_pack4x8unorm.ts 103.15 kB ($${\color{red}+186.6\%}$$)
std_bitcastU32toF32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_bitcastU32toI32.ts 103.15 kB ($${\color{red}+133.2\%}$$)
std_neg.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_bitShiftRight.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_bitShiftLeft.ts 103.15 kB ($${\color{red}+113.1\%}$$)
std_add.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_div.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mod.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_mul.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_sub.ts 103.14 kB ($${\color{red}+113.1\%}$$)
std_translate4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateX4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_scale4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateY4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
std_rotateZ4.ts 103.15 kB ($${\color{red}+109.8\%}$$)
d_memoryLayoutOf.ts 87.42 kB ($${\color{red}+108.2\%}$$)
std_and.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_or.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_select.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.15 kB ($${\color{red}+99.2\%}$$)
std_any.ts 103.14 kB ($${\color{red}+99.2\%}$$)
std_ge.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_gt.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_le.ts 103.14 kB ($${\color{red}+99.1\%}$$)
std_dot4U8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.16 kB ($${\color{red}+56.2\%}$$)
std_firstLeadingBit.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_fract.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_frexp.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_modf.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_quantizeToF16.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_mix.ts 103.14 kB ($${\color{red}+56.2\%}$$)
std_countOneBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_dot4I8Packed.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_determinant.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_extractBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_faceForward.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_inverseSqrt.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reverseBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_insertBits.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_smoothstep.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_normalize.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_transpose.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_saturate.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_degrees.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_radians.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_reflect.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_refract.ts 103.15 kB ($${\color{red}+56.2\%}$$)
std_acosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_clamp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cross.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_floor.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ldexp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_round.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_trunc.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_acos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_asin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_atan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_ceil.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cosh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log2.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sign.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sinh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sqrt.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_step.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tanh.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_abs.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_cos.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_exp.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_fma.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_log.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_max.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_min.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_pow.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_sin.ts 103.14 kB ($${\color{red}+56.1\%}$$)
std_tan.ts 103.14 kB ($${\color{red}+56.1\%}$$)
common_fullScreenTriangle.ts 57.18 kB ($${\color{red}+41.5\%}$$)
common_writeSoA.ts 57.17 kB ($${\color{red}+38.6\%}$$)
STATIC_allImports.ts 287.20 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.40 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.14 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 29, 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 [0.97, 1.94, 4.36, 6.67, 7.45, 11.90, 22.40, 26.19]
  line [0.94, 1.94, 4.18, 7.08, 7.99, 11.65, 22.51, 23.02]
  line [1.00, 2.00, 4.27, 6.55, 7.98, 11.62, 22.18, 24.43]
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.34, 0.51, 0.68, 0.84, 1.18, 1.21, 1.47, 1.66]
  line [0.32, 0.52, 0.71, 0.86, 1.23, 1.25, 1.54, 1.63]
  line [0.29, 0.54, 0.71, 0.84, 1.17, 1.28, 1.53, 1.65]
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.06, 2.25, 5.21, 7.53, 13.59, 27.14, 56.11, 115.72]
  line [0.81, 2.15, 4.21, 6.49, 12.72, 26.48, 56.44, 114.42]
  line [1.00, 2.06, 4.37, 6.66, 13.27, 27.62, 59.37, 118.02]
Loading

@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.

Important

The deprecated ShaderGenerator re-export from typegpu no longer preserves the namespace members (e.g. FunctionDefinitionOptions, UnknownData, getName) that the old export exposed. Existing code that accesses them will fail to compile, which contradicts the intent of a graceful deprecation.

Reviewed changes — this PR introduces a new typegpu/~internals subpath export and moves the internal generator types and utilities previously reachable through the top-level ShaderGenerator / WgslGenerator exports there.

  • Adds packages/typegpu/src/internals.ts — a barrel for values and types used by custom generator/back-end code (WGSL, GLSL).
  • Adds ./~internals export in packages/typegpu/package.json and wires it into tsdown.config.ts so it builds and publishes alongside the other subpaths.
  • Deprecates top-level ShaderGenerator and WgslGenerator exports in packages/typegpu/src/indexNamedExports.ts.
  • Removes packages/typegpu/src/tgsl/shaderGenerator_members.ts and folds its interfaces into shaderGenerator.ts, updating all internal importers.
  • Updates typegpu-gl and test utilities to import from typegpu/~internals.

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

Comment thread packages/typegpu/src/indexNamedExports.ts Outdated
@iwoplaza iwoplaza force-pushed the feat/export-internals branch from 6c3fd83 to 5983a7e Compare June 29, 2026 12:29
@iwoplaza iwoplaza changed the title feat: Export internals from 'typegpu/~internals' feat: Export internals from 'typegpu/~internal' Jun 29, 2026
@iwoplaza iwoplaza force-pushed the feat/export-internals branch 2 times, most recently from ee309a1 to 5a79195 Compare June 29, 2026 12:30
@iwoplaza iwoplaza force-pushed the feat/export-internals branch from 5a79195 to ebbcd6a Compare June 30, 2026 10:42
@iwoplaza iwoplaza marked this pull request as ready for review June 30, 2026 10:50

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.

Pull request overview

This PR introduces a new typegpu/~internal entrypoint to expose previously “hidden” generator/data internals for advanced consumers, while refactoring ShaderGenerator option types into a single source and updating internal/test usage accordingly.

Changes:

  • Added a new build entry + package export for typegpu/~internal (src/internal.tsdist/internal.*).
  • Moved FunctionDefinitionOptions / ConstantDefinitionOptions / VariableDefinitionOptions into tgsl/shaderGenerator.ts and removed shaderGenerator_members.ts.
  • Updated tests and typegpu-gl to import internals from typegpu/~internal (and adjusted root exports to deprecate prior access paths).

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/typegpu/tsdown.config.ts Adds src/internal.ts as a build entry so dist/internal.* is produced.
packages/typegpu/tests/utils/parseResolved.ts Switches generator-related imports from root to typegpu/~internal.
packages/typegpu/src/types.ts Converts ShaderGenerator import to type-only to avoid runtime coupling/cycles.
packages/typegpu/src/tgsl/wgslGenerator.ts Imports generator option types from shaderGenerator.ts (single source of truth).
packages/typegpu/src/tgsl/shaderGenerator.ts Defines and exports the option interfaces directly; removes the prior namespace-style re-export.
packages/typegpu/src/tgsl/shaderGenerator_members.ts Removes the old “members” module now that types/exports moved.
packages/typegpu/src/resolutionCtx.ts Sources FunctionArgument from types.ts rather than the removed members file.
packages/typegpu/src/internal.ts New internal barrel for typegpu/~internal exports.
packages/typegpu/src/indexNamedExports.ts Deprecates root-level access for generator exports and adds a few buffer-related exported types.
packages/typegpu/package.json Adds ./~internal export mapping for both source and built outputs.
packages/typegpu-gl/src/tgpuRootWebGL.ts Updates ShaderGenerator import to come from typegpu/~internal.
packages/typegpu-gl/src/glslGenerator.ts Migrates internal generator/data helpers to typegpu/~internal and removes reliance on the prior ShaderGenerator namespace export.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/typegpu/src/internal.ts Outdated

@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.

✅ No new issues found.

Reviewed changes — added a new typegpu/~internal subpath export, moved unstable internals out of the public typegpu entry point, deprecated the old public exports, and migrated WebGL/GLSL + test tooling to the new entry point.

  • Introduced packages/typegpu/src/internal.ts as the new typegpu/~internal barrel for unstable symbols like WgslGenerator, ShaderGenerator types, ResolutionCtx, Snippet, UnknownData, and helper utilities.
  • Updated packages/typegpu/package.json exports to expose ./~internal in dev and publish configurations, plus the corresponding ./~internal/$built$ dev entry consumed by unplugin-typegpu.
  • Inlined shaderGenerator_members.ts into shaderGenerator.ts** and deleted the now-redundant namespace module, simplifying the internal type graph.
  • Deprecated public ShaderGenerator and WgslGenerator exports in indexNamedExports.ts with clear guidance to import from typegpu/~internal instead.
  • Migrated @typegpu/gl and tests/utils/parseResolved.ts to import internals from the new subpath rather than through the public namespace.
  • Added public type exports BufferWriteOptions, BufferInitCallback, and BufferInitialData in indexNamedExports.ts.

Pullfrog  | View workflow run | Using Kimi K2 (free via Pullfrog for OSS) | 𝕏

@iwoplaza iwoplaza force-pushed the feat/export-internals branch from ebbcd6a to 2379a22 Compare June 30, 2026 10:56

@aleksanderkatan aleksanderkatan 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.

Sure!

@iwoplaza iwoplaza merged commit 32fb581 into main Jun 30, 2026
5 checks passed
@iwoplaza iwoplaza deleted the feat/export-internals branch June 30, 2026 11:07
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.

4 participants