Lines Matching refs:bt
83 const struct iris_binding_table *bt)
91 shader->bt = *bt;
748 const struct iris_binding_table *bt)
756 uint32_t size = bt->sizes[i];
759 compacted += util_bitcount64(bt->used_mask[i]);
777 uint64_t mask = bt->used_mask[i];
797 iris_group_index_to_bti(const struct iris_binding_table *bt,
800 assert(index < bt->sizes[group]);
801 uint64_t mask = bt->used_mask[group];
804 return bt->offsets[group] + util_bitcount64((bit - 1) & mask);
816 iris_bti_to_group_index(const struct iris_binding_table *bt,
819 uint64_t used_mask = bt->used_mask[group];
820 assert(bti >= bt->offsets[group]);
822 uint32_t c = bti - bt->offsets[group];
834 rewrite_src_with_bti(nir_builder *b, struct iris_binding_table *bt,
838 assert(bt->sizes[group] > 0);
844 bti = nir_imm_intN_t(b, iris_group_index_to_bti(bt, group, index),
850 assert(bt->used_mask[group] == BITFIELD64_MASK(bt->sizes[group]));
851 bti = nir_iadd_imm(b, src->ssa, bt->offsets[group]);
857 mark_used_with_src(struct iris_binding_table *bt, nir_src *src,
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]);
887 struct iris_binding_table *bt,
894 memset(bt, 0, sizeof(*bt));
900 bt->sizes[IRIS_SURFACE_GROUP_RENDER_TARGET] = num_render_targets;
902 bt->used_mask[IRIS_SURFACE_GROUP_RENDER_TARGET] =
909 bt->sizes[IRIS_SURFACE_GROUP_RENDER_TARGET_READ] = num_render_targets;
910 bt->used_mask[IRIS_SURFACE_GROUP_RENDER_TARGET_READ] =
914 bt->sizes[IRIS_SURFACE_GROUP_CS_WORK_GROUPS] = 1;
917 bt->sizes[IRIS_SURFACE_GROUP_TEXTURE] = BITSET_LAST_BIT(info->textures_used);
918 bt->used_mask[IRIS_SURFACE_GROUP_TEXTURE] = info->textures_used[0];
920 bt->sizes[IRIS_SURFACE_GROUP_IMAGE] = info->num_images;
929 bt->sizes[IRIS_SURFACE_GROUP_UBO] = num_cbufs + 1;
931 bt->sizes[IRIS_SURFACE_GROUP_SSBO] = info->num_ssbos;
934 assert(bt->sizes[i] <= SURFACE_GROUP_MAX_ELEMENTS);
948 bt->used_mask[IRIS_SURFACE_GROUP_CS_WORK_GROUPS] = 1;
953 mark_used_with_src(bt, &intrin->src[0],
973 mark_used_with_src(bt, &intrin->src[0], IRIS_SURFACE_GROUP_IMAGE);
977 mark_used_with_src(bt, &intrin->src[0], IRIS_SURFACE_GROUP_UBO);
981 mark_used_with_src(bt, &intrin->src[1], IRIS_SURFACE_GROUP_SSBO);
999 mark_used_with_src(bt, &intrin->src[0], IRIS_SURFACE_GROUP_SSBO);
1011 bt->used_mask[i] = BITFIELD64_MASK(bt->sizes[i]);
1020 if (bt->used_mask[i] != 0) {
1021 bt->offsets[i] = next;
1022 next += util_bitcount64(bt->used_mask[i]);
1025 bt->size_bytes = next * 4;
1028 iris_print_binding_table(stderr, gl_shader_stage_name(info->stage), bt);
1043 iris_group_index_to_bti(bt, IRIS_SURFACE_GROUP_TEXTURE,
1068 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1073 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1078 rewrite_src_with_bti(&b, bt, instr, &intrin->src[1],
1084 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1104 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1341 struct iris_binding_table bt;
1342 iris_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1380 num_system_values, 0, num_cbufs, &bt);
1507 struct iris_binding_table bt;
1517 iris_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1550 memset(&bt, 0, sizeof(bt));
1551 bt.sizes[IRIS_SURFACE_GROUP_UBO] = 1;
1552 bt.used_mask[IRIS_SURFACE_GROUP_UBO] = 1;
1553 bt.size_bytes = 4;
1581 num_system_values, 0, num_cbufs, &bt);
1708 struct iris_binding_table bt;
1709 iris_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1748 num_system_values, 0, num_cbufs, &bt);
1847 struct iris_binding_table bt;
1848 iris_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1886 num_system_values, 0, num_cbufs, &bt);
1986 struct iris_binding_table bt;
1987 iris_setup_binding_table(devinfo, nir, &bt,
2022 num_system_values, 0, num_cbufs, &bt);
2266 struct iris_binding_table bt;
2267 iris_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
2295 &bt);