[PATCH i-g-t] tests/kms_async_flip: Reduce the clobbering area used for CRC test

Kulkarni, Vandita vandita.kulkarni at intel.com
Fri Mar 15 06:21:40 UTC 2024


Thanks Ville and JP for you feedback.
After further analysis, I found that on some platforms after first mmap, updating the pixels take longer.
I have sent out a series to reuse already mmaped buffer since we are using only 2 buffers here in this test.
[PATCH i-g-t 0/3] Add support to paint already mmaped buffer, I have seen it help reduce the time during my testing.

-Vandita
> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Sent: Thursday, February 8, 2024 10:43 PM
> To: Kulkarni, Vandita <vandita.kulkarni at intel.com>
> Cc: juhapekka.heikkila at gmail.com; igt-dev at lists.freedesktop.org; B S,
> Karthik <karthik.b.s at intel.com>
> Subject: Re: [PATCH i-g-t] tests/kms_async_flip: Reduce the clobbering area
> used for CRC test
> 
> On Thu, Feb 08, 2024 at 04:03:49PM +0000, Kulkarni, Vandita wrote:
> > > -----Original Message-----
> > > From: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> > > Sent: Thursday, February 8, 2024 7:39 PM
> > > To: Kulkarni, Vandita <vandita.kulkarni at intel.com>; igt-
> > > dev at lists.freedesktop.org
> > > Cc: ville.syrjala at linux.intel.com; B S, Karthik
> > > <karthik.b.s at intel.com>
> > > Subject: Re: [PATCH i-g-t] tests/kms_async_flip: Reduce the
> > > clobbering area used for CRC test
> > >
> > > Hi Vandita,
> > >
> > > On 8.2.2024 14.10, Vandita Kulkarni wrote:
> > > > On some platforms wc_mmap write takes longer to paint the fb,
> > > > which we are using to clobber the already scanned buffer for CRC.
> > > > Hence reducing the clobbered area.
> > > >
> > > > Signed-off-by: Vandita Kulkarni <vandita.kulkarni at intel.com>
> > > > ---
> > > >   tests/kms_async_flips.c | 4 ++--
> > > >   1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> > > > index
> > > > a0349fa03..2e5960943 100644
> > > > --- a/tests/kms_async_flips.c
> > > > +++ b/tests/kms_async_flips.c
> > > > @@ -589,7 +589,7 @@ static void test_crc(data_t *data)
> > > >
> > > >   	while (clock_ms() - start < 2000) {
> > > >   		/* fill the next fb with the expected color */
> > > > -		paint_fb(data, &data->bufs[frame], 1, height, 0xff0000ff);
> > > > +		paint_fb(data, &data->bufs[frame], 10, 10, 0xff0000ff);
> > >
> > > Here really is needed to be painted full height of the framebuffer
> > > and that width can be kept at 1 as any number higher will just increase
> the work.
> > >
> > > For async flip part of fb which will become visible is not known
> > > here so the full height of the fb need to be painted on to catch if
> > > there was something going wrong.
> > Thanks JP for the feedback, you are right, for async flip we might not
> > know if the previous fb is still being scanned until we check the last line.
> > This might not be the solution then.
> >
> > Other option(on non fixed panels) where we can optimize is by
> > selecting the smallest mode, where as  now mode[0] is being picked.
> 
> I already did that once, but it broke something, and was reverted.
> See commit 79483e9ae4fe ("Revert "tests/kms_async_flips: Make the crc test
> faster"")
> 
> Hmm. Looking at that revert maybe the problem was that I just used that
> hardcoded 1024x768 mode, which perhaps didn't work due to i915 still
> missing the PLL algorithm for the newer platforms. Picking a smallish mode
> from the connector's mode list might work better.
> 
> > Incase we pick the smallest mode we might have to write a new case to
> > test async flips with bigjoiner.
> > Also it is really not clear on which platforms and drivers, how much
> > time it would take to paint 1xh fb. I will try to check further on this.
> >
> > Thanks,
> > Vandita
> > >
> > > >
> > > >   		data->flip_pending = true;
> > > >   		ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> > > > data->bufs[frame].fb_id, @@ -600,7 +600,7 @@ static void
> > > > test_crc(data_t *data)
> > > >
> > > >   		/* clobber the previous fb which should no longer be
> > > scanned out */
> > > >   		frame = !frame;
> > > > -		paint_fb(data, &data->bufs[frame], 1, height, rand());
> > > > +		paint_fb(data, &data->bufs[frame], 10, 10, rand());
> > > >   	}
> > > >
> > > >   	igt_pipe_crc_stop(data->pipe_crc);
> >
> 
> --
> Ville Syrjälä
> Intel


More information about the igt-dev mailing list