From: Jyoti Yadav <jyoti.r.yadav@xxxxxxxxx> This patch adds subtest to test scaler clipping and clamping scenario Signed-off-by: Jyoti Yadav <jyoti.r.yadav@xxxxxxxxx> Signed-off-by: Mahesh Kumar <mahesh1.kumar@xxxxxxxxx> Signed-off-by: Vidya Srinivas <vidya.srinivas@xxxxxxxxx> --- tests/kms_plane_scaling.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c index 3725d8e..b80cafb 100644 --- a/tests/kms_plane_scaling.c +++ b/tests/kms_plane_scaling.c @@ -480,6 +480,71 @@ static void test_plane_scaling(data_t *d, enum pipe pipe) igt_require_f(valid_tests, "no valid crtc/connector combinations found\n"); } +static void +test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe) +{ + igt_output_t *output; + igt_require(d->num_scalers); + + for_each_valid_output_on_pipe(&d->display, pipe, output) { + drmModeModeInfo *mode; + + /* Gen9 has single scaler in PIPEC */ + if (intel_gen(d->devid) == 9 && pipe == PIPE_C) + continue; + + igt_output_set_pipe(output, pipe); + mode = igt_output_get_mode(output); + d->fb_id2 = igt_create_pattern_fb(d->drm_fd, + mode->hdisplay, mode->vdisplay, + DRM_FORMAT_XRGB8888, + LOCAL_I915_FORMAT_MOD_X_TILED, + &d->fb2); + igt_assert(d->fb_id2); + + d->fb_id3 = igt_create_pattern_fb(d->drm_fd, + mode->hdisplay, mode->vdisplay, + DRM_FORMAT_XRGB8888, + LOCAL_I915_FORMAT_MOD_Y_TILED, + &d->fb3); + igt_assert(d->fb_id3); + + d->plane1 = igt_output_get_plane(output, 0); + igt_plane_set_fb(d->plane1, &d->fb2); + d->plane2 = igt_output_get_plane(output, 1); + igt_plane_set_fb(d->plane2, &d->fb3); + + igt_fb_set_position(&d->fb2, d->plane1, 0, 0); + igt_fb_set_size(&d->fb2, d->plane1, 300, 300); + igt_plane_set_position(d->plane1, 100, 400); + igt_fb_set_position(&d->fb3, d->plane2, 0, 0); + igt_fb_set_size(&d->fb3, d->plane2, 400, 400); + igt_plane_set_position(d->plane2, 100, 100); + + /* scaled window size is outside the modeset area.*/ + igt_plane_set_size(d->plane1, mode->hdisplay + 200, + mode->vdisplay + 200); + igt_plane_set_size(d->plane2, mode->hdisplay + 100, + mode->vdisplay + 100); + igt_display_commit2(&d->display, COMMIT_ATOMIC); + + /* disable above 2 planes */ + igt_plane_set_fb(d->plane1, NULL); + igt_plane_set_position(d->plane1, 0, 0); + igt_plane_set_fb(d->plane2, NULL); + igt_plane_set_position(d->plane2, 0, 0); + if (d->fb_id2) { + igt_remove_fb(d->drm_fd, &d->fb2); + d->fb_id2 = 0; + } + if (d->fb_id3) { + igt_remove_fb(d->drm_fd, &d->fb3); + d->fb_id3 = 0; + } + igt_output_set_pipe(output, PIPE_ANY); + } +} + igt_main { data_t data = {}; @@ -512,6 +577,10 @@ igt_main test_scaler_with_rotation(&data, pipe); } + igt_subtest_f("scaler_with_clipping_clamping") { + test_scaler_with_clipping_clamping_scenario(&data, pipe); + } + igt_fixture { igt_display_fini(&data.display); } -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx