ludic/changes/os-platform-once.md
Orkuncakilkaya 0141f99dd1 Os.platform/arch uname once; render3d primes a new buffer's Metal buffer
lp_os_platform and lp_os_arch malloc'd 8 KB per call (the uname buffer) and kept none of it:
string_temps now asks both every round, 327 MB over 20,000 before, 0 after. Reseeded. render3d:
MoltenVK made a mapped buffer's MTLBuffer at its first bind (fn_gvk_draw +4 blocks in the boat
window); gvk_buf_reserve queues it and the next frame's command buffer copies 4 bytes out of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 13:34:45 +03:00

299 B

bump: patch type: fix Os.platform() and Os.arch() allocate nothing after the first call. Each call malloc'd an 8 KB uname buffer and let it go, and a game asks the platform every frame in places (a launcher's wait, an update panel, a renderer's present). The buffer is made once and kept.