[igt-dev] [i-g-t, v4 6/8] tests/amdgpu/amd_freesync_video_mode: Move the vrr setting and display reset

Alex Hung alex.hung at amd.com
Mon Jul 10 17:19:06 UTC 2023


Reviewed-by: Alex Hung <alex.hung at amd.com>

On 2023-07-10 01:57, Tom Chung wrote:
> [Why]
> We don't need to do the display reset and vrr enable/disable in the middle of the test.
> 
> [How]
> Move the display reset output and vrr enable/disable setting to the begin/end of the test.
> 
> Signed-off-by: Tom Chung <chiahsuan.chung at amd.com>
> ---
>   tests/amdgpu/amd_freesync_video_mode.c | 20 +++++++-------------
>   1 file changed, 7 insertions(+), 13 deletions(-)
> 
> diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c
> index 5e6474292..60b1da589 100644
> --- a/tests/amdgpu/amd_freesync_video_mode.c
> +++ b/tests/amdgpu/amd_freesync_video_mode.c
> @@ -552,12 +552,6 @@ static void prepare_test(
>   		enum pipe pipe,
>   		drmModeModeInfo *mode)
>   {
> -	/* Reset output */
> -	igt_display_reset(&data->display);
> -	igt_output_set_pipe(output, pipe);
> -
> -	igt_output_override_mode(output, mode);
> -
>   	/* Prepare resources */
>   	if (!data->fb_initialized) {
>   		int fb_id;
> @@ -579,15 +573,11 @@ static void prepare_test(
>   		data->fb_initialized = true;
>   	}
>   
> +	/* set output mode */
> +	igt_output_override_mode(output, mode);
>   	/* Take care of any required modesetting before the test begins. */
>   	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>   	igt_plane_set_fb(data->primary, &data->fbs[0]);
> -
> -	/* Clear vrr_enabled state before enabling it, because
> -	 * it might be left enabled if the previous test fails.
> -	 */
> -	igt_pipe_set_prop_value(&data->display, pipe, IGT_CRTC_VRR_ENABLED, 0);
> -
>   	igt_display_commit2(&data->display, COMMIT_ATOMIC);
>   }
>   
> @@ -752,7 +742,6 @@ static void init_data(data_t *data, igt_output_t *output)
>   
>   static void finish_test(data_t *data, enum pipe pipe, igt_output_t *output)
>   {
> -	set_vrr_on_pipe(data, pipe, 0);
>   	igt_plane_set_fb(data->primary, NULL);
>   	igt_output_set_pipe(output, PIPE_NONE);
>   	igt_output_override_mode(output, NULL);
> @@ -828,6 +817,8 @@ mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t sce
>   	result = flip_and_measure(data, output, pipe, interval, 2 * NSECS_PER_SEC, ANIM_TYPE_CIRCLE_WAVE);
>   	result = flip_and_measure(data, output, pipe, interval, TEST_DURATION_NS, ANIM_TYPE_CIRCLE_WAVE);
>   	igt_assert_f(result > 75, "Target refresh rate not meet 75%% (result=%d%%\n", result);
> +	set_vrr_on_pipe(data, pipe, false);
> +
>   	finish_test(data, pipe, output);
>   }
>   
> @@ -848,6 +839,9 @@ run_test(data_t *data, uint32_t scene)
>   
>   		for_each_pipe(&data->display, pipe)
>   			if (igt_pipe_connector_valid(pipe, output)) {
> +				igt_display_reset(&data->display);
> +				igt_output_set_pipe(output, pipe);
> +
>   				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
>   				mode_transition(data, pipe, output, scene);
>   				found = true;


More information about the igt-dev mailing list