From 934ae0807c049da2f4a66686c76ad5ef3867f7ef Mon Sep 17 00:00:00 2001 From: hgn Date: Fri, 8 Dec 2023 13:39:57 +0000 Subject: [PATCH] async runner order adjustment --- vg.h | 4 +++- vg_loader.h | 15 +++++++++++++-- vg_mem.h | 4 ++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/vg.h b/vg.h index 753da33..9f7ebe8 100644 --- a/vg.h +++ b/vg.h @@ -305,6 +305,8 @@ static void _vg_load_full( void *data ) /* client */ vg_load(); + + vg_success( "Client loaded in %fs\n", vg.time_real ); } static void _vg_process_events(void) @@ -593,6 +595,7 @@ static void _vg_gameloop(void){ double dt = (double)udt / (double)SDL_GetPerformanceFrequency(); vg.time_frame_delta += dt; + vg_run_async_checked(); if( vg_framefilter( dt ) ) continue; @@ -607,7 +610,6 @@ static void _vg_gameloop(void){ vg.time_delta = vg.time_frame_delta * vg.time_rate; vg.time += vg.time_delta; - vg_run_async_checked(); _vg_process_events(); if( vg.window_should_close ) diff --git a/vg_loader.h b/vg_loader.h index 206e1d8..c633ff9 100644 --- a/vg_loader.h +++ b/vg_loader.h @@ -225,11 +225,19 @@ static void vg_loader_start( void(*pfn)(void *data), void *data ) /* * Schedule something to be ran now, freed later. Checks in with engine status */ -static void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) ) -{ +static void _vg_loader_step( void( *fn_load )(void), void( *fn_free )(void), + const char *alias ){ + + u64 t0 = SDL_GetPerformanceCounter(); + vg.time_hp_last = vg.time_hp; + if( fn_load ) fn_load(); + u64 udt = SDL_GetPerformanceCounter() - t0; + double dt = (double)udt / (double)SDL_GetPerformanceFrequency(); + vg_info( "ltime [%p] %s: %fs\n", fn_load, alias, dt ); + if( fn_free ){ struct loader_free_step step; step.fn_free = fn_free; @@ -243,4 +251,7 @@ static void vg_loader_step( void( *fn_load )(void), void( *fn_free )(void) ) /* TODO: There was a quit checker here, re-add this? */ } +#define vg_loader_step( FN, FN_FREE )\ + _vg_loader_step( FN, FN_FREE, #FN ) + #endif /* VG_LOADER_H */ diff --git a/vg_mem.h b/vg_mem.h index be11ddd..9b104f1 100644 --- a/vg_mem.h +++ b/vg_mem.h @@ -278,7 +278,7 @@ static void *_vg_linear_extend( void *buffer, void *data, u32 extra, const char *constr_name ) { if( !data ) - return _vg_linear_alloc( buffer, extra, constr_name ); + return _vg_linear_alloc( buffer, vg_align8(extra), constr_name ); vg_linear_allocator *alloc = vg_linear_header( buffer ); @@ -286,7 +286,7 @@ static void *_vg_linear_extend( void *buffer, void *data, u32 extra, vg_fatal_error( "This block has been fixed!" ); u32 new_size = alloc->last_alloc_size + extra; - return vg_linear_resize( buffer, data, new_size ); + return vg_linear_resize( buffer, data, vg_align8(new_size) ); } /* get the current usage of allocator */ -- 2.25.1