[PATCH i-g-t 3/5] tests/kms_plane_scaling: Improvise the planes scaling BW issues
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Tue Jul 16 04:32:15 UTC 2024
On 7/15/2024 9:16 PM, Naladala Ramanaidu wrote:
> Anticipating bandwidth issues, we expect many tests to fail. To
> address these failures, we will switch to the next lowest display
> modes. Some higher display modes will be identified as insufficient
> for downscaling operations on multi-plane scaling. As a solution,
> we will implement a fix: when bandwidth is inadequate for current
> modes, the system will automatically attempt the next lower
> display mode.
>
> Signed-off-by: Naladala Ramanaidu <ramanaidu.naladala at intel.com>
> ---
> tests/kms_plane_scaling.c | 72 +++++++++++++++++++++------------------
> 1 file changed, 39 insertions(+), 33 deletions(-)
>
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 0048e6e51..1702ec8c8 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -865,43 +865,49 @@ __test_planes_scaling_combo(data_t *d, double sf_plane1,
> int ret;
> int w1, h1, w2, h2;
>
> - mode = igt_output_get_mode(output);
> - w1 = get_width(mode, sf_plane1);
> - h1 = get_height(mode, sf_plane1);
> - w2 = get_width(mode, sf_plane2);
> - h2 = get_height(mode, sf_plane2);
> -
> - igt_plane_set_fb(p1, fb1);
> - igt_plane_set_fb(p2, fb2);
> + for_each_connector_mode(output) {
> + mode = &output->config.connector->modes[j__];
> + w1 = get_width(mode, sf_plane1);
> + h1 = get_height(mode, sf_plane1);
> + w2 = get_width(mode, sf_plane2);
> + h2 = get_height(mode, sf_plane2);
> +
> + igt_plane_set_fb(p1, fb1);
> + igt_plane_set_fb(p2, fb2);
> +
> + switch (test_type) {
> + case TEST_PLANES_UPSCALE:
> + igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
> + igt_plane_set_size(p2, mode->hdisplay - 20, mode->vdisplay - 20);
> + break;
> + case TEST_PLANES_DOWNSCALE:
> + igt_plane_set_size(p1, w1, h1);
> + igt_plane_set_size(p2, w2, h2);
> + break;
> + case TEST_PLANES_UPSCALE_DOWNSCALE:
> + igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
> + igt_plane_set_size(p2, w2, h2);
> + break;
> + case TEST_PLANES_DOWNSCALE_UPSCALE:
> + igt_plane_set_size(p1, w1, h1);
> + igt_plane_set_size(p2, mode->hdisplay, mode->vdisplay);
> + break;
> + default:
> + igt_assert(0);
> + }
>
> - switch (test_type) {
> - case TEST_PLANES_UPSCALE:
> - igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(p2, mode->hdisplay - 20, mode->vdisplay - 20);
> - break;
> - case TEST_PLANES_DOWNSCALE:
> - igt_plane_set_size(p1, w1, h1);
> - igt_plane_set_size(p2, w2, h2);
> - break;
> - case TEST_PLANES_UPSCALE_DOWNSCALE:
> - igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
> - igt_plane_set_size(p2, w2, h2);
> - break;
> - case TEST_PLANES_DOWNSCALE_UPSCALE:
> - igt_plane_set_size(p1, w1, h1);
> - igt_plane_set_size(p2, mode->hdisplay, mode->vdisplay);
> - break;
> - default:
> - igt_assert(0);
> + ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET,
> + NULL);
This can be in the same line or else align with the parenthesis.
> + if (ret == 0)
> + break;
> }
> -
> - ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> -
> igt_plane_set_fb(p1, NULL);
> igt_plane_set_fb(p2, NULL);
> -
> - igt_skip_on_f(ret == -EINVAL || ret == -ERANGE,
> - "Scaling op not supported by driver\n");
I think we can retain the older message, new one is not giving any
further information.
Otherwise looks good to me.
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> + igt_plane_set_position(p1, 0, 0);
> + igt_plane_set_position(p2, 0, 0);
> + cleanup_fbs(d);
> + igt_skip_on_f(ret == -ERANGE || ret == -EINVAL,
> + "Unsupported scaling factor\n");
> igt_assert_eq(ret, 0);
> }
>
More information about the igt-dev
mailing list