[igt-dev] [i-g-t, v3] tests/kms_vrr: New subtest for toggle VRR during fastsets

Golani, Mitulkumar Ajitkumar mitulkumar.ajitkumar.golani at intel.com
Mon Jul 31 18:06:05 UTC 2023


Hi Nidhi,

Seems like with the current implementation it is overriding the result of
current flip-basic test. Need to make sure it does not override the pre-existing
test results if it is not intended.

Thanks,
Mitul

> -----Original Message-----
> From: Gupta, Nidhi1 <nidhi1.gupta at intel.com>
> Sent: 26 July 2023 07:02
> To: igt-dev at lists.freedesktop.org
> Cc: Gupta, Nidhi1 <nidhi1.gupta at intel.com>; Golani, Mitulkumar Ajitkumar
> <mitulkumar.ajitkumar.golani at intel.com>
> Subject: [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.
> 
> 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);
>  	}


More information about the igt-dev mailing list