X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=metrics.c;h=ad73fe6e26202ae2d1785548fbe8ea1fe730997d;hb=refs%2Fheads%2Freset-metrics;hp=4e67ab9399de20b195e5704f57aaa1818dfa4eb4;hpb=578755112a99655fdce6ed4ae924d82a31c26abb;p=fips diff --git a/metrics.c b/metrics.c index 4e67ab9..ad73fe6 100644 --- a/metrics.c +++ b/metrics.c @@ -331,6 +331,8 @@ metrics_info_fini (void) if (! info->initialized) return; + metrics_collect_available (); + if (ctx->timer_begun_id) { glEndQuery (GL_TIME_ELAPSED); glDeleteQueries (1, &ctx->timer_begun_id); @@ -769,6 +771,38 @@ time_compare(const void *in_a, const void *in_b, void *arg unused) return 0; } +static void +op_metrics_reset (op_metrics_t *op) +{ + context_t *ctx = ¤t_context; + metrics_info_t *info = &ctx->metrics_info; + unsigned group_index, counter; + metrics_group_info_t *group; + + op->time_ns = 0.0; + + for (group_index = 0; group_index < info->num_groups; group_index++) { + group = &info->groups[group_index]; + for (counter = 0; counter < group->num_counters; counter++) + { + op->counters[group_index][counter] = 0.0; + } + } +} + +static void +reset_metrics (void) +{ + context_t *ctx = ¤t_context; + unsigned i; + + for (i = 0; i < ctx->num_op_metrics; i++) { + + op_metrics_reset (&ctx->op_metrics[i]); + + } +} + static void print_program_metrics (void) { @@ -1019,4 +1053,7 @@ metrics_end_frame (void) print_program_metrics (); } + + if (frames == 208) + reset_metrics (); }