diff --git a/src/boot/main.c b/src/boot/main.c index c4e3b8f6..76ffce96 100644 --- a/src/boot/main.c +++ b/src/boot/main.c @@ -352,6 +352,9 @@ void thread3_main(UNUSED void *arg) { while (TRUE) { OSMesg msg; +#if PUPPYPRINT_DEBUG + OSTime first = osGetTime(); +#endif osRecvMesg(&gIntrMesgQueue, &msg, OS_MESG_BLOCK); switch ((uintptr_t) msg) { @@ -371,6 +374,9 @@ void thread3_main(UNUSED void *arg) { handle_nmi_request(); break; } +#if PUPPYPRINT_DEBUG + profiler_update(taskTime, first); +#endif } } diff --git a/src/game/puppyprint.c b/src/game/puppyprint.c index ee1e37b6..9b761a36 100644 --- a/src/game/puppyprint.c +++ b/src/game/puppyprint.c @@ -76,6 +76,8 @@ OSTime graphTime[NUM_PERF_ITERATIONS+1]; OSTime audioTime[NUM_PERF_ITERATIONS+1]; OSTime dmaTime[NUM_PERF_ITERATIONS+1]; OSTime dmaAudioTime[NUM_PERF_ITERATIONS+1]; +OSTime faultTime[NUM_PERF_ITERATIONS+1]; +OSTime taskTime[NUM_PERF_ITERATIONS+1]; //RSP OSTime audioTime[NUM_PERF_ITERATIONS+1]; OSTime rspGenTime[NUM_PERF_ITERATIONS+1]; @@ -359,7 +361,7 @@ void puppyprint_render_profiler(void) s32 perfPercentage[5]; s32 graphPos; s32 prevGraph; - OSTime cpuCount = OS_CYCLES_TO_USEC(cpuTime+audioTime[NUM_PERF_ITERATIONS]+dmaAudioTime[NUM_PERF_ITERATIONS]); + OSTime cpuCount = OS_CYCLES_TO_USEC(cpuTime+audioTime[NUM_PERF_ITERATIONS]+dmaAudioTime[NUM_PERF_ITERATIONS]+faultTime[NUM_PERF_ITERATIONS]+taskTime[NUM_PERF_ITERATIONS]); char textBytes[80]; if (!fDebug) @@ -484,6 +486,8 @@ void puppyprint_profiler_process(void) get_average_perf_time(audioTime); get_average_perf_time(dmaTime); get_average_perf_time(dmaAudioTime); + get_average_perf_time(faultTime); + get_average_perf_time(taskTime); dmaTime[NUM_PERF_ITERATIONS] += dmaAudioTime[NUM_PERF_ITERATIONS]; diff --git a/src/game/puppyprint.h b/src/game/puppyprint.h index a563388d..ca738286 100644 --- a/src/game/puppyprint.h +++ b/src/game/puppyprint.h @@ -45,6 +45,8 @@ extern OSTime graphTime[NUM_PERF_ITERATIONS+1]; extern OSTime audioTime[NUM_PERF_ITERATIONS+1]; extern OSTime dmaTime[NUM_PERF_ITERATIONS+1]; extern OSTime dmaAudioTime[NUM_PERF_ITERATIONS+1]; +extern OSTime faultTime[NUM_PERF_ITERATIONS+1]; +extern OSTime taskTime[NUM_PERF_ITERATIONS+1]; //RSP extern OSTime rspGenTime[NUM_PERF_ITERATIONS+1]; //RDP