[Mesa-dev] [PATCH 5/9] st/mesa: use BITSET_FOREACH_SET to loop through active perfmon counters

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Nov 13 09:34:44 PST 2015


Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>


On 11/13/2015 04:57 PM, Nicolai Hähnle wrote:
> ---
>   src/mesa/state_tracker/st_cb_perfmon.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_cb_perfmon.c b/src/mesa/state_tracker/st_cb_perfmon.c
> index 80ff170..ec12eb2 100644
> --- a/src/mesa/state_tracker/st_cb_perfmon.c
> +++ b/src/mesa/state_tracker/st_cb_perfmon.c
> @@ -50,6 +50,7 @@ init_perf_monitor(struct gl_context *ctx, struct gl_perf_monitor_object *m)
>      for (gid = 0; gid < ctx->PerfMonitor.NumGroups; gid++) {
>         const struct gl_perf_monitor_group *g = &ctx->PerfMonitor.Groups[gid];
>         const struct st_perf_monitor_group *stg = &st->perfmon[gid];
> +      BITSET_WORD tmp;
>
>         if (m->ActiveGroups[gid] > g->MaxActiveCounters) {
>            /* Maximum number of counters reached. Cannot start the session. */
> @@ -60,14 +61,10 @@ init_perf_monitor(struct gl_context *ctx, struct gl_perf_monitor_object *m)
>            return false;
>         }
>
> -      for (cid = 0; cid < g->NumCounters; cid++) {
> -         const struct gl_perf_monitor_counter *c = &g->Counters[cid];
> +      BITSET_FOREACH_SET(cid, tmp, m->ActiveCounters[gid], g->NumCounters) {
>            const struct st_perf_monitor_counter *stc = &stg->counters[cid];
>            struct st_perf_counter_object *cntr;
>
> -         if (!BITSET_TEST(m->ActiveCounters[gid], cid))
> -            continue;
> -
>            cntr = CALLOC_STRUCT(st_perf_counter_object);
>            if (!cntr)
>               return false;
>

-- 
-Samuel


More information about the mesa-dev mailing list