Lines Matching refs:rsc

64    struct etna_resource *rsc = etna_resource(prsc);  in etna_patch_data()  local
65 struct etna_resource_level *level = &rsc->levels[ptrans->level]; in etna_patch_data()
90 struct etna_resource *rsc = etna_resource(prsc); in etna_unpatch_data() local
91 struct etna_resource_level *level = &rsc->levels[ptrans->level]; in etna_unpatch_data()
106 struct etna_resource *rsc = etna_resource(ptrans->resource); in etna_transfer_unmap() local
114 assert(ptrans->level <= rsc->base.last_level); in etna_transfer_unmap()
116 if (rsc->texture && !etna_resource_newer(rsc, etna_resource(rsc->texture))) in etna_transfer_unmap()
117 rsc = etna_resource(rsc->texture); /* switch to using the texture resource */ in etna_transfer_unmap()
123 if (trans->rsc) in etna_transfer_unmap()
124 etna_bo_cpu_fini(etna_resource(trans->rsc)->bo); in etna_transfer_unmap()
127 if (trans->rsc) { in etna_transfer_unmap()
131 etna_copy_resource_box(pctx, ptrans->resource, trans->rsc, ptrans->level, &ptrans->box); in etna_transfer_unmap()
134 struct etna_resource_level *res_level = &rsc->levels[ptrans->level]; in etna_transfer_unmap()
136 if (rsc->layout == ETNA_LAYOUT_TILED) { in etna_transfer_unmap()
143 ptrans->stride, util_format_get_blocksize(rsc->base.format)); in etna_transfer_unmap()
145 } else if (rsc->layout == ETNA_LAYOUT_LINEAR) { in etna_transfer_unmap()
146 util_copy_box(trans->mapped, rsc->base.format, res_level->stride, in etna_transfer_unmap()
153 BUG("unsupported tiling %i", rsc->layout); in etna_transfer_unmap()
159 rsc->seqno++; in etna_transfer_unmap()
161 if (rsc->base.bind & PIPE_BIND_SAMPLER_VIEW) { in etna_transfer_unmap()
174 if (!trans->rsc && !(ptrans->usage & PIPE_MAP_UNSYNCHRONIZED)) in etna_transfer_unmap()
175 etna_bo_cpu_fini(rsc->bo); in etna_transfer_unmap()
179 util_range_add(&rsc->base, in etna_transfer_unmap()
180 &rsc->valid_buffer_range, in etna_transfer_unmap()
185 pipe_resource_reference(&trans->rsc, NULL); in etna_transfer_unmap()
199 struct etna_resource *rsc = etna_resource(prsc); in etna_transfer_map() local
216 !util_ranges_intersect(&rsc->valid_buffer_range, in etna_transfer_map()
249 if (rsc->render && etna_resource_newer(etna_resource(rsc->render), rsc) && in etna_transfer_map()
250 (!rsc->texture || etna_resource_newer(etna_resource(rsc->render), in etna_transfer_map()
251 etna_resource(rsc->texture)))) { in etna_transfer_map()
252 rsc = etna_resource(rsc->render); in etna_transfer_map()
255 if (rsc->texture && !etna_resource_newer(rsc, etna_resource(rsc->texture))) { in etna_transfer_map()
259 rsc = etna_resource(rsc->texture); in etna_transfer_map()
260 } else if (rsc->ts_bo || in etna_transfer_map()
261 (rsc->layout != ETNA_LAYOUT_LINEAR && in etna_transfer_map()
265 rsc->halign != TEXTURE_HALIGN_FOUR)) { in etna_transfer_map()
277 if (prsc->depth0 > 1 && rsc->ts_bo) { in etna_transfer_map()
287 trans->rsc = etna_resource_alloc(pctx->screen, ETNA_LAYOUT_LINEAR, in etna_transfer_map()
289 if (!trans->rsc) { in etna_transfer_map()
300 if (rsc->layout & ETNA_LAYOUT_BIT_SUPER) { in etna_transfer_map()
317 etna_copy_resource_box(pctx, trans->rsc, &rsc->base, level, &ptrans->box); in etna_transfer_map()
320 rsc = etna_resource(trans->rsc); in etna_transfer_map()
323 struct etna_resource_level *res_level = &rsc->levels[level]; in etna_transfer_map()
379 if (trans->rsc || !(usage & PIPE_MAP_UNSYNCHRONIZED)) { in etna_transfer_map()
390 if ((trans->rsc && (etna_resource(trans->rsc)->status & ETNA_PENDING_WRITE)) || in etna_transfer_map()
391 (!trans->rsc && in etna_transfer_map()
392 (((usage & PIPE_MAP_READ) && (rsc->status & ETNA_PENDING_WRITE)) || in etna_transfer_map()
393 ((usage & PIPE_MAP_WRITE) && rsc->status)))) { in etna_transfer_map()
394 mtx_lock(&rsc->lock); in etna_transfer_map()
395 set_foreach(rsc->pending_ctx, entry) { in etna_transfer_map()
401 mtx_unlock(&rsc->lock); in etna_transfer_map()
419 if (etna_bo_cpu_prep(rsc->bo, prep_flags)) in etna_transfer_map()
424 trans->mapped = etna_bo_map(rsc->bo); in etna_transfer_map()
430 if (rsc->layout == ETNA_LAYOUT_LINEAR) { in etna_transfer_map()
463 if (rsc->layout == ETNA_LAYOUT_TILED) { in etna_transfer_map()
469 util_format_get_blocksize(rsc->base.format)); in etna_transfer_map()
471 } else if (rsc->layout == ETNA_LAYOUT_LINEAR) { in etna_transfer_map()
472 util_copy_box(trans->staging, rsc->base.format, ptrans->stride, in etna_transfer_map()
480 BUG("unsupported tiling %i for reading", rsc->layout); in etna_transfer_map()
488 etna_bo_cpu_fini(rsc->bo); in etna_transfer_map()
499 struct etna_resource *rsc = etna_resource(ptrans->resource); in etna_transfer_flush_region() local
502 util_range_add(&rsc->base, in etna_transfer_flush_region()
503 &rsc->valid_buffer_range, in etna_transfer_flush_region()