render3d: frame keeps 32 to 16 - tables and queues sized at start-up, the rest declared; birth leaks freed
The texture and framebuffer tables grow to 4096/1024 and gvk_prime's queue is made in gvk_startup_state; gpu_unit_2d's and the actor lists' lazy starts go. @alloc_ok on layer_room (a layer outgrowing its cap), overlay_init, gvk_read_screen, gvk_hdr_metadata (a settings change), DLSS's gsl_struct/gsl_fn, an actor's part tables (given back by actor_release) and the pool's fallback. Birth leaks freed: gpu_caps_probe's create structs, gpu_caps_fake's text, gvk_note's line, gvk_layout_key's table and each key it grew from, ov_text_wrap's slices, the default sky path. (ludic deps --births still lists freed sites: its walk does not see free().) Compiled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6fb5118afd
commit
46000362ba
9 changed files with 60 additions and 20 deletions
|
|
@ -100,9 +100,16 @@ function r3d_load_count() -> int { return 4 + TERRAIN_INIT_STEPS }
|
|||
function r3d_load_step(render3d_st: mut Render3dState, i: int) -> bool {
|
||||
let t = i - 1
|
||||
if i == 0 {
|
||||
var sky = render3d_st.r3d_assets + "/hdri/kloofendal_48d_partly_cloudy_puresky_4k.hdr"
|
||||
if render3d_st.r3d_sky_path != null { sky = render3d_st.r3d_sky_path }
|
||||
if not sky_load(render3d_st, sky) { return false }
|
||||
# the default sky's path is made only when no path was given, and goes once the sky is read
|
||||
var sky = render3d_st.r3d_sky_path
|
||||
var made: string = null
|
||||
if sky == null {
|
||||
made = render3d_st.r3d_assets + "/hdri/kloofendal_48d_partly_cloudy_puresky_4k.hdr"
|
||||
sky = made
|
||||
}
|
||||
let got = sky_load(render3d_st, sky)
|
||||
if made != null { free(made) }
|
||||
if not got { return false }
|
||||
daylight_init(render3d_st)
|
||||
} else if t >= 0 and t < TERRAIN_INIT_STEPS {
|
||||
if render3d_st.r3d_plate { return true }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue