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

Kulkarni, Vandita vandita.kulkarni at intel.com
Thu Feb 8 16:03:49 UTC 2024


> -----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.
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);



More information about the igt-dev mailing list