diff options
| author | Simon Robertshaw <simon@Simon-Elementary.(none)> | 2011-10-16 23:16:43 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-10-16 23:28:01 (GMT) |
| commit | 7d9d504abfaaf132d831edd23bb225d346f619c8 (patch) | |
| tree | 3f05d56297dd9b35f8b051ce293357fcdca60251 /src/main.c | |
| parent | cae9ad50d0765d9b9ce4a59fb7ac78ae1c59df6a (diff) | |
| download | powder-7d9d504abfaaf132d831edd23bb225d346f619c8.zip powder-7d9d504abfaaf132d831edd23bb225d346f619c8.tar.gz | |
Debug performance/time graph
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 51 |
1 files changed, 50 insertions, 1 deletions
@@ -187,8 +187,13 @@ int frameidx = 0; //int CGOL = 0; //int GSPEED = 1;//causes my .exe to crash.. int sound_enable = 0; -int debug_flags = 0; +int debug_flags = 0; +int debug_perf_istart = 1; +int debug_perf_iend = 0; +long debug_perf_frametime[DEBUG_PERF_FRAMECOUNT]; +long debug_perf_partitime[DEBUG_PERF_FRAMECOUNT]; +long debug_perf_time = 0; sign signs[MAXSIGNS]; @@ -1812,9 +1817,53 @@ int main(int argc, char *argv[]) if(ngrav_enable && drawgrav_enable) draw_grav(vid_buf); draw_walls(part_vbuf); + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + debug_perf_time = ts.tv_nsec; + #endif + } + update_particles(part_vbuf); //update everything + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + + debug_perf_partitime[debug_perf_iend] = ts.tv_nsec - debug_perf_time; + + debug_perf_time = ts.tv_nsec; + #endif + } + draw_parts(part_vbuf); //draw particles draw_other(part_vbuf); + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + + debug_perf_frametime[debug_perf_iend] = ts.tv_nsec - debug_perf_time; + #endif + debug_perf_iend++; + debug_perf_iend %= DEBUG_PERF_FRAMECOUNT; + debug_perf_istart++; + debug_perf_istart %= DEBUG_PERF_FRAMECOUNT; + } + if(sl == WL_GRAV+100 || sr == WL_GRAV+100) draw_grav_zones(part_vbuf); |
