diff options
-rw-r--r-- | src/gallium/state_trackers/va/buffer.c | 12 |
1 files 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) |