async runner order adjustment
authorhgn <hgodden00@gmail.com>
Fri, 8 Dec 2023 13:39:57 +0000 (13:39 +0000)
committerhgn <hgodden00@gmail.com>
Fri, 8 Dec 2023 13:39:57 +0000 (13:39 +0000)
vg.h
vg_loader.h
vg_mem.h

diff --git a/vg.h b/vg.h
index 753da33dd706027392d6e5f2828587dd433f4323..9f7ebe89f48efaca5200b57ca65a1820570efe42 100644 (file)
--- 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 )
index 206e1d8d3d260bca469f1343d32d4b85904d5955..c633ff907f0182f3ef81fcd725e570a72860ff60 100644 (file)
@@ -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 */
index be11ddd2ef4ce43741b1d23f89eb1718c9a4680f..9b104f1186af0cdc26e16ade54527838d8c5fd44 100644 (file)
--- 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 */