Lines Matching refs:ptrans

61 static void etna_patch_data(void *buffer, const struct pipe_transfer *ptrans)
63 struct pipe_resource *prsc = ptrans->resource;
65 struct etna_resource_level *level = &rsc->levels[ptrans->level];
77 etna_etc2_calculate_blocks(buffer, ptrans->stride,
78 ptrans->box.width, ptrans->box.height,
87 static void etna_unpatch_data(void *buffer, const struct pipe_transfer *ptrans)
89 struct pipe_resource *prsc = ptrans->resource;
91 struct etna_resource_level *level = &rsc->levels[ptrans->level];
102 etna_transfer_unmap(struct pipe_context *pctx, struct pipe_transfer *ptrans)
105 struct etna_transfer *trans = etna_transfer(ptrans);
106 struct etna_resource *rsc = etna_resource(ptrans->resource);
114 assert(ptrans->level <= rsc->base.last_level);
126 if (ptrans->usage & PIPE_MAP_WRITE) {
131 etna_copy_resource_box(pctx, ptrans->resource, trans->rsc, ptrans->level, &ptrans->box);
134 struct etna_resource_level *res_level = &rsc->levels[ptrans->level];
137 for (unsigned z = 0; z < ptrans->box.depth; z++) {
139 trans->mapped + (ptrans->box.z + z) * res_level->layer_stride,
140 trans->staging + z * ptrans->layer_stride,
141 ptrans->box.x, ptrans->box.y,
142 res_level->stride, ptrans->box.width, ptrans->box.height,
143 ptrans->stride, util_format_get_blocksize(rsc->base.format));
147 res_level->layer_stride, ptrans->box.x,
148 ptrans->box.y, ptrans->box.z, ptrans->box.width,
149 ptrans->box.height, ptrans->box.depth,
150 trans->staging, ptrans->stride,
151 ptrans->layer_stride, 0, 0, 0 /* src x,y,z */);
167 etna_patch_data(trans->mapped, ptrans);
174 if (!trans->rsc && !(ptrans->usage & PIPE_MAP_UNSYNCHRONIZED))
177 if ((ptrans->resource->target == PIPE_BUFFER) &&
178 (ptrans->usage & PIPE_MAP_WRITE)) {
181 ptrans->box.x,
182 ptrans->box.x + ptrans->box.width);
186 pipe_resource_reference(&ptrans->resource, NULL);
201 struct pipe_transfer *ptrans;
233 ptrans = &trans->base;
234 pipe_resource_reference(&ptrans->resource, prsc);
235 ptrans->level = level;
236 ptrans->usage = usage;
237 ptrans->box = *box;
305 ptrans->box.width += ptrans->box.x & (w_align - 1);
306 ptrans->box.x = ptrans->box.x & ~(w_align - 1);
307 ptrans->box.width = align(ptrans->box.width, (ETNA_RS_WIDTH_MASK + 1));
308 ptrans->box.height += ptrans->box.y & (h_align - 1);
309 ptrans->box.y = ptrans->box.y & ~(h_align - 1);
310 ptrans->box.height = align(ptrans->box.height, ETNA_RS_HEIGHT_MASK + 1);
314 etna_copy_resource_box(pctx, trans->rsc, &rsc->base, level, &ptrans->box);
415 *out_transfer = ptrans;
418 ptrans->stride = res_level->stride;
419 ptrans->layer_stride = res_level->layer_stride;
427 etna_unpatch_data(trans->mapped, ptrans);
441 ptrans->stride = align(box->width, divSizeX) * util_format_get_blocksize(format); /* row stride in bytes */
442 ptrans->layer_stride = align(box->height, divSizeY) * ptrans->stride;
443 size_t size = ptrans->layer_stride * box->depth;
451 for (unsigned z = 0; z < ptrans->box.depth; z++) {
452 etna_texture_untile(trans->staging + z * ptrans->layer_stride,
453 trans->mapped + (ptrans->box.z + z) * res_level->layer_stride,
454 ptrans->box.x, ptrans->box.y, res_level->stride,
455 ptrans->box.width, ptrans->box.height, ptrans->stride,
459 util_copy_box(trans->staging, rsc->base.format, ptrans->stride,
460 ptrans->layer_stride, 0, 0, 0, /* dst x,y,z */
461 ptrans->box.width, ptrans->box.height,
462 ptrans->box.depth, trans->mapped, res_level->stride,
463 res_level->layer_stride, ptrans->box.x,
464 ptrans->box.y, ptrans->box.z);
477 etna_transfer_unmap(pctx, ptrans);
483 struct pipe_transfer *ptrans,
486 struct etna_resource *rsc = etna_resource(ptrans->resource);
488 if (ptrans->resource->target == PIPE_BUFFER)
491 ptrans->box.x + box->x,
492 ptrans->box.x + box->x + box->width);