render3d: VkAllocationCallbacks counted (R3D_ALLOC_VK), pipeline create infos freed, actor pool at init

Plan 25.1c: vk_mac.ll's @lvk_ac (posix_memalign under a 16-byte header of scope/offset/size, atomic
counters) passed at every render3d create/destroy (49 sites; the caps probe keeps its own null pair);
lvk_ac_bytes/_peak/_allocs/_scope_bytes for the fence, Vk.alloc_bytes. vk_win.ll: null and 0.
MoltenVK 1.4.2 counted 0 live bytes through them in steady. Fence findings: gvk_pipeline freed its 17
create infos (and reuses one bufs list); actor_init fills ac_spare with 512 records (actor_fresh,
m4_new, v3_new at first placement in play). Compiled, not run (the user's call).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-28 15:46:19 +03:00
parent edb33400b3
commit df6ea046c3
10 changed files with 266 additions and 52 deletions

View file

@ -375,3 +375,26 @@ define i64 @lvk_heap_bytes() {
entry:
ret i64 0
}
; VkAllocationCallbacks (memory plan 25.1c): not measured on Windows yet - render3d gets null and
; passes it, and the fence reads 0 (the residual there is a later step).
define ptr @lvk_ac_ptr() {
entry:
ret ptr null
}
define i64 @lvk_ac_bytes() {
entry:
ret i64 0
}
define i64 @lvk_ac_peak() {
entry:
ret i64 0
}
define i64 @lvk_ac_allocs() {
entry:
ret i64 0
}
define i64 @lvk_ac_scope_bytes(i32 %scope) {
entry:
ret i64 0
}