• Home
  • Raw
  • Download

Lines Matching refs:gmem

132 dump_gmem_state(const struct fd_gmem_stateobj *gmem)  in dump_gmem_state()  argument
136 gmem->bin_w, gmem->bin_h, gmem->nbins_x, gmem->nbins_y); in dump_gmem_state()
137 for (int i = 0; i < ARRAY_SIZE(gmem->cbuf_base); i++) { in dump_gmem_state()
138 if (!gmem->cbuf_cpp[i]) in dump_gmem_state()
141 unsigned size = gmem->cbuf_cpp[i] * gmem->bin_w * gmem->bin_h; in dump_gmem_state()
143 gmem->cbuf_base[i], size, gmem->cbuf_cpp[i]); in dump_gmem_state()
145 total = gmem->cbuf_base[i] + size; in dump_gmem_state()
148 for (int i = 0; i < ARRAY_SIZE(gmem->zsbuf_base); i++) { in dump_gmem_state()
149 if (!gmem->zsbuf_cpp[i]) in dump_gmem_state()
152 unsigned size = gmem->zsbuf_cpp[i] * gmem->bin_w * gmem->bin_h; in dump_gmem_state()
154 gmem->zsbuf_base[i], size, gmem->zsbuf_cpp[i]); in dump_gmem_state()
156 total = gmem->zsbuf_base[i] + size; in dump_gmem_state()
160 gmem->screen->gmemsize_bytes); in dump_gmem_state()
171 struct fd_gmem_stateobj *gmem) in layout_gmem() argument
173 struct fd_screen *screen = gmem->screen; in layout_gmem()
190 gmem->bin_w = bin_w; in layout_gmem()
191 gmem->bin_h = bin_h; in layout_gmem()
196 gmem->nbins_x = DIV_ROUND_UP(key->width, bin_w); in layout_gmem()
197 gmem->nbins_y = DIV_ROUND_UP(key->height, bin_h); in layout_gmem()
201 gmem->cbuf_base[i] = util_align_npot(total, gmem_align); in layout_gmem()
202 total = gmem->cbuf_base[i] + key->cbuf_cpp[i] * bin_w * bin_h; in layout_gmem()
207 gmem->zsbuf_base[0] = util_align_npot(total, gmem_align); in layout_gmem()
208 total = gmem->zsbuf_base[0] + key->zsbuf_cpp[0] * bin_w * bin_h; in layout_gmem()
212 gmem->zsbuf_base[1] = util_align_npot(total, gmem_align); in layout_gmem()
213 total = gmem->zsbuf_base[1] + key->zsbuf_cpp[1] * bin_w * bin_h; in layout_gmem()
220 calc_nbins(struct gmem_key *key, struct fd_gmem_stateobj *gmem) in calc_nbins() argument
222 struct fd_screen *screen = gmem->screen; in calc_nbins()
249 while (!layout_gmem(key, nbins_x, nbins_y, gmem)) { in calc_nbins()
261 layout_gmem(key, nbins_x - 1, nbins_y + 1, gmem)) { in calc_nbins()
265 layout_gmem(key, nbins_x + 1, nbins_y - 1, gmem)) { in calc_nbins()
270 layout_gmem(key, nbins_x, nbins_y, gmem); in calc_nbins()
276 struct fd_gmem_stateobj *gmem = in gmem_stateobj_init() local
278 pipe_reference_init(&gmem->reference, 1); in gmem_stateobj_init()
279 gmem->screen = screen; in gmem_stateobj_init()
280 gmem->key = key; in gmem_stateobj_init()
281 list_inithead(&gmem->node); in gmem_stateobj_init()
288 calc_nbins(key, gmem); in gmem_stateobj_init()
290 DBG("using %d bins of size %dx%d", gmem->nbins_x * gmem->nbins_y, in gmem_stateobj_init()
291 gmem->bin_w, gmem->bin_h); in gmem_stateobj_init()
293 memcpy(gmem->cbuf_cpp, key->cbuf_cpp, sizeof(key->cbuf_cpp)); in gmem_stateobj_init()
294 memcpy(gmem->zsbuf_cpp, key->zsbuf_cpp, sizeof(key->zsbuf_cpp)); in gmem_stateobj_init()
295 gmem->minx = key->minx; in gmem_stateobj_init()
296 gmem->miny = key->miny; in gmem_stateobj_init()
297 gmem->width = key->width; in gmem_stateobj_init()
298 gmem->height = key->height; in gmem_stateobj_init()
301 dump_gmem_state(gmem); in gmem_stateobj_init()
324 while (div_round_up(gmem->nbins_y, tpp_y) > npipes) in gmem_stateobj_init()
326 while ((div_round_up(gmem->nbins_y, tpp_y) * in gmem_stateobj_init()
327 div_round_up(gmem->nbins_x, tpp_x)) > npipes) in gmem_stateobj_init()
336 gmem->maxpw = tpp_x; in gmem_stateobj_init()
337 gmem->maxph = tpp_y; in gmem_stateobj_init()
342 struct fd_vsc_pipe *pipe = &gmem->vsc_pipe[i]; in gmem_stateobj_init()
344 if (xoff >= gmem->nbins_x) { in gmem_stateobj_init()
349 if (yoff >= gmem->nbins_y) { in gmem_stateobj_init()
355 pipe->w = MIN2(tpp_x, gmem->nbins_x - xoff); in gmem_stateobj_init()
356 pipe->h = MIN2(tpp_y, gmem->nbins_y - yoff); in gmem_stateobj_init()
362 gmem->num_vsc_pipes = MAX2(1, i); in gmem_stateobj_init()
365 struct fd_vsc_pipe *pipe = &gmem->vsc_pipe[i]; in gmem_stateobj_init()
370 printf("%dx%d ... tpp=%dx%d\n", gmem->nbins_x, gmem->nbins_y, tpp_x, tpp_y); in gmem_stateobj_init()
371 for (i = 0; i < ARRAY_SIZE(gmem->vsc_pipe); i++) { in gmem_stateobj_init()
372 struct fd_vsc_pipe *pipe = &gmem->vsc_pipe[i]; in gmem_stateobj_init()
382 for (i = 0; i < gmem->nbins_y; i++) { in gmem_stateobj_init()
388 bh = MIN2(gmem->bin_h, key->miny + key->height - yoff); in gmem_stateobj_init()
391 for (j = 0; j < gmem->nbins_x; j++) { in gmem_stateobj_init()
392 struct fd_tile *tile = &gmem->tile[t]; in gmem_stateobj_init()
395 assert(t < ARRAY_SIZE(gmem->tile)); in gmem_stateobj_init()
398 p = ((i / tpp_y) * div_round_up(gmem->nbins_x, tpp_x)) + (j / tpp_x); in gmem_stateobj_init()
399 assert(p < gmem->num_vsc_pipes); in gmem_stateobj_init()
402 bw = MIN2(gmem->bin_w, key->minx + key->width - xoff); in gmem_stateobj_init()
428 for (i = 0; i < gmem->nbins_y; i++) { in gmem_stateobj_init()
429 for (j = 0; j < gmem->nbins_x; j++) { in gmem_stateobj_init()
430 struct fd_tile *tile = &gmem->tile[t++]; in gmem_stateobj_init()
437 return gmem; in gmem_stateobj_init()
441 __fd_gmem_destroy(struct fd_gmem_stateobj *gmem) in __fd_gmem_destroy() argument
443 struct fd_gmem_cache *cache = &gmem->screen->gmem_cache; in __fd_gmem_destroy()
445 fd_screen_assert_locked(gmem->screen); in __fd_gmem_destroy()
447 _mesa_hash_table_remove_key(cache->ht, gmem->key); in __fd_gmem_destroy()
448 list_del(&gmem->node); in __fd_gmem_destroy()
450 ralloc_free(gmem->key); in __fd_gmem_destroy()
451 ralloc_free(gmem); in __fd_gmem_destroy()
530 struct fd_gmem_stateobj *gmem = NULL; in lookup_gmem_state() local
560 fd_gmem_reference(&gmem, entry->data); in lookup_gmem_state()
562 list_delinit(&gmem->node); in lookup_gmem_state()
563 list_add(&gmem->node, &cache->lru); in lookup_gmem_state()
567 return gmem; in lookup_gmem_state()
575 render_tiles(struct fd_batch *batch, struct fd_gmem_stateobj *gmem) in render_tiles() argument
587 for (i = 0; i < (gmem->nbins_x * gmem->nbins_y); i++) { in render_tiles()
588 struct fd_tile *tile = &gmem->tile[i]; in render_tiles()
602 ctx->query_prepare_tile(batch, i, batch->gmem); in render_tiles()
609 ctx->screen->emit_ib(batch->gmem, batch->draw); in render_tiles()
633 ctx->query_prepare_tile(batch, 0, batch->gmem); in render_sysmem()
637 ctx->screen->emit_ib(batch->gmem, batch->draw); in render_sysmem()
733 struct fd_gmem_stateobj *gmem = lookup_gmem_state(batch, false, false); in fd_gmem_render_tiles() local
734 batch->gmem_state = gmem; in fd_gmem_render_tiles()
736 batch, pfb->width, pfb->height, gmem->nbins_x, gmem->nbins_y, in fd_gmem_render_tiles()
740 ctx->query_prepare(batch, gmem->nbins_x * gmem->nbins_y); in fd_gmem_render_tiles()
741 render_tiles(batch, gmem); in fd_gmem_render_tiles()
745 fd_gmem_reference(&gmem, NULL); in fd_gmem_render_tiles()
762 struct fd_gmem_stateobj *gmem = lookup_gmem_state(batch, !!pfb->zsbuf, true); in fd_gmem_estimate_bins_per_pipe() local
763 unsigned nbins = gmem->maxpw * gmem->maxph; in fd_gmem_estimate_bins_per_pipe()
766 fd_gmem_reference(&gmem, NULL); in fd_gmem_estimate_bins_per_pipe()