Lines Matching defs:trans
116 struct virgl_transfer *trans)
119 struct virgl_resource *res = virgl_resource(trans->base.resource);
121 if (trans->base.usage & PIPE_MAP_UNSYNCHRONIZED)
492 struct virgl_transfer *trans;
511 trans = virgl_resource_create_transfer(vctx, resource,
514 map_type = virgl_resource_transfer_prepare(vctx, trans);
521 vws->resource_reference(vws, &trans->hw_res, vres->hw_res);
524 trans->hw_res_map = vws->resource_map(vws, vres->hw_res);
525 if (trans->hw_res_map)
526 map_addr = trans->hw_res_map + trans->offset;
531 map_addr = virgl_staging_map(vctx, trans);
533 trans->hw_res_map = NULL;
534 trans->direction = VIRGL_TRANSFER_TO_HOST;
537 map_addr = virgl_staging_read_map(vctx, trans);
539 trans->hw_res_map = NULL;
542 map_addr = virgl_staging_read_map(vctx, trans);
544 trans->hw_res_map = NULL;
545 trans->direction = VIRGL_TRANSFER_TO_HOST;
549 trans->hw_res_map = NULL;
555 virgl_resource_destroy_transfer(vctx, trans);
563 assert(usage == trans->base.usage);
585 *transfer = &trans->base;
844 struct virgl_transfer *trans;
868 trans = slab_zalloc(&vctx->transfer_pool);
869 if (!trans)
872 pipe_resource_reference(&trans->base.resource, pres);
873 vws->resource_reference(vws, &trans->hw_res, virgl_resource(pres)->hw_res);
875 trans->base.level = level;
876 trans->base.usage = usage;
877 trans->base.box = *box;
878 trans->base.stride = metadata->stride[level];
879 trans->base.layer_stride = metadata->layer_stride[level];
880 trans->offset = offset;
881 util_range_init(&trans->range);
883 if (trans->base.resource->target != PIPE_TEXTURE_3D &&
884 trans->base.resource->target != PIPE_TEXTURE_CUBE &&
885 trans->base.resource->target != PIPE_TEXTURE_1D_ARRAY &&
886 trans->base.resource->target != PIPE_TEXTURE_2D_ARRAY &&
887 trans->base.resource->target != PIPE_TEXTURE_CUBE_ARRAY)
888 trans->l_stride = 0;
890 trans->l_stride = trans->base.layer_stride;
892 return trans;
896 struct virgl_transfer *trans)
900 vws->resource_reference(vws, &trans->copy_src_hw_res, NULL);
902 util_range_destroy(&trans->range);
903 vws->resource_reference(vws, &trans->hw_res, NULL);
904 pipe_resource_reference(&trans->base.resource, NULL);
905 slab_free(&vctx->transfer_pool, trans);