From: Maxime Ripard <maxime.ripard@bootlin.com>
To: igt-dev@lists.freedesktop.org
Cc: Petri Latvala <petri.latvala@intel.com>,
eben@raspberrypi.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: [igt-dev] [PATCH i-g-t v6 03/10] igt: fb: Account for all planes bpp
Date: Fri, 8 Feb 2019 14:18:54 +0100 [thread overview]
Message-ID: <20190208131901.1400-4-maxime.ripard@bootlin.com> (raw)
In-Reply-To: <20190208131901.1400-1-maxime.ripard@bootlin.com>
When allocating a dumb buffer for a format with multiple plane, we need to
account for all plane's bpp in order to allocate the proper size.
Let's add all the planes bpp and use the result to allocate our buffer.
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
lib/igt_fb.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index ca4865519c13..ca19c034f4a3 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -528,6 +528,9 @@ static void clear_yuv_buffer(struct igt_fb *fb)
/* helpers to create nice-looking framebuffers */
static int create_bo_for_fb(struct igt_fb *fb)
{
+ const struct format_desc_struct *fmt = lookup_drm_format(fb->drm_format);
+ unsigned int bpp = 0;
+ unsigned int plane;
int fd = fb->fd;
if (fb->tiling || fb->size || fb->strides[0] || igt_format_is_yuv(fb->drm_format)) {
@@ -570,11 +573,13 @@ static int create_bo_for_fb(struct igt_fb *fb)
igt_assert(fb->strides[0] == 0);
fb->size = calc_fb_size(fb);
+ for (plane = 0; plane < fb->num_planes; plane++)
+ bpp += DIV_ROUND_UP(fb->plane_bpp[plane],
+ plane ? fmt->hsub * fmt->vsub : 1);
fb->is_dumb = true;
fb->gem_handle = kmstest_dumb_create(fd, fb->width, fb->height,
- fb->plane_bpp[0],
- &fb->strides[0], &fb->size);
+ bpp, &fb->strides[0], &fb->size);
return fb->gem_handle;
}
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2019-02-08 13:19 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-08 13:18 [igt-dev] [PATCH i-g-t v6 00/10] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 01/10] igt: fb: Refactor dumb buffer allocation path Maxime Ripard
2019-02-08 16:52 ` Deepak Singh Rawat
2019-02-08 17:52 ` Lyude Paul
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 02/10] igt: fb: Add size checks and recalculation before dumb allocation Maxime Ripard
2019-02-08 15:51 ` Paul Kocialkowski
2019-02-08 17:55 ` Lyude Paul
2019-02-08 13:18 ` Maxime Ripard [this message]
2019-02-08 18:02 ` [igt-dev] [PATCH i-g-t v6 03/10] igt: fb: Account for all planes bpp Lyude Paul
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 04/10] igt: fb: Don't pass the stride when allocating a dumb, multi-planar buffer Maxime Ripard
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 05/10] igt: fb: Clear YUV dumb buffers Maxime Ripard
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 06/10] igt: fb: Rework YUV i915 allocation path Maxime Ripard
2019-02-08 17:09 ` Deepak Singh Rawat
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 07/10] igt: fb: Add a bunch of new YUV formats Maxime Ripard
2019-02-08 13:18 ` [igt-dev] [PATCH i-g-t v6 08/10] igt: tests: chamelium: Start to unify tests Maxime Ripard
2019-02-08 13:19 ` [igt-dev] [PATCH i-g-t v6 09/10] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard
2019-02-08 13:19 ` [igt-dev] [PATCH i-g-t v6 10/10] igt: tests: chamelium: Add YUV formats tests Maxime Ripard
2019-02-08 14:04 ` [igt-dev] ✓ Fi.CI.BAT: success for igt: chamelium: Test YUV buffers using the Chamelium (rev8) Patchwork
2019-02-08 16:43 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-02-12 9:08 ` [igt-dev] [PATCH i-g-t v6 00/10] igt: chamelium: Test YUV buffers using the Chamelium Paul Kocialkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190208131901.1400-4-maxime.ripard@bootlin.com \
--to=maxime.ripard@bootlin.com \
--cc=eben@raspberrypi.org \
--cc=igt-dev@lists.freedesktop.org \
--cc=petri.latvala@intel.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox