Lines Matching refs:group
787 /* Max elements in a surface group. */
792 * Map a <group, index> pair to a binding table index.
798 enum iris_surface_group group, uint32_t index)
800 assert(index < bt->sizes[group]);
801 uint64_t mask = bt->used_mask[group];
804 return bt->offsets[group] + util_bitcount64((bit - 1) & mask);
811 * Map a binding table index back to a <group, index> pair.
817 enum iris_surface_group group, uint32_t bti)
819 uint64_t used_mask = bt->used_mask[group];
820 assert(bti >= bt->offsets[group]);
822 uint32_t c = bti - bt->offsets[group];
836 enum iris_surface_group group)
838 assert(bt->sizes[group] > 0);
844 bti = nir_imm_intN_t(b, iris_group_index_to_bti(bt, group, index),
847 /* Indirect usage makes all the surfaces of the group to be available,
850 assert(bt->used_mask[group] == BITFIELD64_MASK(bt->sizes[group]));
851 bti = nir_iadd_imm(b, src->ssa, bt->offsets[group]);
858 enum iris_surface_group group)
860 assert(bt->sizes[group] > 0);
864 assert(index < bt->sizes[group]);
865 bt->used_mask[group] |= 1ull << index;
868 bt->used_mask[group] = BITFIELD64_MASK(bt->sizes[group]);
896 /* Set the sizes for each surface group. For some groups, we already know
905 /* Setup render target read surface group in order to support non-coherent
1015 * surfaces. After this point, the functions to go between "group indices"