if (doflushwait)
ctx->flush(ctx, NULL, 0);
- trans = slab_alloc(&vctx->texture_transfer_pool);
+ trans = slab_alloc(&vctx->transfer_pool);
if (!trans)
return NULL;
readback = virgl_res_needs_readback(vctx, &vbuf->base, usage);
if (readback)
- vs->vws->transfer_get(vs->vws, vbuf->base.hw_res, box, offset, level);
+ vs->vws->transfer_get(vs->vws, vbuf->base.hw_res, box, trans->base.stride, trans->base.layer_stride, offset, level);
if (!(usage & PIPE_TRANSFER_UNSYNCHRONIZED))
doflushwait = true;
if (trans->base.usage & PIPE_TRANSFER_WRITE) {
if (!(transfer->usage & PIPE_TRANSFER_FLUSH_EXPLICIT)) {
struct virgl_screen *vs = virgl_screen(ctx->screen);
- vbuf->base.clean = FALSE;
vctx->num_transfers++;
vs->vws->transfer_put(vs->vws, vbuf->base.hw_res,
- &transfer->box, trans->offset, transfer->level);
+ &transfer->box, trans->base.stride, trans->base.layer_stride, trans->offset, transfer->level);
}
}
- slab_free(&vctx->texture_transfer_pool, trans);
+ slab_free(&vctx->transfer_pool, trans);
}
static void virgl_buffer_transfer_flush_region(struct pipe_context *ctx,