On 2017-09-27 04:30 AM, Marek Olšák wrote:
Reviewed-by: Marek Olšák <[email protected]>
Thanks for the review.
If a 3D or array texture can't occur here, it would be better to set
box.depth = 1.
The case here is to map a derived image, which is a RGB surface with
format "PIPE_FORMAT_B8G8R8X8_UNORM", and the depth is set to 1, when
allocating.
so the resource->depth0 can address that.
For the array texture case like interlaced NV12 surface will not get
here, because this is not supported by vaDeriveImage, and it goes to
vaCreateImage and vaGetImage path.
Leo
If a 3D texture can't occur here but an array texture
can, it needs to be box.depth = resource->array_size.
Marek
On Tue, Sep 26, 2017 at 5:04 PM, Leo Liu <[email protected]> wrote:
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 <[email protected]>
Cc: [email protected]
Cc: Mark Thompson <[email protected]>
---
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 fb5b20e44b..deaeb1939f 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.11.0
_______________________________________________
mesa-stable mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-stable
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev