[Libva] [PATCH ] Fix inconsistent surface dimension during allocating surface buffer object

Xiang, Haihao haihao.xiang at intel.com
Tue Sep 18 01:14:05 PDT 2012



> -----Original Message-----
> From: libva-bounces+haihao.xiang=intel.com at lists.freedesktop.org
> [mailto:libva-bounces+haihao.xiang=intel.com at lists.freedesktop.org] On
> Behalf Of yakui.zhao at intel.com
> Sent: Tuesday, September 18, 2012 4:01 PM
> To: libva at lists.freedesktop.org
> Subject: [Libva] [PATCH ] Fix inconsistent surface dimension during allocating
> surface buffer object
> 
> From: Zhao Yakui <yakui.zhao at intel.com>
> 
> When one surface is created, the height/width is aligned to 16 pixels.

Actually orig_width/height is the width/height, width/height is the stride in x/y-axis.  

> But when trying to allocate the buffer object for it, the width is aligned to 128
> and height is aligned to 32. 

It is the requirement of the Y-tiled surface however for linear surface, aligning to 16 byte is enough 

> If the surface is mapped and accessed

You can't map the surface directly, do you mean vaDeriveImage() first then calling vaMapBuffer() to 
Access the surface ? Allocating the buffer object will be done before deriving the image.

> before
> allocating the buffer object, the incorrect dimension is returned and and the
> incorrect content is written.
> 
> From: Zhao Yakui <yakui.zhao at intel.com>
> ---
>  src/i965_drv_video.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index
> 588961f..8956367 100644
> --- a/src/i965_drv_video.c
> +++ b/src/i965_drv_video.c
> @@ -506,8 +506,8 @@ i965_CreateSurfaces(VADriverContextP ctx,
>          obj_surface->orig_width = width;
>          obj_surface->orig_height = height;
> 
> -        obj_surface->width = ALIGN(width, 16);
> -        obj_surface->height = ALIGN(height, 16);
> +        obj_surface->width = ALIGN(width, 128);
> +        obj_surface->height = ALIGN(height, 32);
>          obj_surface->flags = SURFACE_REFERENCED;
>          obj_surface->fourcc = 0;
>          obj_surface->bo = NULL;
> --
> 1.7.12-rc1
> 
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva


More information about the Libva mailing list