From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
To: igt-dev@lists.freedesktop.org
Cc: Petri Latvala <petri.latvala@intel.com>,
Eben Upton <eben@raspberrypi.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: [igt-dev] [PATCH i-g-t v3 06/21] lib/igt_fb: Add a stride-provisioned fashion of igt_fb_convert
Date: Fri, 11 Jan 2019 10:05:17 +0100 [thread overview]
Message-ID: <20190111090532.19235-7-paul.kocialkowski@bootlin.com> (raw)
In-Reply-To: <20190111090532.19235-1-paul.kocialkowski@bootlin.com>
The current implementation of igt_fb_convert does not allow passing
the destination stride, which is something we want to change for tests.
Add a new fashion of this function that allocates the desintation buffer
with a given stride. Since the current function does the same thing with
an unspecified stride (set to zero, which will be filled later), make it
call our new fashion with the stride set to zero to avoid duplication.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
lib/igt_fb.c | 38 ++++++++++++++++++++++++++++++++------
lib/igt_fb.h | 3 +++
2 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 03a6b8be9618..0b10cc4a0d3e 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2233,14 +2233,15 @@ void igt_remove_fb(int fd, struct igt_fb *fb)
}
/**
- * igt_fb_convert:
+ * igt_fb_convert_with_stride:
* @dst: pointer to the #igt_fb structure that will store the conversion result
* @src: pointer to the #igt_fb structure that stores the frame we convert
* @dst_fourcc: DRM format specifier to convert to
+ * @dst_stride: Stride for the resulting framebuffer (0 for automatic stride)
*
* This will convert a given @src content to the @dst_fourcc format,
* storing the result in the @dst fb, allocating the @dst fb
- * underlying buffer.
+ * underlying buffer with a stride of @dst_stride stride.
*
* Once done with @dst, the caller will have to call igt_remove_fb()
* on it to free the associated resources.
@@ -2248,15 +2249,18 @@ void igt_remove_fb(int fd, struct igt_fb *fb)
* Returns:
* The kms id of the created framebuffer.
*/
-unsigned int igt_fb_convert(struct igt_fb *dst, struct igt_fb *src,
- uint32_t dst_fourcc)
+unsigned int igt_fb_convert_with_stride(struct igt_fb *dst, struct igt_fb *src,
+ uint32_t dst_fourcc,
+ unsigned int dst_stride)
{
struct fb_convert cvt = { };
void *dst_ptr, *src_ptr;
int fb_id;
- fb_id = igt_create_fb(src->fd, src->width, src->height,
- dst_fourcc, LOCAL_DRM_FORMAT_MOD_NONE, dst);
+ fb_id = igt_create_fb_with_bo_size(src->fd, src->width, src->height,
+ dst_fourcc,
+ LOCAL_DRM_FORMAT_MOD_NONE,
+ dst, 0, dst_stride);
igt_assert(fb_id > 0);
src_ptr = igt_fb_map_buffer(src->fd, src);
@@ -2277,6 +2281,28 @@ unsigned int igt_fb_convert(struct igt_fb *dst, struct igt_fb *src,
return fb_id;
}
+/**
+ * igt_fb_convert:
+ * @dst: pointer to the #igt_fb structure that will store the conversion result
+ * @src: pointer to the #igt_fb structure that stores the frame we convert
+ * @dst_fourcc: DRM format specifier to convert to
+ *
+ * This will convert a given @src content to the @dst_fourcc format,
+ * storing the result in the @dst fb, allocating the @dst fb
+ * underlying buffer.
+ *
+ * Once done with @dst, the caller will have to call igt_remove_fb()
+ * on it to free the associated resources.
+ *
+ * Returns:
+ * The kms id of the created framebuffer.
+ */
+unsigned int igt_fb_convert(struct igt_fb *dst, struct igt_fb *src,
+ uint32_t dst_fourcc)
+{
+ return igt_fb_convert_with_stride(dst, src, dst_fourcc, 0);
+}
+
/**
* igt_bpp_depth_to_drm_format:
* @bpp: desired bits per pixel
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 9f027deba842..cb21fdbc77a3 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -130,6 +130,9 @@ unsigned int igt_create_image_fb(int drm_fd, int width, int height,
struct igt_fb *fb /* out */);
unsigned int igt_create_stereo_fb(int drm_fd, drmModeModeInfo *mode,
uint32_t format, uint64_t tiling);
+unsigned int igt_fb_convert_with_stride(struct igt_fb *dst, struct igt_fb *src,
+ uint32_t dst_fourcc,
+ unsigned int stride);
unsigned int igt_fb_convert(struct igt_fb *dst, struct igt_fb *src,
uint32_t dst_fourcc);
void igt_remove_fb(int fd, struct igt_fb *fb);
--
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-01-11 9:06 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 9:05 [igt-dev] [PATCH i-g-t v3 00/21] Chamelium VC4 plane fuzzy testing, with SAND and T-tiled mode Paul Kocialkowski
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 01/21] lib: drmtest: Add helpers to check and require the VC4 driver Paul Kocialkowski
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 02/21] lib/igt_fb: Add checks on i915 for i915-specific tiled buffer allocation Paul Kocialkowski
2019-01-11 15:09 ` Maxime Ripard
2019-01-15 0:39 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 03/21] lib/igt_fb: Add support for allocating T-tiled VC4 buffers Paul Kocialkowski
2019-01-11 15:09 ` Maxime Ripard
2019-01-15 0:41 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 04/21] lib/igt_fb: Add support for VC4 SAND tiling modes Paul Kocialkowski
2019-01-11 15:09 ` Maxime Ripard
2019-01-15 0:43 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 05/21] lib/igt_fb: Allow interpreting the tile height as a stride equivalent Paul Kocialkowski
2019-01-11 15:10 ` Maxime Ripard
2019-01-15 0:45 ` Lyude Paul
2019-01-11 9:05 ` Paul Kocialkowski [this message]
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 07/21] lib/igt_fb: Add a helper to retreive the plane bpp for a given format Paul Kocialkowski
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 08/21] lib/igt_fb: Add a helper to fill-in the available DRM formats Paul Kocialkowski
2019-01-15 20:49 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 09/21] lib/igt_vc4: Add helpers for converting linear to T-tiled RGB buffers Paul Kocialkowski
2019-01-11 15:25 ` Maxime Ripard
2019-01-14 14:57 ` Paul Kocialkowski
2019-01-15 21:20 ` Lyude Paul
2019-01-22 16:07 ` Paul Kocialkowski
2019-01-22 17:47 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 10/21] lib/igt_vc4: Add helper for checking T-tiling support on plane Paul Kocialkowski
2019-01-11 15:11 ` Maxime Ripard
2019-01-15 21:49 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 11/21] lib/igt_vc4: Add helpers for converting linear to SAND-tiled buffers Paul Kocialkowski
2019-01-15 21:53 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 12/21] lib/igt_vc4: Add helper for checking SAND tiling support on plane Paul Kocialkowski
2019-01-11 15:15 ` Maxime Ripard
2019-01-14 15:01 ` Paul Kocialkowski
2019-01-15 8:25 ` Maxime Ripard
2019-01-15 21:54 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 13/21] lib/igt_kms: Add helpers to count and iterate planes from pipe Paul Kocialkowski
2019-01-11 15:11 ` Maxime Ripard
2019-01-15 21:57 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 14/21] lib/igt_kms: Add helpers to count and iterate planes from output Paul Kocialkowski
2019-01-11 15:12 ` Maxime Ripard
2019-01-15 22:00 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 15/21] lib/igt_chamelium: Fixup resources liberation in comparison helpers Paul Kocialkowski
2019-01-11 15:15 ` Maxime Ripard
2019-01-15 22:01 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 16/21] lib/igt_chamelium: Split frames dump logic and rework surroundings Paul Kocialkowski
2019-01-11 15:16 ` Maxime Ripard
2019-01-15 22:05 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 17/21] lib/igt_chamelium: Generalize the frame match helper with check type Paul Kocialkowski
2019-01-11 15:17 ` Maxime Ripard
2019-01-15 22:07 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 18/21] lib/igt_frame: Add a checkerboard frame comparison method Paul Kocialkowski
2019-01-11 15:19 ` Maxime Ripard
2019-01-14 15:04 ` Paul Kocialkowski
2019-01-15 16:13 ` Maxime Ripard
2019-01-15 22:14 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 19/21] lib/igt_chamelium: Hook-in checkerboard comparison method in helpers Paul Kocialkowski
2019-01-11 15:19 ` Maxime Ripard
2019-01-15 22:14 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 20/21] chamelium: Move the YUV tests over to the checkerboard checking method Paul Kocialkowski
2019-01-11 15:20 ` Maxime Ripard
2019-01-15 22:15 ` Lyude Paul
2019-01-11 9:05 ` [igt-dev] [PATCH i-g-t v3 21/21] chamelium: Add a display test for randomized planes Paul Kocialkowski
2019-01-11 15:23 ` Maxime Ripard
2019-01-15 22:56 ` Lyude Paul
2019-01-25 13:58 ` Paul Kocialkowski
2019-01-11 9:29 ` [igt-dev] ✗ Fi.CI.BAT: failure for Chamelium VC4 plane fuzzy testing, with SAND and T-tiled mode Patchwork
2019-01-15 0:46 ` [igt-dev] [PATCH i-g-t v3 00/21] " Lyude Paul
2019-01-15 9:34 ` 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=20190111090532.19235-7-paul.kocialkowski@bootlin.com \
--to=paul.kocialkowski@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