On Tue, 2018-01-16 at 14:47 +0100, Maarten Lankhorst wrote: > Op 16-01-18 om 14:46 schreef Mika Kahola: > > > > On Mon, 2018-01-15 at 15:28 +0100, Maarten Lankhorst wrote: > > > > > > From: Jyoti Yadav <jyoti.r.yadav@xxxxxxxxx> > > > > > > Add a subtest to display primary and overlay planes on two > > > connected pipes and runs scaling test on both pipes > > > > > > Changes since v1: > > > - Commit first before trying any scaling. (Maarten) > > > - Use the same logic as kms_cursor_legacy to find a pipe and > > > output. > > > (Maarten) > > > - Rework test to work with how cleanup is handled. (Maarten) > > > Changes since v2: > > > - Use get_num_scalers() to only use 2 scalers if available. > > > (Maarten) > > > > > > 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> > > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.c > > > om> > > > --- > > > tests/kms_plane_scaling.c | 93 > > > ++++++++++++++++++++++++++++++++++++++++++++++- > > > 1 file changed, 92 insertions(+), 1 deletion(-) > > > > > > diff --git a/tests/kms_plane_scaling.c > > > b/tests/kms_plane_scaling.c > > > index 36a6a8ef042b..8dbacf67b0a0 100644 > > > --- a/tests/kms_plane_scaling.c > > > +++ b/tests/kms_plane_scaling.c > > > @@ -38,10 +38,12 @@ typedef struct { > > > int image_w; > > > int image_h; > > > > > > - struct igt_fb fb[3]; > > > + struct igt_fb fb[4]; > > > + > > > igt_plane_t *plane1; > > > igt_plane_t *plane2; > > > igt_plane_t *plane3; > > > + igt_plane_t *plane4; > > > } data_t; > > > > > > static int get_num_scalers(uint32_t devid, enum pipe pipe) > > > @@ -456,6 +458,92 @@ > > > test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe > > > pipe, igt_outpu > > > igt_display_commit2(&d->display, COMMIT_ATOMIC); > > > } > > > > > > +static void find_connected_pipe(igt_display_t *display, bool > > > second, > > > enum pipe *pipe, igt_output_t **output) > > > +{ > > > + enum pipe first = PIPE_NONE; > > > + igt_output_t *first_output = NULL; > > > + bool found = false; > > > + > > > + for_each_pipe_with_valid_output(display, *pipe, *output) > > > { > > > + if (first == *pipe || *output == first_output) > > > + continue; > > > + > > > + if (second) { > > > + first = *pipe; > > > + first_output = *output; > > > + second = false; > > > + continue; > > > + } > > > + > > > + return; > > > + } > > > + > > > + if (first_output) > > > + igt_require_f(found, "No second valid output > > > found\n"); > > > + else > > > + igt_require_f(found, "No valid outputs > > > found\n"); > > > +} > > > + > > > +static void test_scaler_with_multi_pipe_plane(data_t *d) > > > +{ > > > + igt_display_t *display = &d->display; > > > + igt_output_t *output1, *output2; > > > + drmModeModeInfo *mode1, *mode2; > > > + enum pipe pipe1, pipe2; > > > + > > > + cleanup_crtc(d); > > > + > > > + find_connected_pipe(display, false, &pipe1, &output1); > > > + find_connected_pipe(display, true, &pipe2, &output2); > > > + > > > + igt_skip_on(!output1 || !output2); > > > + > > > + igt_output_set_pipe(output1, pipe1); > > > + igt_output_set_pipe(output2, pipe2); > > > + > > > + d->plane1 = igt_output_get_plane(output1, 0); > > > + d->plane2 = get_num_scalers(d->devid, pipe1) >= 2 ? > > > igt_output_get_plane(output1, 1) : NULL; > > > + d->plane3 = igt_output_get_plane(output2, 0); > > > + d->plane4 = get_num_scalers(d->devid, pipe2) >= 2 ? > > > igt_output_get_plane(output2, 1) : NULL; > > Maybe use DRM plane type definitions DRM_PLANE_TYPE_OVERLAY and > > DRM_PLANE_TYPE_PRIMARY instead of 0 and 1 to better indicate what > > plane > > we are referring to. > igt_output_get_plane takes an index, igt_output_get_plane_type takes > those definitions. > I've been bit a few times by that as well. :) yeah, you're absolutely right. Should have read more carefully :) You can bash my r-b. Reviewed-by: Mika Kahola <mika.kahola@xxxxxxxxx> > > ~Maarten -- Mika Kahola - Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx