From 6ed61b8d3fa09f7b08505e62d5b92270aef3fb80 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Tue, 26 Sep 2017 09:11:52 -0400 Subject: [PATCH] st/va: use pipe transfer_map to map upload buffer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/gallium/state_trackers/va/buffer.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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) -- 2.30.2