[igt-dev] [PATCH i-g-t v2] lib/igt_fb: Add a check on stride alignment for pixman conversion

Paul Kocialkowski paul.kocialkowski at bootlin.com
Mon Jan 14 14:19:43 UTC 2019


Hi,

On Thu, 2018-12-13 at 14:11 +0100, Paul Kocialkowski wrote:
> Pixman requires buffer strides the be aligned to 32-bit words in order
> to create internal representations of buffers. If this condition is not
> met, it will fail and IGT will not be able to report the error cause,
> making it hard to debug the issue.
> 
> Add an explicit check in our code prior to calling pixman when
> converting buffer so that the error can be understood if it occurs.

Looks like this patch was reviewed and CI-tested, so it should be ready
for inclusion. Would someone like to pick it up?

Thanks in advance!

Cheers,

Paul

> Signed-off-by: Paul Kocialkowski <paul.kocialkowski at bootlin.com>
> Reviewed-by: Maxime Ripard <maxime.ripard at bootlin.com>
> ---
> 
> Changes since v1:
> * Added missing Signed-Off-By;
> * Added Maxime's Reviewed-By.
> 
>  lib/igt_fb.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 2462d6ba6fab..513a66b7098e 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -1901,6 +1901,10 @@ static void convert_pixman(struct fb_convert *cvt)
>  	igt_assert((src_pixman != PIXMAN_invalid) &&
>  		   (dst_pixman != PIXMAN_invalid));
>  
> +	/* Pixman requires the stride to be aligned to 32 bits. */
> +	igt_assert((cvt->src.fb->strides[0] % sizeof(uint32_t)) == 0);
> +	igt_assert((cvt->dst.fb->strides[0] % sizeof(uint32_t)) == 0);
> +
>  	src_ptr = convert_src_get(cvt);
>  
>  	src_image = pixman_image_create_bits(src_pixman,
-- 
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com



More information about the igt-dev mailing list