summaryrefslogtreecommitdiff
path: root/lib/igt_fb.c
diff options
context:
space:
mode:
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>2018-12-27 15:57:41 +0100
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2018-12-31 10:12:33 +0200
commit0ba18cf75cafb51d1e72557528de4a1be640a85c (patch)
treee2e1ba68d6b0dede7b00da32023a279af2570ab2 /lib/igt_fb.c
parente144eef095f33541f139744a384649a4ee688468 (diff)
lib/igt_fb: Add a check on stride alignment for pixman conversion
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. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
Diffstat (limited to 'lib/igt_fb.c')
-rw-r--r--lib/igt_fb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 2f555c95..8244e517 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -1981,6 +1981,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,