[PATCH v3 1/2] tests/kms_vrr: Add a subtest for seamless modeset to a virtual LRR mode
Saarinen, Jani
jani.saarinen at intel.com
Wed May 1 09:27:52 UTC 2024
Hi,
> -----Original Message-----
> From: Manasi Navare <navaremanasi at chromium.org>
> Sent: Wednesday, 1 May 2024 10.33
> To: Saarinen, Jani <jani.saarinen at intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>; igt-
> dev at lists.freedesktop.org; Drew Davenport <ddavenport at chromium.org>;
> Ville Syrjälä <ville.syrjala at linux.intel.com>; Sean Paul
> <seanpaul at chromium.org>
> Subject: Re: [PATCH v3 1/2] tests/kms_vrr: Add a subtest for seamless
> modeset to a virtual LRR mode
>
> Hi Jani, Bhanu,
>
> Even with the rerun there are some skips that are not related to the changes
> in this test. Could you please take a look and merge this since Bhanu already
> reviewed this.
You know how this goes.
If BAT is not passed there are instructions sent to patch owner what are actions to take. You _must_ get Full CI results.
You have got BAT results where it says
" FAILURE
Serious unknown changes coming with IGTPW_11079 absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in IGTPW_11079, please notify your bug team ('I915-ci-infra at lists.freedesktop.org') to allow them to document this new failure mode, which will reduce false positives in CI."
>
> Regards
> Manasi
Br,
Jani
>
> On Tue, Apr 30, 2024 at 10:03 AM Manasi Navare
> <navaremanasi at chromium.org> wrote:
> >
> > Hi Bhanu,
> >
> > Could you please get this landed?
> >
> > Regards
> > Manasi
> >
> > On Fri, Apr 26, 2024 at 1:03 PM Saarinen, Jani <jani.saarinen at intel.com>
> wrote:
> > >
> > > Hi,
> > > > -----Original Message-----
> > > > From: Manasi Navare <navaremanasi at chromium.org>
> > > > Sent: Friday, 26 April 2024 22.46
> > > > To: Saarinen, Jani <jani.saarinen at intel.com>
> > > > Cc: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>; igt-
> > > > dev at lists.freedesktop.org; Drew Davenport
> > > > <ddavenport at chromium.org>; Ville Syrjälä
> > > > <ville.syrjala at linux.intel.com>; Sean Paul <seanpaul at chromium.org>
> > > > Subject: Re: [PATCH v3 1/2] tests/kms_vrr: Add a subtest for
> > > > seamless modeset to a virtual LRR mode
> > > >
> > > > Great thanks Jani,
> > > >
> > > > Could you please kick in a re run on your end?
> > > Done: https://patchwork.freedesktop.org/series/132866/#rev2
> > >
> > > >
> > > > Regards
> > > > Manasi
> > > >
> > > > On Fri, Apr 26, 2024 at 12:42 PM Saarinen, Jani
> > > > <jani.saarinen at intel.com>
> > > > wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Manasi Navare <navaremanasi at chromium.org>
> > > > > > Sent: Friday, 26 April 2024 22.25
> > > > > > To: Saarinen, Jani <jani.saarinen at intel.com>
> > > > > > Cc: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>; igt-
> > > > > > dev at lists.freedesktop.org; Drew Davenport
> > > > <ddavenport at chromium.org>;
> > > > > > Ville Syrjälä <ville.syrjala at linux.intel.com>; Sean Paul
> > > > > > <seanpaul at chromium.org>
> > > > > > Subject: Re: [PATCH v3 1/2] tests/kms_vrr: Add a subtest for
> > > > > > seamless modeset to a virtual LRR mode
> > > > > >
> > > > > > Hi Bhanu, Jani,
> > > > > >
> > > > > > I do see that even the other vrr tests :
> > > > > > seamless-rr-switch-vrr /drrs/ basic- fastset are getting
> > > > > > skipped on BAT, so its not related to this test. I am able to run it here
> locally and test.
> > > > > I was mainly looking at
> https://patchwork.freedesktop.org/series/132866/
> > > > > Possible regressions
> > > > > igt at debugfs_test@read_all_entries:
> > > > >
> > > > > bat-arls-2: PASS -> FAIL +18 other tests fail
> > > > > igt at gem_exec_fence@nb-await:
> > > > >
> > > > > bat-arls-2: NOTRUN -> INCOMPLETE +7 other tests incomplete
> > > > > igt at kms_addfb_basic@addfb25-modifier-no-flag:
> > > > >
> > > > > bat-arls-2: PASS -> INCOMPLETE +37 other tests incomplete
> > > > > igt at kms_vrr@seamless-rr-switch-virtual (NEW):
> > > > >
> > > > > but there was some hw maintenance done today to this setup
> > > > > (bar-arls-2) so maybe safest would be re-run to see latest
> > > > >
> > > > > > Could you please take a look and see why all of these would be
> skipped?
> > > > > > Seems unrelated to this change.
> > > > > >
> > > > > > Regards
> > > > > > Manasi
> > > > > >
> > > > > > On Fri, Apr 26, 2024 at 12:48 AM Saarinen, Jani
> > > > > > <jani.saarinen at intel.com>
> > > > > > wrote:
> > > > > > >
> > > > > > > Hi,
> > > > > > > > -----Original Message-----
> > > > > > > > From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On
> > > > > > > > Behalf Of Modem, Bhanuprakash
> > > > > > > > Sent: Friday, 26 April 2024 6.44
> > > > > > > > To: Manasi Navare <navaremanasi at chromium.org>
> > > > > > > > Cc: igt-dev at lists.freedesktop.org; Drew Davenport
> > > > > > > > <ddavenport at chromium.org>; Ville Syrjälä
> > > > > > > > <ville.syrjala at linux.intel.com>; Sean Paul
> > > > > > > > <seanpaul at chromium.org>
> > > > > > > > Subject: Re: [PATCH v3 1/2] tests/kms_vrr: Add a subtest
> > > > > > > > for seamless modeset to a virtual LRR mode
> > > > > > > >
> > > > > > > > Hi Manasi,
> > > > > > > >
> > > > > > > > On 25-04-2024 08:50 pm, Manasi Navare wrote:
> > > > > > > > > Hi Bhanu,
> > > > > > > > >
> > > > > > > > > Thanks for the review.
> > > > > > > > > This is not specific to edp, it applies to all connectors.
> > > > > > > > >
> > > > > > > > > If the BAT results look okay and I have your r-b, could
> > > > > > > > > we get this
> > > > > > merged?
> > > > > > > Did you look those.
> > > > > > >
> > > > > > > >
> > > > > > > > Looks, BAT results are not OK to me.
> > > > > > > Right. To me looks so too.
> > > > > > >
> > > > > > > >
> > > > > > > > The newly added test is getting skip on VRR configs:
> > > > > > > > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11065/bat-
> > > > > > > > all.html?testfilter=kms_vrr&hosts=bat-adlp-6%7Cbat-adlp-9%
> > > > > > > > 7Cbat-
> > > > > > > > rpls
> > > > > > > > -
> > > > > > > > 4%7Cbat-adls-6
> > > > > > > >
> > > > > > > > - Bhanu
> > > > > > > >
> > > > > > > > >
> > > > > > > > > Regards
> > > > > > > > > Manasi
> > > > > > > > >
> > > > > > > > > On Thu, Apr 25, 2024 at 12:39 AM Modem, Bhanuprakash
> > > > > > > > > <bhanuprakash.modem at intel.com> wrote:
> > > > > > > > >>
> > > > > > > > >> Hi Manasi,
> > > > > > > > >>
> > > > > > > > >> On 25-04-2024 01:43 am, Manasi Navare wrote:
> > > > > > > > >>> This subtest validates LRR fastset functionality by
> > > > > > > > >>> testing seamless switching without full modeset to any
> > > > > > > > >>> of the virtual LRR mode within VRR
> > > > > > > > range.
> > > > > > > > >>> Here we start from highest refresh rate mode and then
> > > > > > > > >>> switch to virtual LRR modes in the steps of 10Hz within the
> VRR range.
> > > > > > > > >>>
> > > > > > > > >>> This is used to test the LRR fastset functionality of the driver.
> > > > > > > > >>>
> > > > > > > > >>> v5:
> > > > > > > > >>> - Pass a reference to flip_and_measure (bhanu)
> > > > > > > > >>> - Add a new line between between declaration and code
> > > > > > > > >>> logic
> > > > > > > > >>>
> > > > > > > > >>> v4:
> > > > > > > > >>> - Change the test name to align with drrs/vrr tests
> > > > > > > > >>> (Bhanu)
> > > > > > > > >>> - Fix some build warnings due to rebase
> > > > > > > > >>> - Use a local virtual_mode variable
> > > > > > > > >>>
> > > > > > > > >>> v3:
> > > > > > > > >>> - Fix build error due to rebase (Manasi)
> > > > > > > > >>>
> > > > > > > > >>> Cc: Drew Davenport <ddavenport at chromium.org>
> > > > > > > > >>> Cc: Bhanuprakash Modem
> <bhanuprakash.modem at intel.com>
> > > > > > > > >>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > > > > > >>> Cc: Sean Paul <seanpaul at chromium.org>
> > > > > > > > >>> Signed-off-by: Manasi Navare
> > > > > > > > >>> <navaremanasi at chromium.org>
> > > > > > > > >>> ---
> > > > > > > > >>> tests/kms_vrr.c | 73
> > > > > > > > ++++++++++++++++++++++++++++++++++++++++++++++---
> > > > > > > > >>> 1 file changed, 69 insertions(+), 4 deletions(-)
> > > > > > > > >>>
> > > > > > > > >>> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index
> > > > > > > > >>> 15c62b34b..7f64d6806 100644
> > > > > > > > >>> --- a/tests/kms_vrr.c
> > > > > > > > >>> +++ b/tests/kms_vrr.c
> > > > > > > > >>> @@ -66,6 +66,11 @@
> > > > > > > > >>> * Description: Test to switch RR seamlessly without
> modeset.
> > > > > > > > >>> * Functionality: adaptive_sync, drrs
> > > > > > > > >>> *
> > > > > > > > >>> + * SUBTEST: seamless-rr-switch-virtual
> > > > > > > > >>> + * Description: Test to create a Virtual Mode in VRR
> > > > > > > > >>> + range and switch to
> > > > > > > > it
> > > > > > > > >>> + * without a full modeset.
> > > > > > > > >>> + * Functionality: LRR
> > > > > > > > >>> + *
> > > > > > > > >>> * SUBTEST: max-min
> > > > > > > > >>> * Description: Oscillates between highest and
> > > > > > > > >>> lowest refresh each
> > > > > > > > frame for
> > > > > > > > >>> * manual flicker profiling
> > > > > > > > >>> @@ -89,9 +94,10 @@ enum {
> > > > > > > > >>> TEST_FLIPLINE = 1 << 3,
> > > > > > > > >>> TEST_SEAMLESS_VRR = 1 << 4,
> > > > > > > > >>> TEST_SEAMLESS_DRRS = 1 << 5,
> > > > > > > > >>> - TEST_FASTSET = 1 << 6,
> > > > > > > > >>> - TEST_MAXMIN = 1 << 7,
> > > > > > > > >>> - TEST_NEGATIVE = 1 << 8,
> > > > > > > > >>> + TEST_SEAMLESS_VIRTUAL_RR = 1 << 6,
> > > > > > > > >>> + TEST_FASTSET = 1 << 7,
> > > > > > > > >>> + TEST_MAXMIN = 1 << 8,
> > > > > > > > >>> + TEST_NEGATIVE = 1 << 9,
> > > > > > > > >>> };
> > > > > > > > >>>
> > > > > > > > >>> enum {
> > > > > > > > >>> @@ -214,6 +220,18 @@
> > > > low_rr_mode_with_same_res(igt_output_t
> > > > > > > > *output, unsigned int vrr_min)
> > > > > > > > >>> return mode;
> > > > > > > > >>> }
> > > > > > > > >>>
> > > > > > > > >>> +static drmModeModeInfo
> > > > > > > > >>> +virtual_rr_vrr_range_mode(igt_output_t *output,
> > > > > > > > >>> +unsigned int
> > > > > > > > >>> +virtual_refresh_rate) {
> > > > > > > > >>> + drmModeModeInfo mode =
> *igt_output_get_mode(output);
> > > > > > > > >>> + uint64_t clock_hz = mode.clock * 1000;
> > > > > > > > >>> +
> > > > > > > > >>> + mode.vtotal = clock_hz / (mode.htotal *
> virtual_refresh_rate);
> > > > > > > > >>> + mode.vrefresh = virtual_refresh_rate;
> > > > > > > > >>> +
> > > > > > > > >>> + return mode;
> > > > > > > > >>> +}
> > > > > > > > >>> +
> > > > > > > > >>> /* Read min and max vrr range from the connector debugfs.
> */
> > > > > > > > >>> static range_t
> > > > > > > > >>> get_vrr_range(data_t *data, igt_output_t *output)
> > > > > > > > >>> @@
> > > > > > > > >>> -641,6
> > > > > > > > >>> +659,49 @@ test_seamless_rr_basic(data_t *data, enum
> > > > > > > > >>> +pipe pipe,
> > > > > > > > igt_output_t *output, uint3
> > > > > > > > >>> vrr ? "on" : "off", vrr ? "not reached" : "exceeded",
> result);
> > > > > > > > >>> }
> > > > > > > > >>>
> > > > > > > > >>> +static void
> > > > > > > > >>> +test_seamless_virtual_rr_basic(data_t *data, enum
> > > > > > > > >>> +pipe pipe, igt_output_t *output, uint32_t flags) {
> > > > > > > > >>> + uint32_t result;
> > > > > > > > >>> + unsigned int vrefresh;
> > > > > > > > >>> + uint64_t rate[] = {0};
> > > > > > > > >>> +
> > > > > > > > >>> + igt_info("Use HIGH_RR Mode as default\n");
> > > > > > > > >>> + kmstest_dump_mode(&data-
> > > > >switch_modes[HIGH_RR_MODE]);
> > > > > > > > >>> +
> > > > > > > > >>> + prepare_test(data, output, pipe);
> > > > > > > > >>> + rate[0] =
> > > > > > > > >>> + rate_from_refresh(data-
> > > > >switch_modes[HIGH_RR_MODE].vrefres
> > > > > > > > >>> + h);
> > > > > > > > >>> +
> > > > > > > > >>> + /*
> > > > > > > > >>> + * Sink with DRR and VRR can be in downclock mode so
> > > > > > > > >>> + * switch to highest refresh rate mode.
> > > > > > > > >>> + */
> > > > > > > > >>> + igt_output_override_mode(output, &data-
> > > > > > > > >switch_modes[HIGH_RR_MODE]);
> > > > > > > > >>> +
> > > > > > > > >>> + igt_assert(igt_display_try_commit_atomic(&data->disp
> > > > > > > > >>> + lay, DRM_MODE_PAGE_FLIP_EVENT, NULL) == 0);
> > > > > > > > >>> +
> > > > > > > > >>> + result = flip_and_measure(data, output, pipe,
> > > > > > > > >>> + rate, 1,
> > > > > > > > TEST_DURATION_NS);
> > > > > > > > >>> + igt_assert_f(result > 75,
> > > > > > > > >>> + "Refresh rate (%u Hz) %"PRIu64"ns:
> > > > > > > > >>> + Target threshold not
> > > > > > > > reached, result was %u%%\n",
> > > > > > > > >>> +
> > > > > > > > >>> + data->switch_modes[HIGH_RR_MODE].vrefresh,
> > > > > > > > >>> + rate[0], result);
> > > > > > > > >>> +
> > > > > > > > >>> + /* Switch to Virtual RR */
> > > > > > > > >>> + for (vrefresh = data->range.min + 10; vrefresh <
> > > > > > > > >>> + data->range.max;
> > > > > > > > vrefresh += 10) {
> > > > > > > > >>> + drmModeModeInfo virtual_mode =
> > > > > > > > >>> + virtual_rr_vrr_range_mode(output, vrefresh);
> > > > > > > > >>> +
> > > > > > > > >>> + igt_info("Requesting Virtual Mode with
> > > > > > > > >>> + Refresh Rate (%u Hz): \n",
> > > > > > > > vrefresh);
> > > > > > > > >>> + kmstest_dump_mode(&virtual_mode);
> > > > > > > > >>> +
> > > > > > > > >>> + igt_output_override_mode(output,
> > > > > > > > >>> + &virtual_mode);
> > > > > > > > >>> +
> > > > > > > > >>> + igt_assert(igt_display_try_commit_atomic(&data->disp
> > > > > > > > >>> + lay,
> > > > > > > > >>> + 0,
> > > > > > > > >>> + NULL) == 0);
> > > > > > > > >>> +
> > > > > > > > >>> + rate[0] = rate_from_refresh(vrefresh);
> > > > > > > > >>> + result = flip_and_measure(data, output,
> > > > > > > > >>> + pipe, rate, 1,
> > > > > > > > TEST_DURATION_NS);
> > > > > > > > >>> + igt_assert_f(result > 75,
> > > > > > > > >>> + "Refresh rate (%u Hz) %"PRIu64"ns:
> > > > > > > > >>> + Target threshold not
> > > > > > > > reached, result was %u%%\n",
> > > > > > > > >>> + vrefresh, rate[0], result);
> > > > > > > > >>> + }
> > > > > > > > >>> +}
> > > > > > > > >>> +
> > > > > > > > >>> static void test_cleanup(data_t *data, enum pipe
> > > > > > > > >>> pipe, igt_output_t
> > > > > > > > *output)
> > > > > > > > >>> {
> > > > > > > > >>> if (vrr_capable(output)) @@ -686,7 +747,7 @@
> > > > > > > > >>> static bool output_constraint(data_t *data,
> > > > > > > > igt_output_t *output, uint32_t flags
> > > > > > > > >>> igt_output_override_mode(output,
> > > > > > > > >>> &data->switch_modes[HIGH_RR_MODE]);
> > > > > > > > >>>
> > > > > > > > >>> /* Search for a low refresh rate mode. */
> > > > > > > > >>> - if (!(flags & (TEST_SEAMLESS_VRR |
> TEST_SEAMLESS_DRRS)))
> > > > > > > > >>> + if (!(flags & (TEST_SEAMLESS_VRR |
> > > > > > > > >>> + TEST_SEAMLESS_DRRS
> > > > > > > > >>> + |
> > > > > > > > >>> + TEST_SEAMLESS_VIRTUAL_RR)))
> > > > > > > > >>
> > > > > > > > >> Does this virtual RR applicable to eDP only or supports
> > > > > > > > >> other connector types too? If it is eDP specific [*],
> > > > > > > > >> then we must add a check for
> > > > > > > > that.
> > > > > > > > >>
> > > > > > > > >> [*]:
> > > > > > > > >> https://cgit.freedesktop.org/drm/igt-gpu-tools/tree/tes
> > > > > > > > >> ts/kms
> > > > > > > > >> _vrr
> > > > > > > > >> .c#n
> > > > > > > > >> 660
> > > > > > > > >>
> > > > > > > > >> With above comment addressed, this patch is
> > > > > > > > >> Reviewed-by: Bhanuprakash Modem
> > > > > > <bhanuprakash.modem at intel.com>
> > > > > > > > >>
> > > > > > > > >> - Bhanu
> > > > > > > > >>
> > > > > > > > >>> return true;
> > > > > > > > >>>
> > > > > > > > >>> data->switch_modes[LOW_RR_MODE] =
> > > > > > > > >>> low_rr_mode_with_same_res(output, data->range.min);
> @@
> > > > > > > > >>> -841,6
> > > > > > > > +902,10 @@ igt_main_args("drs:", long_opts, help_str,
> > > > > > > > +opt_handler,
> > > > > > > > +&data)
> > > > > > > > >>> "between flip timestamps
> > > > > > > > >>> converges to the requested
> > > > > > > > rate");
> > > > > > > > >>> igt_subtest_with_dynamic("flip-basic-fastset")
> > > > > > > > >>> run_vrr_test(&data, test_basic,
> > > > > > > > >>> TEST_FASTSET);
> > > > > > > > >>> +
> > > > > > > > >>> + igt_describe("Test to switch to any
> > > > > > > > >>> + custom virtual mode in VRR
> > > > > > > > range without modeset.");
> > > > > > > > >>> + igt_subtest_with_dynamic("seamless-rr-switch-
> virtual")
> > > > > > > > >>> + run_vrr_test(&data,
> > > > > > > > >>> + test_seamless_virtual_rr_basic,
> > > > > > > > >>> + TEST_SEAMLESS_VIRTUAL_RR);
> > > > > > > > >>> }
> > > > > > > > >>>
> > > > > > > > >>> igt_fixture {
More information about the igt-dev
mailing list