ludic/packages/ludic.physics/tests
Orkuncakilkaya b368912c78 nav, physics: Recast's and Detour's memory counted (nav_heap_bytes / _peak / _allocs, a counted allocator registered at load, tile bytes staged from it); package tests that crossing the map and back holds the native bytes
The user's walk showed the footprint rising outside the Ludic heap. Jolt's bytes were already counted;
the navmesh's were not, so nothing could see them. Now:
- ludic.nav nav_heap_test: fifty crossings of a four-tile map by the resident index hold the tiles in and
  the native bytes to the first crossing's; a thousand crowd walkers in and out grow nothing; a reset
  gives back every byte the mesh took.
- ludic.physics cross_heap_test: a 1 km map of 64 m chunks kept to a ring round a player crossing
  corner to corner and back, each chunk a heightfield, twelve owned posts and six owned scaled hulls
  as the game makes them: six more crossings hold the bodies, the shapes and Jolt's bytes and peak
  exactly. (A post made as an offset of a cylinder, with only the offset owned, leaked the cylinder
  every time: the game's solid_pillar owns its cylinder directly.)

lib/macos-arm64 rebuilt; lib/windows-x64 needs native/build.sh run on the PC for the new exports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:32:18 +03:00
..
cross_heap_test.ludic nav, physics: Recast's and Detour's memory counted (nav_heap_bytes / _peak / _allocs, a counted allocator registered at load, tile bytes staged from it); package tests that crossing the map and back holds the native bytes 2026-09-29 13:32:18 +03:00
hull_shape_test.ludic ludic.physics: queries fill a record the caller keeps, and allocate nothing 2026-09-27 23:18:26 +03:00
jolt_heap_test.ludic feat(ludic.physics): Jolt's heap counted in the shim (plan 25) - jph_heap_bytes/peak/allocs, phys_heap_bytes/peak/allocs 2026-09-28 15:49:38 +03:00
motion_test.ludic ludic.physics: queries fill a record the caller keeps, and allocate nothing 2026-09-27 23:18:26 +03:00
physics_test.ludic ludic.physics: queries fill a record the caller keeps, and allocate nothing 2026-09-27 23:18:26 +03:00
reuse_test.ludic feat(ludic.physics): phys_own - a body owns a shape made for it alone, and phys_remove frees it with the body 2026-09-28 13:59:25 +03:00
shape_free_test.ludic feat(ludic.physics): phys_shape_free - a shape let go hands its id to the next, so a ground by chunk grows nothing (23.5) 2026-09-28 11:43:40 +03:00
walker_test.ludic ludic.physics: queries fill a record the caller keeps, and allocate nothing 2026-09-27 23:18:26 +03:00