Message ID | 1622176025-12499-1-git-send-email-vidya.srinivas@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [i-g-t,RFC] tests/kms_big_fb: Wait for vblank before collecting CRC | expand |
On Fri, May 28, 2021 at 12:36 AM Vidya Srinivas <vidya.srinivas@intel.com> wrote: > > Without wait for vblank, CRC mismatch is seen > between big and small CRC on few Gen11 systems. > Tested on ChromeOS on JSL (Drawlat). Tested-by: Mark Yacoub <markyacoub@chromium.org> > Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> > --- > tests/kms_big_fb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c > index b35727a09bd0..f90363c3beb2 100644 > --- a/tests/kms_big_fb.c > +++ b/tests/kms_big_fb.c > @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) > static bool test_plane(data_t *data) > { > igt_plane_t *plane = data->plane; > + igt_display_t *display = &data->display; > struct igt_fb *small_fb = &data->small_fb; > struct igt_fb *big_fb = &data->big_fb; > int w = data->big_fb_width - small_fb->width; > @@ -337,16 +338,17 @@ static bool test_plane(data_t *data) > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > > - > + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); > > igt_plane_set_fb(plane, big_fb); > igt_fb_set_position(big_fb, plane, x, y); > igt_fb_set_size(big_fb, plane, small_fb->width, small_fb->height); > + > igt_plane_set_size(plane, data->width, data->height); > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > - > + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); > > igt_plane_set_fb(plane, NULL); > -- > 2.7.4 >
Thank you very much Mark, for testing the patch and providing the "Tested-by" tag. Regards Vidya -----Original Message----- From: Mark Yacoub <markyacoub@chromium.org> Sent: Saturday, June 5, 2021 12:20 AM To: Srinivas, Vidya <vidya.srinivas@intel.com> Cc: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org; Almahallawy, Khaled <khaled.almahallawy@intel.com>; Lin, Charlton <charlton.lin@intel.com> Subject: Re: [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On Fri, May 28, 2021 at 12:36 AM Vidya Srinivas <vidya.srinivas@intel.com> wrote: > > Without wait for vblank, CRC mismatch is seen between big and small > CRC on few Gen11 systems. > Tested on ChromeOS on JSL (Drawlat). Tested-by: Mark Yacoub <markyacoub@chromium.org> > Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> > --- > tests/kms_big_fb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index > b35727a09bd0..f90363c3beb2 100644 > --- a/tests/kms_big_fb.c > +++ b/tests/kms_big_fb.c > @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) static bool > test_plane(data_t *data) { > igt_plane_t *plane = data->plane; > + igt_display_t *display = &data->display; > struct igt_fb *small_fb = &data->small_fb; > struct igt_fb *big_fb = &data->big_fb; > int w = data->big_fb_width - small_fb->width; @@ -337,16 > +338,17 @@ static bool test_plane(data_t *data) > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > > - > + igt_wait_for_vblank(data->drm_fd, > + display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); > > igt_plane_set_fb(plane, big_fb); > igt_fb_set_position(big_fb, plane, x, y); > igt_fb_set_size(big_fb, plane, small_fb->width, > small_fb->height); > + > igt_plane_set_size(plane, data->width, data->height); > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > - > + igt_wait_for_vblank(data->drm_fd, > + display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); > > igt_plane_set_fb(plane, NULL); > -- > 2.7.4 >
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Vidya > Srinivas > Sent: Friday, May 28, 2021 9:57 AM > To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org > Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> > Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank > before collecting CRC > > Without wait for vblank, CRC mismatch is seen > between big and small CRC on few Gen11 systems. > > Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> > --- > tests/kms_big_fb.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c > index b35727a09bd0..f90363c3beb2 100644 > --- a/tests/kms_big_fb.c > +++ b/tests/kms_big_fb.c > @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) > static bool test_plane(data_t *data) > { > igt_plane_t *plane = data->plane; > + igt_display_t *display = &data->display; For code readability purpose, I think we need to update to use this variable wherever we are using "&data->display" in this function. s/"&data->display"/"display"/ With above change, this patch LGTM Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > struct igt_fb *small_fb = &data->small_fb; > struct igt_fb *big_fb = &data->big_fb; > int w = data->big_fb_width - small_fb->width; > @@ -337,16 +338,17 @@ static bool test_plane(data_t *data) > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > > - > + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); > > igt_plane_set_fb(plane, big_fb); > igt_fb_set_position(big_fb, plane, x, y); > igt_fb_set_size(big_fb, plane, small_fb->width, small_fb->height); > + > igt_plane_set_size(plane, data->width, data->height); > igt_display_commit2(&data->display, data->display.is_atomic ? > COMMIT_ATOMIC : COMMIT_UNIVERSAL); > - > + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); > igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); > > igt_plane_set_fb(plane, NULL); > -- > 2.7.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Vidya >> Srinivas >> Sent: Friday, May 28, 2021 9:57 AM >> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank >> before collecting CRC >> >> Without wait for vblank, CRC mismatch is seen >> between big and small CRC on few Gen11 systems. >> >> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >> --- >> tests/kms_big_fb.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c >> index b35727a09bd0..f90363c3beb2 100644 >> --- a/tests/kms_big_fb.c >> +++ b/tests/kms_big_fb.c >> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >> static bool test_plane(data_t *data) >> { >> igt_plane_t *plane = data->plane; >> + igt_display_t *display = &data->display; > > For code readability purpose, I think we need to update to use this variable > wherever we are using "&data->display" in this function. > s/"&data->display"/"display"/ > > With above change, this patch LGTM > Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. >> struct igt_fb *small_fb = &data->small_fb; >> struct igt_fb *big_fb = &data->big_fb; >> int w = data->big_fb_width - small_fb->width; >> @@ -337,16 +338,17 @@ static bool test_plane(data_t *data) >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> >> - >> + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? /Juha-Pekka >> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >> >> igt_plane_set_fb(plane, big_fb); >> igt_fb_set_position(big_fb, plane, x, y); >> igt_fb_set_size(big_fb, plane, small_fb->width, small_fb->height); >> + spurious empty line need to be removed. >> igt_plane_set_size(plane, data->width, data->height); >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> - >> + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); >> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >> >> igt_plane_set_fb(plane, NULL); >> -- >> 2.7.4 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ > igt-dev mailing list > igt-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/igt-dev >
Hello Juha-Pekka and Bhanu Thank you for the review comments. Apologies Juha-Pekka, I will incorporate your review comments and try out. Regards Vidya -----Original Message----- From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Sent: Tuesday, June 8, 2021 1:04 PM To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas, Vidya <vidya.srinivas@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org Cc: Lin, Charlton <charlton.lin@intel.com> Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf >> Of Vidya Srinivas >> Sent: Friday, May 28, 2021 9:57 AM >> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for >> vblank before collecting CRC >> >> Without wait for vblank, CRC mismatch is seen between big and small >> CRC on few Gen11 systems. >> >> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >> --- >> tests/kms_big_fb.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index >> b35727a09bd0..f90363c3beb2 100644 >> --- a/tests/kms_big_fb.c >> +++ b/tests/kms_big_fb.c >> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >> static bool test_plane(data_t *data) >> { >> igt_plane_t *plane = data->plane; >> + igt_display_t *display = &data->display; > > For code readability purpose, I think we need to update to use this > variable wherever we are using "&data->display" in this function. > s/"&data->display"/"display"/ > > With above change, this patch LGTM > Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. >> struct igt_fb *small_fb = &data->small_fb; >> struct igt_fb *big_fb = &data->big_fb; >> int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 >> @@ static bool test_plane(data_t *data) >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> >> - >> + igt_wait_for_vblank(data->drm_fd, >> +display->pipes[data->pipe].crtc_offset); Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? /Juha-Pekka >> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >> >> igt_plane_set_fb(plane, big_fb); >> igt_fb_set_position(big_fb, plane, x, y); >> igt_fb_set_size(big_fb, plane, small_fb->width, >> small_fb->height); >> + spurious empty line need to be removed. >> igt_plane_set_size(plane, data->width, data->height); >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> - >> + igt_wait_for_vblank(data->drm_fd, >> +display->pipes[data->pipe].crtc_offset); >> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >> >> igt_plane_set_fb(plane, NULL); >> -- >> 2.7.4 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ > igt-dev mailing list > igt-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/igt-dev >
Hello Juha-Pekka Instead of wait for vblank, this also works igt_pipe_crc_start-> igt_pipe_crc_get_current for small fb after commit -> then igt_pipe_crc_get_current For big fb -> compare -> igt_pipe_crc_stop Would this change be okay? Kindly suggest. igt_pipe_crc_collect_crc is not working. It gives CRC mismatch for few subtests like subtest y-tiled-32bpp-rotate-0 Have submitted the change here https://patchwork.freedesktop.org/patch/437657/?series=90389&rev=6 Thank you so much. Regards Vidya -----Original Message----- From: Srinivas, Vidya Sent: Tuesday, June 8, 2021 1:19 PM To: juhapekka.heikkila@gmail.com; Modem, Bhanuprakash <Bhanuprakash.Modem@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org Cc: Lin, Charlton <Charlton.Lin@intel.com> Subject: RE: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC Hello Juha-Pekka and Bhanu Thank you for the review comments. Apologies Juha-Pekka, I will incorporate your review comments and try out. Regards Vidya -----Original Message----- From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Sent: Tuesday, June 8, 2021 1:04 PM To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas, Vidya <vidya.srinivas@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org Cc: Lin, Charlton <charlton.lin@intel.com> Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf >> Of Vidya Srinivas >> Sent: Friday, May 28, 2021 9:57 AM >> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for >> vblank before collecting CRC >> >> Without wait for vblank, CRC mismatch is seen between big and small >> CRC on few Gen11 systems. >> >> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >> --- >> tests/kms_big_fb.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index >> b35727a09bd0..f90363c3beb2 100644 >> --- a/tests/kms_big_fb.c >> +++ b/tests/kms_big_fb.c >> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >> static bool test_plane(data_t *data) >> { >> igt_plane_t *plane = data->plane; >> + igt_display_t *display = &data->display; > > For code readability purpose, I think we need to update to use this > variable wherever we are using "&data->display" in this function. > s/"&data->display"/"display"/ > > With above change, this patch LGTM > Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. >> struct igt_fb *small_fb = &data->small_fb; >> struct igt_fb *big_fb = &data->big_fb; >> int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 >> @@ static bool test_plane(data_t *data) >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> >> - >> + igt_wait_for_vblank(data->drm_fd, >> +display->pipes[data->pipe].crtc_offset); Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? /Juha-Pekka >> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >> >> igt_plane_set_fb(plane, big_fb); >> igt_fb_set_position(big_fb, plane, x, y); >> igt_fb_set_size(big_fb, plane, small_fb->width, >> small_fb->height); >> + spurious empty line need to be removed. >> igt_plane_set_size(plane, data->width, data->height); >> igt_display_commit2(&data->display, data->display.is_atomic ? >> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >> - >> + igt_wait_for_vblank(data->drm_fd, >> +display->pipes[data->pipe].crtc_offset); >> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >> >> igt_plane_set_fb(plane, NULL); >> -- >> 2.7.4 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ > igt-dev mailing list > igt-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/igt-dev >
On 8.6.2021 12.19, Srinivas, Vidya wrote: > Hello Juha-Pekka > > Instead of wait for vblank, this also works > igt_pipe_crc_start-> igt_pipe_crc_get_current for small fb after commit -> then igt_pipe_crc_get_current For big fb -> compare -> igt_pipe_crc_stop > > Would this change be okay? Kindly suggest. igt_pipe_crc_collect_crc is not working. It gives CRC mismatch for few subtests like subtest y-tiled-32bpp-rotate-0 This change is ok. It kind of implies there maybe is some problem on your platform with starting of crc calculation but if this is only place where it will show I'm ok with that since crc will not affect normal users in any way. I noticed your new patch, lets see how all ci machines behave on that before doing anything else. /Juha-Pekka > > Have submitted the change here https://patchwork.freedesktop.org/patch/437657/?series=90389&rev=6 > > Thank you so much. > > Regards > Vidya > > -----Original Message----- > From: Srinivas, Vidya > Sent: Tuesday, June 8, 2021 1:19 PM > To: juhapekka.heikkila@gmail.com; Modem, Bhanuprakash <Bhanuprakash.Modem@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <Charlton.Lin@intel.com> > Subject: RE: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC > > Hello Juha-Pekka and Bhanu > > Thank you for the review comments. Apologies Juha-Pekka, I will incorporate your review comments and try out. > > Regards > Vidya > > > -----Original Message----- > From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > Sent: Tuesday, June 8, 2021 1:04 PM > To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas, Vidya <vidya.srinivas@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <charlton.lin@intel.com> > Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC > > On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >>> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf >>> Of Vidya Srinivas >>> Sent: Friday, May 28, 2021 9:57 AM >>> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >>> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >>> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for >>> vblank before collecting CRC >>> >>> Without wait for vblank, CRC mismatch is seen between big and small >>> CRC on few Gen11 systems. >>> >>> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >>> --- >>> tests/kms_big_fb.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index >>> b35727a09bd0..f90363c3beb2 100644 >>> --- a/tests/kms_big_fb.c >>> +++ b/tests/kms_big_fb.c >>> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >>> static bool test_plane(data_t *data) >>> { >>> igt_plane_t *plane = data->plane; >>> + igt_display_t *display = &data->display; >> >> For code readability purpose, I think we need to update to use this >> variable wherever we are using "&data->display" in this function. >> s/"&data->display"/"display"/ >> >> With above change, this patch LGTM >> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> >> > > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. > > >>> struct igt_fb *small_fb = &data->small_fb; >>> struct igt_fb *big_fb = &data->big_fb; >>> int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 >>> @@ static bool test_plane(data_t *data) >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); > > Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? > > /Juha-Pekka > >>> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >>> >>> igt_plane_set_fb(plane, big_fb); >>> igt_fb_set_position(big_fb, plane, x, y); >>> igt_fb_set_size(big_fb, plane, small_fb->width, >>> small_fb->height); >>> + > > spurious empty line need to be removed. > >>> igt_plane_set_size(plane, data->width, data->height); >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); >>> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >>> >>> igt_plane_set_fb(plane, NULL); >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >> _______________________________________________ >> igt-dev mailing list >> igt-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/igt-dev >> >
Thank you so much Juha-Pekka. Regards Vidya -----Original Message----- From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Sent: Tuesday, June 8, 2021 5:21 PM To: Srinivas, Vidya <vidya.srinivas@intel.com>; Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org Cc: Lin, Charlton <charlton.lin@intel.com> Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On 8.6.2021 12.19, Srinivas, Vidya wrote: > Hello Juha-Pekka > > Instead of wait for vblank, this also works igt_pipe_crc_start-> > igt_pipe_crc_get_current for small fb after commit -> then > igt_pipe_crc_get_current For big fb -> compare -> igt_pipe_crc_stop > > Would this change be okay? Kindly suggest. igt_pipe_crc_collect_crc is > not working. It gives CRC mismatch for few subtests like subtest > y-tiled-32bpp-rotate-0 This change is ok. It kind of implies there maybe is some problem on your platform with starting of crc calculation but if this is only place where it will show I'm ok with that since crc will not affect normal users in any way. I noticed your new patch, lets see how all ci machines behave on that before doing anything else. /Juha-Pekka > > Have submitted the change here > https://patchwork.freedesktop.org/patch/437657/?series=90389&rev=6 > > Thank you so much. > > Regards > Vidya > > -----Original Message----- > From: Srinivas, Vidya > Sent: Tuesday, June 8, 2021 1:19 PM > To: juhapekka.heikkila@gmail.com; Modem, Bhanuprakash > <Bhanuprakash.Modem@intel.com>; intel-gfx@lists.freedesktop.org; > igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <Charlton.Lin@intel.com> > Subject: RE: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] > tests/kms_big_fb: Wait for vblank before collecting CRC > > Hello Juha-Pekka and Bhanu > > Thank you for the review comments. Apologies Juha-Pekka, I will incorporate your review comments and try out. > > Regards > Vidya > > > -----Original Message----- > From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > Sent: Tuesday, June 8, 2021 1:04 PM > To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas, > Vidya <vidya.srinivas@intel.com>; intel-gfx@lists.freedesktop.org; > igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <charlton.lin@intel.com> > Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] > tests/kms_big_fb: Wait for vblank before collecting CRC > > On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >>> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf >>> Of Vidya Srinivas >>> Sent: Friday, May 28, 2021 9:57 AM >>> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >>> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >>> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for >>> vblank before collecting CRC >>> >>> Without wait for vblank, CRC mismatch is seen between big and small >>> CRC on few Gen11 systems. >>> >>> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >>> --- >>> tests/kms_big_fb.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index >>> b35727a09bd0..f90363c3beb2 100644 >>> --- a/tests/kms_big_fb.c >>> +++ b/tests/kms_big_fb.c >>> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >>> static bool test_plane(data_t *data) >>> { >>> igt_plane_t *plane = data->plane; >>> + igt_display_t *display = &data->display; >> >> For code readability purpose, I think we need to update to use this >> variable wherever we are using "&data->display" in this function. >> s/"&data->display"/"display"/ >> >> With above change, this patch LGTM >> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> >> > > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. > > >>> struct igt_fb *small_fb = &data->small_fb; >>> struct igt_fb *big_fb = &data->big_fb; >>> int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 >>> @@ static bool test_plane(data_t *data) >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); > > Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? > > /Juha-Pekka > >>> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >>> >>> igt_plane_set_fb(plane, big_fb); >>> igt_fb_set_position(big_fb, plane, x, y); >>> igt_fb_set_size(big_fb, plane, small_fb->width, >>> small_fb->height); >>> + > > spurious empty line need to be removed. > >>> igt_plane_set_size(plane, data->width, data->height); >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); >>> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >>> >>> igt_plane_set_fb(plane, NULL); >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >> _______________________________________________ >> igt-dev mailing list >> igt-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/igt-dev >> >
Hello Juha-Pekka, https://patchwork.freedesktop.org/series/90389/#rev7 shows PASS for all CI. However I don’t see kms_big_fb all the subtests running in CI. In the logs I see pass for linear-32bpp-rotate-0 May I include your Reviewed by to take it further? Please suggest. Thank you so much. Regards Vidya -----Original Message----- From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Sent: Tuesday, June 8, 2021 5:21 PM To: Srinivas, Vidya <vidya.srinivas@intel.com>; Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org Cc: Lin, Charlton <charlton.lin@intel.com> Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On 8.6.2021 12.19, Srinivas, Vidya wrote: > Hello Juha-Pekka > > Instead of wait for vblank, this also works igt_pipe_crc_start-> > igt_pipe_crc_get_current for small fb after commit -> then > igt_pipe_crc_get_current For big fb -> compare -> igt_pipe_crc_stop > > Would this change be okay? Kindly suggest. igt_pipe_crc_collect_crc is > not working. It gives CRC mismatch for few subtests like subtest > y-tiled-32bpp-rotate-0 This change is ok. It kind of implies there maybe is some problem on your platform with starting of crc calculation but if this is only place where it will show I'm ok with that since crc will not affect normal users in any way. I noticed your new patch, lets see how all ci machines behave on that before doing anything else. /Juha-Pekka > > Have submitted the change here > https://patchwork.freedesktop.org/patch/437657/?series=90389&rev=6 > > Thank you so much. > > Regards > Vidya > > -----Original Message----- > From: Srinivas, Vidya > Sent: Tuesday, June 8, 2021 1:19 PM > To: juhapekka.heikkila@gmail.com; Modem, Bhanuprakash > <Bhanuprakash.Modem@intel.com>; intel-gfx@lists.freedesktop.org; > igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <Charlton.Lin@intel.com> > Subject: RE: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] > tests/kms_big_fb: Wait for vblank before collecting CRC > > Hello Juha-Pekka and Bhanu > > Thank you for the review comments. Apologies Juha-Pekka, I will incorporate your review comments and try out. > > Regards > Vidya > > > -----Original Message----- > From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> > Sent: Tuesday, June 8, 2021 1:04 PM > To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Srinivas, > Vidya <vidya.srinivas@intel.com>; intel-gfx@lists.freedesktop.org; > igt-dev@lists.freedesktop.org > Cc: Lin, Charlton <charlton.lin@intel.com> > Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] > tests/kms_big_fb: Wait for vblank before collecting CRC > > On 8.6.2021 10.01, Modem, Bhanuprakash wrote: >>> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf >>> Of Vidya Srinivas >>> Sent: Friday, May 28, 2021 9:57 AM >>> To: intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org >>> Cc: markyacoub@chromium.org; Lin, Charlton <charlton.lin@intel.com> >>> Subject: [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for >>> vblank before collecting CRC >>> >>> Without wait for vblank, CRC mismatch is seen between big and small >>> CRC on few Gen11 systems. >>> >>> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> >>> --- >>> tests/kms_big_fb.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index >>> b35727a09bd0..f90363c3beb2 100644 >>> --- a/tests/kms_big_fb.c >>> +++ b/tests/kms_big_fb.c >>> @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) >>> static bool test_plane(data_t *data) >>> { >>> igt_plane_t *plane = data->plane; >>> + igt_display_t *display = &data->display; >> >> For code readability purpose, I think we need to update to use this >> variable wherever we are using "&data->display" in this function. >> s/"&data->display"/"display"/ >> >> With above change, this patch LGTM >> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> >> > > I still don't see benefit in this patch. For now all this look like is doing is slow down the test and if this actually helps there's a real bug somewhere which is not here. My earlier review comments were not addressed hence repeat here, see below. > > >>> struct igt_fb *small_fb = &data->small_fb; >>> struct igt_fb *big_fb = &data->big_fb; >>> int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 >>> @@ static bool test_plane(data_t *data) >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); > > Above this line there's flip to different fb. Below this line crc calculation is restarted, get one crc and stop crc. There's several vblanks already spent here, if now adding one more somehow helps it sound like there's problems in crc calculation on some platform or kernel is saying too early framebuffer is ready to be shown. Am I missing something here? > > /Juha-Pekka > >>> igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); >>> >>> igt_plane_set_fb(plane, big_fb); >>> igt_fb_set_position(big_fb, plane, x, y); >>> igt_fb_set_size(big_fb, plane, small_fb->width, >>> small_fb->height); >>> + > > spurious empty line need to be removed. > >>> igt_plane_set_size(plane, data->width, data->height); >>> igt_display_commit2(&data->display, data->display.is_atomic ? >>> COMMIT_ATOMIC : COMMIT_UNIVERSAL); >>> - >>> + igt_wait_for_vblank(data->drm_fd, >>> +display->pipes[data->pipe].crtc_offset); >>> igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); >>> >>> igt_plane_set_fb(plane, NULL); >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> Intel-gfx mailing list >>> Intel-gfx@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >> _______________________________________________ >> igt-dev mailing list >> igt-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/igt-dev >> >
On Thu, Jun 10, 2021 at 08:38:42AM +0000, Srinivas, Vidya wrote: > Hello Juha-Pekka, > > https://patchwork.freedesktop.org/series/90389/#rev7 shows PASS for all CI. > However I don’t see kms_big_fb all the subtests running in CI. In the logs I see pass for linear-32bpp-rotate-0 The default view in the CI results only shows tests that have issues. "view -> shards all" from the top shows all tests. https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5907/shards-all.html?testfilter=kms_big_fb
Thank you so much Petri. I see it’s a PASS for almost everything except on one GLK. Regards Vidya -----Original Message----- From: Latvala, Petri <petri.latvala@intel.com> Sent: Thursday, June 10, 2021 2:21 PM To: Srinivas, Vidya <vidya.srinivas@intel.com> Cc: juhapekka.heikkila@gmail.com; Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; intel-gfx@lists.freedesktop.org; igt-dev@lists.freedesktop.org; Lin, Charlton <charlton.lin@intel.com> Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] [RFC] tests/kms_big_fb: Wait for vblank before collecting CRC On Thu, Jun 10, 2021 at 08:38:42AM +0000, Srinivas, Vidya wrote: > Hello Juha-Pekka, > > https://patchwork.freedesktop.org/series/90389/#rev7 shows PASS for all CI. > However I don’t see kms_big_fb all the subtests running in CI. In the > logs I see pass for linear-32bpp-rotate-0 The default view in the CI results only shows tests that have issues. "view -> shards all" from the top shows all tests. https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5907/shards-all.html?testfilter=kms_big_fb -- Petri Latvala
diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c index b35727a09bd0..f90363c3beb2 100644 --- a/tests/kms_big_fb.c +++ b/tests/kms_big_fb.c @@ -254,6 +254,7 @@ static void unset_lut(data_t *data) static bool test_plane(data_t *data) { igt_plane_t *plane = data->plane; + igt_display_t *display = &data->display; struct igt_fb *small_fb = &data->small_fb; struct igt_fb *big_fb = &data->big_fb; int w = data->big_fb_width - small_fb->width; @@ -337,16 +338,17 @@ static bool test_plane(data_t *data) igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL); - + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &small_crc); igt_plane_set_fb(plane, big_fb); igt_fb_set_position(big_fb, plane, x, y); igt_fb_set_size(big_fb, plane, small_fb->width, small_fb->height); + igt_plane_set_size(plane, data->width, data->height); igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL); - + igt_wait_for_vblank(data->drm_fd, display->pipes[data->pipe].crtc_offset); igt_pipe_crc_collect_crc(data->pipe_crc, &big_crc); igt_plane_set_fb(plane, NULL);
Without wait for vblank, CRC mismatch is seen between big and small CRC on few Gen11 systems. Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> --- tests/kms_big_fb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)