From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH RESEND i-g-t v6 07/22] lib/igt_fb: Add a stride-provisioned fashion of igt_fb_convert
Date: Fri, 22 Feb 2019 12:25:28 +0100 [thread overview]
Message-ID: <20190222112543.6885-8-paul.kocialkowski@bootlin.com> (raw)
In-Reply-To: <20190222112543.6885-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 92899aa8b601..f19892490884 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2553,14 +2553,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.
@@ -2568,15 +2569,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);
@@ -2597,6 +2601,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 8c683db5e9ec..232370bd47a0 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -136,6 +136,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-02-22 11:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-22 11:25 [igt-dev] [PATCH RESEND i-g-t v6 00/22] Chamelium VC4 plane fuzzy testing, with SAND and T-tiled mode Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 01/22] lib: drmtest: Add helpers to check and require the VC4 driver Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 02/22] lib/igt_fb: Add checks on i915 for i915-specific tiled buffer allocation Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 03/22] lib/igt_fb: Refactor create_bo_for_fb to prepare for VC4 support Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 04/22] lib/igt_fb: Add support for allocating T-tiled VC4 buffers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 05/22] lib/igt_fb: Add support for VC4 SAND tiling modes Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 06/22] lib/igt_fb: Allow interpreting the tile height as a stride equivalent Paul Kocialkowski
2019-02-22 11:25 ` Paul Kocialkowski [this message]
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 08/22] lib/igt_fb: Add a helper to retreive the plane bpp for a given format Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 09/22] lib/igt_fb: Add a helper to fill-in the available DRM formats Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 10/22] lib/igt_vc4: Add helpers for converting linear to T-tiled RGB buffers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 11/22] lib/igt_vc4: Add helpers for converting linear to SAND-tiled buffers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 12/22] lib/igt_fb: Pass the modifier to igt_fb_convert helpers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 13/22] lib/igt_fb: Support converting to VC4 modifiers in igt_fb_convert Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 14/22] lib/igt_kms: Add helpers to count and iterate planes from pipe Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 15/22] lib/igt_kms: Add helpers to count and iterate planes from output Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 16/22] lib/igt_chamelium: Fixup resources liberation in comparison helpers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 17/22] lib/igt_chamelium: Split frames dump logic and rework surroundings Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 18/22] lib/igt_chamelium: Generalize the frame match helper with check type Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 19/22] lib/igt_frame: Add a checkerboard frame comparison method Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 20/22] lib/igt_chamelium: Hook-in checkerboard comparison method in helpers Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 21/22] chamelium: Move the YUV tests over to the checkerboard checking method Paul Kocialkowski
2019-02-22 11:25 ` [igt-dev] [PATCH RESEND i-g-t v6 22/22] chamelium: Add a display test for randomized planes Paul Kocialkowski
2019-02-22 12:09 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium VC4 plane fuzzy testing, with SAND and T-tiled mode Patchwork
2019-02-22 21:12 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
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=20190222112543.6885-8-paul.kocialkowski@bootlin.com \
--to=paul.kocialkowski@bootlin.com \
--cc=igt-dev@lists.freedesktop.org \
/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