[igt-dev] [PATCH i-g-t v6 02/10] igt: fb: Add size checks and recalculation before dumb allocation

Maxime Ripard
2019-02-08T13:35:51Z

Since we want to use the dumb buffers to store frames in formats with
multiple planes, we need to add checks for unsupported corner cases, and we
need to calculate the offsets and sizes of each planes. Let's use
calc_fb_size for that.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
lib/igt_fb.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index c61e6805ff7a..ca4865519c13 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -561,6 +561,16 @@ static int create_bo_for_fb(struct igt_fb *fb)
}
}

+ /*
+ * The current dumb buffer allocation API doesn't really allow to
+ * specify a custom size or stride. Yet the caller is free to specify
+ * them, so we need to make sure to error out in this case.
+ */
+ igt_assert(fb->size == 0);
+ igt_assert(fb->strides[0] == 0);
+
+ fb->size = calc_fb_size(fb);
+
fb->is_dumb = true;
fb->gem_handle = kmstest_dumb_create(fd, fb->width, fb->height,
fb->plane_bpp[0],