Lines Matching refs:bt

708                            const struct crocus_binding_table *bt)
716 uint32_t size = bt->sizes[i];
719 compacted += util_bitcount64(bt->used_mask[i]);
737 uint64_t mask = bt->used_mask[i];
752 rewrite_src_with_bti(nir_builder *b, struct crocus_binding_table *bt,
756 assert(bt->sizes[group] > 0);
762 bti = nir_imm_intN_t(b, crocus_group_index_to_bti(bt, group, index),
768 assert(bt->used_mask[group] == BITFIELD64_MASK(bt->sizes[group]));
769 bti = nir_iadd_imm(b, src->ssa, bt->offsets[group]);
775 mark_used_with_src(struct crocus_binding_table *bt, nir_src *src,
778 assert(bt->sizes[group] > 0);
782 assert(index < bt->sizes[group]);
783 bt->used_mask[group] |= 1ull << index;
786 bt->used_mask[group] = BITFIELD64_MASK(bt->sizes[group]);
805 struct crocus_binding_table *bt,
813 memset(bt, 0, sizeof(*bt));
819 bt->sizes[CROCUS_SURFACE_GROUP_RENDER_TARGET] = num_render_targets;
821 bt->used_mask[CROCUS_SURFACE_GROUP_RENDER_TARGET] =
828 bt->sizes[CROCUS_SURFACE_GROUP_RENDER_TARGET_READ] = num_render_targets;
829 bt->used_mask[CROCUS_SURFACE_GROUP_RENDER_TARGET_READ] =
833 bt->sizes[CROCUS_SURFACE_GROUP_CS_WORK_GROUPS] = 1;
839 bt->sizes[CROCUS_SURFACE_GROUP_SOL] = BRW_MAX_SOL_BINDINGS;
840 bt->used_mask[CROCUS_SURFACE_GROUP_SOL] = (uint64_t)-1;
844 bt->sizes[CROCUS_SURFACE_GROUP_TEXTURE] = BITSET_LAST_BIT(info->textures_used);
845 bt->used_mask[CROCUS_SURFACE_GROUP_TEXTURE] = info->textures_used[0];
848 bt->sizes[CROCUS_SURFACE_GROUP_TEXTURE_GATHER] = BITSET_LAST_BIT(info->textures_used);
849 bt->used_mask[CROCUS_SURFACE_GROUP_TEXTURE_GATHER] = info->textures_used[0];
852 bt->sizes[CROCUS_SURFACE_GROUP_IMAGE] = info->num_images;
861 bt->sizes[CROCUS_SURFACE_GROUP_UBO] = num_cbufs + 1;
863 bt->sizes[CROCUS_SURFACE_GROUP_SSBO] = info->num_ssbos;
866 assert(bt->sizes[i] <= SURFACE_GROUP_MAX_ELEMENTS);
880 bt->used_mask[CROCUS_SURFACE_GROUP_CS_WORK_GROUPS] = 1;
885 mark_used_with_src(bt, &intrin->src[0],
905 mark_used_with_src(bt, &intrin->src[0], CROCUS_SURFACE_GROUP_IMAGE);
909 mark_used_with_src(bt, &intrin->src[0], CROCUS_SURFACE_GROUP_UBO);
913 mark_used_with_src(bt, &intrin->src[1], CROCUS_SURFACE_GROUP_SSBO);
931 mark_used_with_src(bt, &intrin->src[0], CROCUS_SURFACE_GROUP_SSBO);
943 bt->used_mask[i] = BITFIELD64_MASK(bt->sizes[i]);
952 if (bt->used_mask[i] != 0) {
953 bt->offsets[i] = next;
954 next += util_bitcount64(bt->used_mask[i]);
957 bt->size_bytes = next * 4;
960 crocus_print_binding_table(stderr, gl_shader_stage_name(info->stage), bt);
999 crocus_group_index_to_bti(bt, is_gather ? CROCUS_SURFACE_GROUP_TEXTURE_GATHER : CROCUS_SURFACE_GROUP_TEXTURE,
1024 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1029 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1034 rewrite_src_with_bti(&b, bt, instr, &intrin->src[1],
1040 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1060 rewrite_src_with_bti(&b, bt, instr, &intrin->src[0],
1222 struct crocus_binding_table bt;
1223 crocus_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1274 num_cbufs, &bt);
1420 struct crocus_binding_table bt;
1429 crocus_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1462 memset(&bt, 0, sizeof(bt));
1463 bt.sizes[CROCUS_SURFACE_GROUP_UBO] = 1;
1464 bt.used_mask[CROCUS_SURFACE_GROUP_UBO] = 1;
1465 bt.size_bytes = 4;
1500 num_cbufs, &bt);
1600 struct crocus_binding_table bt;
1601 crocus_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1645 num_cbufs, &bt);
1740 struct crocus_binding_table bt;
1741 crocus_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
1786 num_cbufs, &bt);
1877 struct crocus_binding_table bt;
1878 crocus_setup_binding_table(devinfo, nir, &bt,
1918 num_cbufs, &bt);
2087 struct crocus_binding_table bt;
2088 memset(&bt, 0, sizeof(bt));
2094 NULL, NULL, 0, 0, &bt);
2242 struct crocus_binding_table bt;
2243 memset(&bt, 0, sizeof(bt));
2248 NULL, NULL, 0, 0, &bt);
2335 struct crocus_binding_table bt;
2336 memset(&bt, 0, sizeof(bt));
2339 bt.sizes[CROCUS_SURFACE_GROUP_SOL] = BRW_MAX_SOL_BINDINGS;
2340 bt.used_mask[CROCUS_SURFACE_GROUP_SOL] = (uint64_t)-1;
2342 bt.size_bytes = BRW_MAX_SOL_BINDINGS * 4;
2349 NULL, NULL, 0, 0, &bt);
2563 struct crocus_binding_table bt;
2564 crocus_setup_binding_table(devinfo, nir, &bt, /* num_render_targets */ 0,
2593 num_cbufs, &bt);