[igt-dev] [PATCH i-g-t v3] tests/kms_vrr: New subtest for toggle VRR during fastsets
Golani, Mitulkumar Ajitkumar
mitulkumar.ajitkumar.golani at intel.com
Tue Jul 25 05:44:05 UTC 2023
Hi Nidhi,
> -----Original Message-----
> From: Gupta, Nidhi1 <nidhi1.gupta at intel.com>
> Sent: 16 June 2023 04:28
> To: igt-dev at lists.freedesktop.org
> Cc: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani at intel.com>;
> Gupta, Nidhi1 <nidhi1.gupta at intel.com>
> Subject: [PATCH i-g-t v3] tests/kms_vrr: New subtest for toggle VRR during
> fastsets
>
> Allow VRR to be toggled during fastsets, without the need of full modeset.
Can you please add more details on this subtest in commit message ?
Is there any way around we can extend the current subtests itself instead of adding a new subtest ?
Regards,
Mitul
>
> v2: move igt_require from fixture
> (Kamil)
> v3: Apply modeset initially in basic-fastset subtest
> and skip it after VRR toggeling
> (Mitul)
> fixed nitpicks (Kamil)
>
> Signed-off-by: Nidhi Gupta <nidhi1.gupta at intel.com>
> ---
> tests/kms_vrr.c | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c index d2d79c4e..7b3fef9a
> 100644
> --- a/tests/kms_vrr.c
> +++ b/tests/kms_vrr.c
> @@ -45,7 +45,8 @@ enum {
> TEST_DPMS = 1 << 1,
> TEST_SUSPEND = 1 << 2,
> TEST_FLIPLINE = 1 << 3,
> - TEST_NEGATIVE = 1 << 4,
> + TEST_FASTSET = 1 << 4,
> + TEST_NEGATIVE = 1 << 5,
> };
>
> typedef struct range {
> @@ -193,11 +194,14 @@ static bool vrr_capable(igt_output_t *output) }
>
> /* Toggles variable refresh rate on the pipe. */ -static void
> set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
> +static void set_vrr_on_pipe(data_t *data, enum pipe pipe,
> + bool need_modeset, bool enabled)
> {
> igt_pipe_set_prop_value(&data->display, pipe,
> IGT_CRTC_VRR_ENABLED,
> enabled);
> - igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +
> + if (need_modeset)
> + igt_display_commit2(&data->display, COMMIT_ATOMIC);
> }
>
> /* Prepare the display for testing on the given pipe. */ @@ -370,7 +374,7
> @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t
> flags)
> igt_info("VRR Test execution on %s, PIPE_%s with VRR range: (%u-
> %u) Hz\n",
> output->name, kmstest_pipe_name(pipe), range.min,
> range.max);
>
> - set_vrr_on_pipe(data, pipe, true);
> + set_vrr_on_pipe(data, pipe, (flags & ~TEST_FASTSET), true);
>
> /*
> * Do a short run with VRR, but don't check the result.
> @@ -436,7 +440,7 @@ test_basic(data_t *data, enum pipe pipe,
> igt_output_t *output, uint32_t flags)
> * modeset. And the expected behavior is the same as disabling VRR
> on
> * a VRR capable panel.
> */
> - set_vrr_on_pipe(data, pipe, (flags & TEST_NEGATIVE)? true : false);
> + set_vrr_on_pipe(data, pipe, (flags & ~TEST_FASTSET), (flags &
> +TEST_NEGATIVE) ? true : false);
> rate = vtest_ns.mid;
> result = flip_and_measure(data, output, pipe, rate,
> TEST_DURATION_NS);
> igt_assert_f(result < 10,
> @@ -526,6 +530,12 @@ igt_main
> igt_subtest_with_dynamic("negative-basic")
> run_vrr_test(&data, test_basic, TEST_NEGATIVE);
>
> + igt_describe("Tests that VRR basic without modeset");
> + igt_subtest_with_dynamic("flip-basic-fastset") {
> + igt_require_intel(data.drm_fd);
> + run_vrr_test(&data, test_basic, TEST_FASTSET);
> + }
> +
> igt_fixture {
> igt_display_fini(&data.display);
> }
> --
> 2.39.0
More information about the igt-dev
mailing list