Lines Matching defs:group

266       struct si_query_group *group = query->groups;
267 query->groups = group->next;
268 FREE(group);
312 for (struct si_query_group *group = query->groups; group; group = group->next) {
313 struct ac_pc_block *block = group->block;
315 if (group->se != current_se || group->instance != current_instance) {
316 current_se = group->se;
317 current_instance = group->instance;
318 si_pc_emit_instance(sctx, group->se, group->instance);
321 si_pc_emit_select(sctx, block, group->num_counters, group->selectors);
343 for (struct si_query_group *group = query->groups; group; group = group->next) {
344 struct ac_pc_block *block = group->block;
345 unsigned se = group->se >= 0 ? group->se : 0;
348 if ((block->b->b->flags & AC_PC_BLOCK_SE) && (group->se < 0))
352 unsigned instance = group->instance >= 0 ? group->instance : 0;
356 si_pc_emit_read(sctx, block, group->num_counters, va);
357 va += sizeof(uint64_t) * group->num_counters;
358 } while (group->instance < 0 && ++instance < block->num_instances);
452 struct si_query_group *group = query->groups;
454 while (group) {
455 if (group->block == block && group->sub_gid == sub_gid)
456 return group;
457 group = group->next;
460 group = CALLOC_STRUCT(si_query_group);
461 if (!group)
464 group->block = block;
465 group->sub_gid = sub_gid;
483 FREE(group);
496 group->se = sub_gid / block->num_instances;
499 group->se = -1;
503 group->instance = sub_gid;
505 group->instance = -1;
508 group->next = query->groups;
509 query->groups = group;
511 return group;
520 struct si_query_group *group;
536 /* Collect selectors per group */
551 group = get_group_state(screen, query, block, sub_gid);
552 if (!group)
555 if (group->num_counters >= block->b->b->num_counters) {
556 fprintf(stderr, "perfcounter group %s: too many selected\n", block->b->b->name);
559 group->selectors[group->num_counters] = sub_index;
560 ++group->num_counters;
563 /* Compute result bases and CS size per group */
568 for (group = query->groups; group; group = group->next) {
569 struct ac_pc_block *block = group->block;
573 if ((block->b->b->flags & AC_PC_BLOCK_SE) && group->se < 0)
575 if (group->instance < 0)
578 group->result_base = i;
579 query->result_size += sizeof(uint64_t) * instances * group->num_counters;
580 i += instances * group->num_counters;
582 read_dw = 6 * group->num_counters;
604 group = get_group_state(screen, query, block, sub_gid);
605 assert(group != NULL);
607 for (j = 0; j < group->num_counters; ++j) {
608 if (group->selectors[j] == sub_index)
612 counter->base = group->result_base + j;
613 counter->stride = group->num_counters;
616 if ((block->b->b->flags & AC_PC_BLOCK_SE) && group->se < 0)
618 if (group->instance < 0)