Lines Matching full:transfer
39 /* Copy from a full GPU texture to a transfer's staging one. */
42 struct pipe_transfer *transfer = (struct pipe_transfer*)rtransfer;
43 struct pipe_resource *texture = transfer->resource;
46 0, 0, 0, 0, texture, transfer->level,
47 &transfer->box);
51 /* Copy from a transfer's staging texture to a full GPU one. */
54 struct pipe_transfer *transfer = (struct pipe_transfer*)rtransfer;
55 struct pipe_resource *texture = transfer->resource;
59 sbox.width = transfer->box.width;
60 sbox.height = transfer->box.height;
63 ctx->resource_copy_region(ctx, texture, transfer->level,
64 transfer->box.x, transfer->box.y, transfer->box.z,
178 /* Figure out whether u_blitter will fallback to a transfer operation.
292 * it eagerly whenever the transfer doesn't require a readback
311 pipe_resource_reference(&trans->transfer.resource, texture);
312 trans->transfer.level = level;
313 trans->transfer.usage = usage;
314 trans->transfer.box = *box;
323 pipe_resource_reference(&trans->transfer.resource, NULL);
327 trans->transfer.stride = rtex->flushed_depth_texture->surface.level[level].pitch_bytes;
329 return &trans->transfer;
356 pipe_resource_reference(&trans->transfer.resource, NULL);
361 trans->transfer.stride = ((struct r600_resource_texture *)trans->staging_texture)
368 return &trans->transfer;
370 trans->transfer.stride = rtex->surface.level[level].pitch_bytes;
371 trans->transfer.layer_stride = rtex->surface.level[level].slice_size;
373 return &trans->transfer;
377 struct pipe_transfer *transfer)
379 struct r600_transfer *rtransfer = (struct r600_transfer*)transfer;
380 struct pipe_resource *texture = transfer->resource;
384 if (transfer->usage & PIPE_TRANSFER_WRITE) {
391 if ((transfer->usage & PIPE_TRANSFER_WRITE) && rtex->flushed_depth_texture)
395 pipe_resource_reference(&transfer->resource, NULL);
396 FREE(transfer);
400 struct pipe_transfer* transfer)
403 struct r600_transfer *rtransfer = (struct r600_transfer*)transfer;
405 enum pipe_format format = transfer->resource->format;
412 struct r600_resource_texture *rtex = (struct r600_resource_texture*)transfer->resource;
417 buf = si_resource(transfer->resource)->cs_buf;
420 transfer->box.y / util_format_get_blockheight(format) * transfer->stride +
421 transfer->box.x / util_format_get_blockwidth(format) * util_format_get_blocksize(format);
424 if (!(map = rctx->ws->buffer_map(buf, rctx->cs, transfer->usage))) {
432 struct pipe_transfer* transfer)
434 struct r600_transfer *rtransfer = (struct r600_transfer*)transfer;
441 struct r600_resource_texture *rtex = (struct r600_resource_texture*)transfer->resource;
446 buf = si_resource(transfer->resource)->cs_buf;