All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lyude Paul <lyude@redhat.com>
To: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: igt-dev@lists.freedesktop.org,
	Petri Latvala <petri.latvala@intel.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	eben@raspberrypi.org
Subject: Re: [igt-dev] [PATCH i-g-t v5 07/13] igt: fb: Don't pass the stride when allocating a dumb, multi-planar buffer
Date: Thu, 31 Jan 2019 13:42:52 -0500	[thread overview]
Message-ID: <f35b30e5ebc9c9737b7a619a064ec9b804c8401a.camel@redhat.com> (raw)
In-Reply-To: <20190130153828.4gd5mr546spvamgx@flea>

On Wed, 2019-01-30 at 16:38 +0100, Maxime Ripard wrote:
> Hi!
> 
> On Tue, Jan 29, 2019 at 03:08:10PM -0500, Lyude Paul wrote:
> > On Fri, 2019-01-25 at 15:58 +0100, Maxime Ripard wrote:
> > > The dumb buffer allocation API only considers a single plane, and even
> > > though allocating multi-planar buffers through it is allowed, the stride
> > > it
> > > gives back is the the width times the bpp passed as an argument.
> > > 
> > > That doesn't work in our case, since the bpp is going to be the one we
> > > give
> > > as an argument, but split over three planes so the stride doesn't match
> > > anymore.
> > > 
> > > A proper fix for this would be to have a better dumb buffer allocation
> > > API,
> > > but for the time being, let's do it that way.
> > > 
> > > Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
> > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
> > > ---
> > >  lib/igt_fb.c | 17 ++++++++++++++++-
> > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> > > index 1c52aebb674e..048d274e5d36 100644
> > > --- a/lib/igt_fb.c
> > > +++ b/lib/igt_fb.c
> > > @@ -530,6 +530,7 @@ static int create_bo_for_fb(struct igt_fb *fb)
> > >  {
> > >  	const struct format_desc_struct *fmt = lookup_drm_format(fb-
> > > > drm_format);
> > >  	unsigned int plane, bpp;
> > > +	unsigned *strides = &fb->strides[0];
> > >  	int fd = fb->fd;
> > >  
> > >  	if (fb->tiling || fb->size || fb->strides[0] || igt_format_is_yuv(fb-
> > > > drm_format)) {
> > > @@ -575,8 +576,22 @@ static int create_bo_for_fb(struct igt_fb *fb)
> > >  				    plane ? fmt->hsub * fmt->vsub : 1);
> > >  
> > >  	fb->is_dumb = true;
> > > +
> > > +	/*
> > > +	 * We can't really pass the stride array here since the dumb
> > > +	 * buffer allocation is assuming that it operates on one
> > > +	 * plane, and therefore will calculate the stride as if each
> > > +	 * pixels were stored on a single plane.
> > 
> > nitpick: s/each pixels were/each pixel was/
> > 
> > > +	 *
> > > +	 * This might cause issues at some point on drivers that would
> > > +	 * change the stride of YUV buffers, but we haven't
> > > +	 * encountered any yet.
> > > +	 */
> > Is it possible to add an igt_assert to check for this? Either way, with
> > those
> > changes:
> 
> I'm not sure we can test this actually. If we don't pass any pointer,
> then we don't get a stride back, and if we do then we will always get
> a stride that is wrong for what we're trying to do :/
Ah, makes sense
> 
> Maxime
> 
-- 
Cheers,
	Lyude Paul

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-01-31 18:43 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-25 14:58 [igt-dev] [PATCH i-g-t v5 00/13] igt: chamelium: Test YUV buffers using the Chamelium Maxime Ripard
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 01/13] igt: fb: Add subsampling parameters to the formats Maxime Ripard
2019-01-29 19:42   ` Lyude Paul
2019-02-05 12:52   ` Paul Kocialkowski
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 02/13] igt: fb: Reduce tile size alignment for non intel platforms Maxime Ripard
2019-01-29 19:42   ` Lyude Paul
2019-02-05 12:52   ` Paul Kocialkowski
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 03/13] igt: fb: generic YUV convertion function Maxime Ripard
2019-01-29 19:42   ` Lyude Paul
2019-01-29 20:07   ` Ville Syrjälä
2019-01-30 15:06     ` Maxime Ripard
2019-02-05 12:53   ` Paul Kocialkowski
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 04/13] igt: fb: Move i915 YUV buffer clearing code to a function Maxime Ripard
2019-01-29 19:43   ` Lyude Paul
2019-02-05 12:53   ` Paul Kocialkowski
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 05/13] igt: fb: Refactor dumb buffer allocation path Maxime Ripard
2019-01-25 16:16   ` Deepak Singh Rawat
2019-01-30 14:18     ` Maxime Ripard
2019-01-29 19:46   ` Lyude Paul
2019-01-30 15:25     ` Maxime Ripard
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 06/13] igt: fb: Account for all planes bpp Maxime Ripard
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 07/13] igt: fb: Don't pass the stride when allocating a dumb, multi-planar buffer Maxime Ripard
2019-01-29 20:08   ` Lyude Paul
2019-01-30 15:38     ` Maxime Ripard
2019-01-31 18:42       ` Lyude Paul [this message]
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 08/13] igt: fb: Clear YUV dumb buffers Maxime Ripard
2019-01-29 20:08   ` Lyude Paul
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 09/13] igt: fb: Rework YUV i915 allocation path Maxime Ripard
2019-01-25 15:34   ` Paul Kocialkowski
2019-01-29 20:10   ` Lyude Paul
2019-02-05  9:40   ` Paul Kocialkowski
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 10/13] igt: fb: Add a bunch of new YUV formats Maxime Ripard
2019-01-29 20:11   ` Lyude Paul
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 11/13] igt: tests: chamelium: Start to unify tests Maxime Ripard
2019-01-29 20:13   ` Lyude Paul
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 12/13] igt: tests: chamelium: Convert VGA tests to do_test_display Maxime Ripard
2019-01-29 20:14   ` Lyude Paul
2019-01-25 14:58 ` [igt-dev] [PATCH i-g-t v5 13/13] igt: tests: chamelium: Add YUV formats tests Maxime Ripard
2019-01-29 20:14   ` Lyude Paul
2019-01-25 15:50 ` [igt-dev] ✗ Fi.CI.BAT: failure for igt: chamelium: Test YUV buffers using the Chamelium (rev7) 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=f35b30e5ebc9c9737b7a619a064ec9b804c8401a.camel@redhat.com \
    --to=lyude@redhat.com \
    --cc=eben@raspberrypi.org \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=maxime.ripard@bootlin.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.