[PATCH i-g-t v6 1/5] tests/kms_plane_scaling: Update the single plane scaling function arguments

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Thu Jul 18 12:18:50 UTC 2024


On 7/18/2024 4:41 PM, Naladala Ramanaidu wrote:
> Update the helper test_scaler_with_modifier_pipe,
> test_scaler_with_rotation_pipe and test_scaler_with_pixel_format_pipe
> to use a scaling_factor and is_clip_clamp flag instead of explicit
> width and height parameters. This change simplifies the function interfaces
> and allows for testing scenarios, where we need to recalculate the width
> and height based on the display mode. Adjusted all function calls to match
> new argument order.
>
> v2: Update the function arguments (Ankit)
>
> Signed-off-by: Naladala Ramanaidu <ramanaidu.naladala at intel.com>
> ---
>   tests/kms_plane_scaling.c | 85 +++++++++++++++++++++++----------------
>   1 file changed, 51 insertions(+), 34 deletions(-)
>
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 3f63d3cf4..bd38513ab 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -569,7 +569,8 @@ static void cleanup_crtc(data_t *data)
>   static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
>   					 uint32_t pixel_format,
>   					 uint64_t modifier,
> -					 int width, int height,
> +					 double sf_plane,
> +					 bool is_clip_clamp,
>   					 bool is_upscale,
>   					 enum pipe pipe,
>   					 igt_output_t *output,
> @@ -579,8 +580,16 @@ static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
>   	drmModeModeInfo *mode;
>   	int commit_ret;
>   	int w, h;
> +	int width, height;
>   
>   	mode = igt_output_get_mode(output);
> +	if (is_clip_clamp == true) {
> +		width = mode->hdisplay + 100;
> +		height = mode->vdisplay + 100;
> +	} else {
> +		width = get_width(mode, sf_plane);
> +		height = get_height(mode, sf_plane);
> +	}
>   
>   	if (is_upscale) {
>   		w = width;
> @@ -603,7 +612,9 @@ static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
>   	igt_fb_set_position(&d->fb[0], plane, 0, 0);
>   	igt_fb_set_size(&d->fb[0], plane, w, h);
>   	igt_plane_set_position(plane, 0, 0);
> -
> +	commit_ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
> +	igt_skip_on_f(commit_ret == -ERANGE || commit_ret == -EINVAL,
> +		      "Mode fail with  %dx%d\n", w, h);

This change does not belong to this patch.

Regards,

Ankit


>   	if (is_upscale)
>   		igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
>   	else
> @@ -693,7 +704,8 @@ static const uint64_t modifiers[] = {
>   };
>   
>   static void test_scaler_with_modifier_pipe(data_t *d,
> -					   int width, int height,
> +					   double sf_plane,
> +					   bool is_clip_clamp,
>   					   bool is_upscale,
>   					   enum pipe pipe,
>   					   igt_output_t *output)
> @@ -716,7 +728,8 @@ static void test_scaler_with_modifier_pipe(data_t *d,
>   			if (igt_plane_has_format_mod(plane, format, modifier))
>   				check_scaling_pipe_plane_rot(d, plane,
>   							     format, modifier,
> -							     width, height,
> +							     sf_plane,
> +							     is_clip_clamp,
>   							     is_upscale,
>   							     pipe, output,
>   							     IGT_ROTATION_0);
> @@ -725,7 +738,8 @@ static void test_scaler_with_modifier_pipe(data_t *d,
>   }
>   
>   static void test_scaler_with_rotation_pipe(data_t *d,
> -					   int width, int height,
> +					   double sf_plane,
> +					   bool is_clip_clamp,
>   					   bool is_upscale,
>   					   enum pipe pipe,
>   					   igt_output_t *output)
> @@ -749,7 +763,8 @@ static void test_scaler_with_rotation_pipe(data_t *d,
>   			if (igt_plane_has_rotation(plane, rot))
>   				check_scaling_pipe_plane_rot(d, plane,
>   							     format, modifier,
> -							     width, height,
> +							     sf_plane,
> +							     is_clip_clamp,
>   							     is_upscale,
>   							     pipe, output,
>   							     rot);
> @@ -757,8 +772,11 @@ static void test_scaler_with_rotation_pipe(data_t *d,
>   	}
>   }
>   
> -static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height, bool is_upscale,
> -					       enum pipe pipe, igt_output_t *output)
> +static void test_scaler_with_pixel_format_pipe(data_t *d, double sf_plane,
> +					       bool is_clip_clamp,
> +					       bool is_upscale,
> +					       enum pipe pipe,
> +					       igt_output_t *output)
>   {
>   	igt_display_t *display = &d->display;
>   	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
> @@ -787,9 +805,11 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height,
>   			    can_scale(d, format))
>   			    check_scaling_pipe_plane_rot(d, plane,
>   							 format, modifier,
> -							 width, height,
> +							 sf_plane,
> +							 is_clip_clamp,
>   							 is_upscale,
> -							 pipe, output, IGT_ROTATION_0);
> +							 pipe, output,
> +							 IGT_ROTATION_0);
>   		}
>   
>   		igt_vec_fini(&tested_formats);
> @@ -1307,13 +1327,12 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   							continue;
>   
>   						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -							drmModeModeInfo *mode = igt_output_get_mode(output);
>   
>   							test_scaler_with_pixel_format_pipe(&data,
> -								get_width(mode, scaler_with_pixel_format_tests[index].sf),
> -								get_height(mode, scaler_with_pixel_format_tests[index].sf),
> -								scaler_with_pixel_format_tests[index].is_upscale,
> -								pipe, output);
> +									scaler_with_pixel_format_tests[index].sf,
> +									false,
> +									scaler_with_pixel_format_tests[index].is_upscale,
> +									pipe, output);
>   						}
>   						break;
>   					}
> @@ -1332,13 +1351,12 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   							continue;
>   
>   						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -							drmModeModeInfo *mode = igt_output_get_mode(output);
>   
>   							test_scaler_with_rotation_pipe(&data,
> -								get_width(mode, scaler_with_rotation_tests[index].sf),
> -								get_height(mode, scaler_with_rotation_tests[index].sf),
> -								scaler_with_rotation_tests[index].is_upscale,
> -								pipe, output);
> +									scaler_with_rotation_tests[index].sf,
> +									false,
> +									scaler_with_rotation_tests[index].is_upscale,
> +									pipe, output);
>   						}
>   						break;
>   					}
> @@ -1357,13 +1375,12 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   							continue;
>   
>   						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -							drmModeModeInfo *mode = igt_output_get_mode(output);
>   
>   							test_scaler_with_modifier_pipe(&data,
> -								get_width(mode, scaler_with_modifiers_tests[index].sf),
> -								get_height(mode, scaler_with_modifiers_tests[index].sf),
> -								scaler_with_modifiers_tests[index].is_upscale,
> -								pipe, output);
> +									scaler_with_modifiers_tests[index].sf,
> +									false,
> +									scaler_with_modifiers_tests[index].is_upscale,
> +									pipe, output);
>   						}
>   						break;
>   					}
> @@ -1381,10 +1398,10 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   						continue;
>   
>   					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -						drmModeModeInfo *mode = igt_output_get_mode(output);
>   
> -						test_scaler_with_pixel_format_pipe(&data, mode->hdisplay + 100,
> -							mode->vdisplay + 100, false, pipe, output);
> +						test_scaler_with_pixel_format_pipe(&data, 0.0, true,
> +										   false, pipe,
> +										   output);
>   					}
>   					break;
>   				}
> @@ -1401,10 +1418,10 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   						continue;
>   
>   					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -						drmModeModeInfo *mode = igt_output_get_mode(output);
>   
> -						test_scaler_with_rotation_pipe(&data, mode->hdisplay + 100,
> -							mode->vdisplay + 100, false, pipe, output);
> +						test_scaler_with_rotation_pipe(&data, 0.0, true,
> +										false, pipe,
> +										output);
>   					}
>   					break;
>   				}
> @@ -1421,9 +1438,9 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   						continue;
>   
>   					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> -						drmModeModeInfo *mode = igt_output_get_mode(output);
> -						test_scaler_with_modifier_pipe(&data, mode->hdisplay + 100,
> -							mode->vdisplay + 100, false, pipe, output);
> +						test_scaler_with_modifier_pipe(&data, 0.0, true,
> +										false, pipe,
> +										output);
>   					}
>   					break;
>   				}


More information about the igt-dev mailing list