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 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers
Date: Tue, 4 Dec 2018 11:08:22 +0100 [thread overview]
Message-ID: <20181204100826.15522-7-maxime.ripard@bootlin.com> (raw)
In-Reply-To: <cover.c2054fa47f16b6319869fa4a8a2357a3a13e6d6c.1543917797.git-series.maxime.ripard@bootlin.com>
The current YUV buffer allocation only works on the i915 driver, since
it uses some private ioctl. However, we can to use that code on other
drivers that implement only KMS, so if the driver is something else
than the i915 driver, let's allocate a dumb buffer.
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
lib/igt_fb.c | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index d6242a6652f1..f2e6c89f3884 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -501,6 +501,8 @@ static int i915_create_gem_for_fb(struct igt_fb *fb)
static int create_yuv_bo_for_fb(struct igt_fb *fb)
{
+ unsigned int virtual_height;
+ unsigned int bpp;
uint64_t size = calc_fb_size(fb);
int fd = fb->fd;
@@ -511,8 +513,37 @@ static int create_yuv_bo_for_fb(struct igt_fb *fb)
if (is_i915_device(fd))
return i915_create_gem_for_fb(fb);
- /* We cannot allocate any other buffer type */
- igt_assert(true);
+ switch (fb->drm_format) {
+ case DRM_FORMAT_NV12:
+ bpp = 8;
+ break;
+
+ case DRM_FORMAT_UYVY:
+ case DRM_FORMAT_VYUY:
+ case DRM_FORMAT_YUYV:
+ case DRM_FORMAT_YVYU:
+ bpp = 16;
+ break;
+
+ default:
+ igt_assert_f(false, "Unsupported YUV format\n");
+ }
+
+ switch (fb->drm_format) {
+ case DRM_FORMAT_NV12:
+ virtual_height = fb->height * 3 / 2;
+ break;
+
+ default:
+ virtual_height = fb->height;
+ break;
+ }
+
+ fb->is_dumb = true;
+ fb->gem_handle = kmstest_dumb_create(fd, fb->width, virtual_height,
+ bpp, NULL, &fb->size);
+
+ return fb->gem_handle;
}
/* helpers to create nice-looking framebuffers */
--
2.19.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2018-12-04 10:08 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-04 10:08 [igt-dev] [PATCH i-g-t 0/8] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 1/8] chamelium: Fix inverted xr24 pattern paint dimensions Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 2/8] chamelium: Pass and use stride for xr24 pattern paint Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 3/8] igt: tests: chamelium: Start to unify tests Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 4/8] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH " Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH 5/8] igt: fb: Move i915 buffer allocation to a function of its own Maxime Ripard
2018-12-04 19:28 ` Ville Syrjälä
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t " Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 6/8] igt: fb: Separate YUV allocation from the rest Maxime Ripard
2018-12-04 10:08 ` Maxime Ripard [this message]
2018-12-04 19:32 ` [igt-dev] [PATCH i-g-t 7/8] igt: fb: Fallback on KMS dumb buffer allocation for YUV buffers Ville Syrjälä
2018-12-07 15:29 ` Maxime Ripard
2018-12-07 17:39 ` Ville Syrjälä
2018-12-04 10:08 ` [igt-dev] [PATCH " Maxime Ripard
2018-12-04 10:08 ` [igt-dev] [PATCH i-g-t 8/8] igt: tests: chamelium: Add NV12 format Maxime Ripard
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=20181204100826.15522-7-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