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:
parent
edb33400b3
commit
df6ea046c3
10 changed files with 266 additions and 52 deletions
|
|
@ -30,6 +30,11 @@ import "vk_api.ludic"
|
|||
extern function vk_frame_pool() = "lvk_frame_pool"
|
||||
# malloc's live bytes (macOS; 0 elsewhere): a test that a path allocates nothing, frame after frame
|
||||
extern function vk_heap_bytes() -> long = "lvk_heap_bytes"
|
||||
# the VkAllocationCallbacks that count MoltenVK's host allocations (memory plan 25.1c; null on
|
||||
# Windows), and what they count: live bytes now, and per VkSystemAllocationScope
|
||||
extern function vk_alloc_callbacks() -> pointer = "lvk_ac_ptr"
|
||||
extern function vk_alloc_bytes() -> long = "lvk_ac_bytes"
|
||||
extern function vk_alloc_scope_bytes(scope: int) -> long = "lvk_ac_scope_bytes"
|
||||
extern function vk_sl_prefer(on: int) = "lvk_sl_prefer"
|
||||
extern function vk_sl_active() -> int = "lvk_sl_active"
|
||||
extern function vk_sl_init(pref: pointer, sdk_version: long) -> int = "lsl_slInit"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue