[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