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

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Feb 8 17:12:49 UTC 2024


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