From: Leo Liu Date: Tue, 26 Sep 2017 13:11:52 +0000 (-0400) Subject: st/va: use pipe transfer_map to map upload buffer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6ed61b8d3fa09f7b08505e62d5b92270aef3fb80;p=mesa.git st/va: use pipe transfer_map to map upload buffer The function pipe_buffer_map() is only for linear pipe buffer, with height as 0, and it's not for any 2D textures. Signed-off-by: Leo Liu Cc: mesa-stable@lists.freedesktop.org Cc: Mark Thompson Reviewed-by: Marek Olšák --- diff --git a/src/gallium/state_trackers/va/buffer.c b/src/gallium/state_trackers/va/buffer.c index fb5b20e44bb..deaeb1939fe 100644 --- a/src/gallium/state_trackers/va/buffer.c +++ b/src/gallium/state_trackers/va/buffer.c @@ -125,9 +125,15 @@ vlVaMapBuffer(VADriverContextP ctx, VABufferID buf_id, void **pbuff) } if (buf->derived_surface.resource) { - *pbuff = pipe_buffer_map(drv->pipe, buf->derived_surface.resource, - PIPE_TRANSFER_WRITE, - &buf->derived_surface.transfer); + struct pipe_resource *resource; + struct pipe_box box = {}; + + resource = buf->derived_surface.resource; + box.width = resource->width0; + box.height = resource->height0; + box.depth = resource->depth0; + *pbuff = drv->pipe->transfer_map(drv->pipe, resource, 0, PIPE_TRANSFER_WRITE, + &box, &buf->derived_surface.transfer); mtx_unlock(&drv->mutex); if (!buf->derived_surface.transfer || !*pbuff)