On 2017-06-09 05:49 AM, Arkadiusz Hiler wrote: > On Thu, Jun 08, 2017 at 09:48:58PM +0000, Deucher, Alexander wrote: >>> -----Original Message----- >>> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf >>> Of sunpeng.li at amd.com >>> Sent: Thursday, June 08, 2017 3:11 PM >>> To: intel-gfx at lists.freedesktop.org; amd-gfx at lists.freedesktop.org; >>> Wentland, Harry >>> Cc: Li, Sun peng >>> Subject: [PATCH i-g-t] tests: Increase value of I915_MAX_PIPES to 6 >>> >>> From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com> >>> >>> Increasing max pipe count to 6 to support AMD GPU's. >>> >>> Since some tests' behavior depends on this value, small changes are made >>> to remove this dependency: >>> >>> * kms_ccs: Early abort if wanted_pipe is out-of-bounds. >>> * kms_concurrent: Check if pipe is within bounds first. >>> * kms_pipe_color: Prevent skipping of subsequent tests by placing >>> generated tests in a 'igt_subtest_group'. >>> * kms_plane: Move pipe and plane index checking to subtest group level. >>> >>> Signed-off-by: Leo (Sunpeng) Li <sunpeng.li at amd.com> >>> --- >>> lib/igt_kms.c | 10 ++++++++-- >>> lib/igt_kms.h | 3 +++ >>> tests/kms_ccs.c | 2 ++ >>> tests/kms_concurrent.c | 2 +- >>> tests/kms_pipe_color.c | 3 ++- >>> tests/kms_plane.c | 8 +++++--- >>> 6 files changed, 21 insertions(+), 7 deletions(-) >>> >>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c >>> index c77716b..1bb62f0 100644 >>> --- a/lib/igt_kms.c >>> +++ b/lib/igt_kms.c >>> @@ -319,12 +319,12 @@ const unsigned char* igt_kms_get_alt_edid(void) >>> */ >>> const char *kmstest_pipe_name(enum pipe pipe) >>> { >>> - const char *str[] = { "A", "B", "C" }; >>> + const char *str[] = { "A", "B", "C", "D", "E", "F"}; >>> >>> if (pipe == PIPE_NONE) >>> return "None"; >>> >>> - if (pipe > 2) >>> + if (pipe > 5) >> >> Use I915_MAX_PIPES here rather than hardcoding 5. With that fixed the patch is: >> Acked-by: Alex Deucher <alexander.deucher at amd.com> > > The name can be changed to IGT_MAX_PIPES, as using I915 here is > missleading. > Renaming I915_MAX_PIPES will cause wider changes, I'll submit a new patch for that. Will submit a v2 for Alex's comment. Leo >>> return "invalid"; >>> >>> return str[pipe]; >>> @@ -344,6 +344,12 @@ int kmstest_pipe_to_index(char pipe) >>> return 1; >>> else if (pipe == 'C') >>> return 2; >>> + else if (pipe == 'D') >>> + return 3; >>> + else if (pipe == 'E') >>> + return 4; >>> + else if (pipe == 'F') >>> + return 5; >>> else >>> return -EINVAL; >>> } >>> diff --git a/lib/igt_kms.h b/lib/igt_kms.h >>> index 9567a26..8f7c2bb 100644 >>> --- a/lib/igt_kms.h >>> +++ b/lib/igt_kms.h >>> @@ -54,6 +54,9 @@ enum pipe { >>> PIPE_A = 0, >>> PIPE_B, >>> PIPE_C, >>> + PIPE_D, >>> + PIPE_E, >>> + PIPE_F, >>> I915_MAX_PIPES >>> }; >>> const char *kmstest_pipe_name(enum pipe pipe); >>> diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c >>> index d829152..0795e3a 100644 >>> --- a/tests/kms_ccs.c >>> +++ b/tests/kms_ccs.c >>> @@ -250,6 +250,8 @@ static void test(data_t *data) >>> int valid_tests = 0; >>> enum pipe wanted_pipe = data->pipe; >>> >>> + igt_skip_on(wanted_pipe >= display->n_pipes); >>> + >>> for_each_pipe_with_valid_output(display, data->pipe, data- >>>> output) { >>> if (wanted_pipe != PIPE_NONE && data->pipe != >>> wanted_pipe) >>> continue; >>> diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c >>> index b34540b..db06a37 100644 >>> --- a/tests/kms_concurrent.c >>> +++ b/tests/kms_concurrent.c >>> @@ -351,8 +351,8 @@ run_tests_for_pipe(data_t *data, enum pipe pipe) >>> igt_fixture { >>> int valid_tests = 0; >>> >>> - igt_require(data->display.pipes[pipe].n_planes > 0); >>> igt_skip_on(pipe >= data->display.n_pipes); >>> + igt_require(data->display.pipes[pipe].n_planes > 0); >>> >>> for_each_valid_output_on_pipe(&data->display, pipe, >>> output) >>> valid_tests++; >>> diff --git a/tests/kms_pipe_color.c b/tests/kms_pipe_color.c >>> index fd58ac8..da49eb1 100644 >>> --- a/tests/kms_pipe_color.c >>> +++ b/tests/kms_pipe_color.c >>> @@ -1180,7 +1180,8 @@ igt_main >>> } >>> >>> for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++) >>> - run_tests_for_pipe(&data, pipe); >>> + igt_subtest_group >>> + run_tests_for_pipe(&data, pipe); >>> >>> igt_subtest_f("invalid-lut-sizes") >>> invalid_lut_sizes(&data); >>> diff --git a/tests/kms_plane.c b/tests/kms_plane.c >>> index e1bd467..34418ca 100644 >>> --- a/tests/kms_plane.c >>> +++ b/tests/kms_plane.c >>> @@ -354,9 +354,6 @@ test_plane_panning(data_t *data, enum pipe pipe, >>> int plane, >>> igt_output_t *output; >>> int connected_outs = 0; >>> >>> - igt_skip_on(pipe >= data->display.n_pipes); >>> - igt_skip_on(plane >= data->display.pipes[pipe].n_planes); >>> - >>> for_each_valid_output_on_pipe(&data->display, pipe, output) { >>> test_plane_panning_with_output(data, pipe, plane, output, >>> flags); >>> @@ -369,6 +366,11 @@ test_plane_panning(data_t *data, enum pipe pipe, >>> int plane, >>> static void >>> run_tests_for_pipe_plane(data_t *data, enum pipe pipe) >>> { >>> + igt_fixture { >>> + igt_skip_on(pipe >= data->display.n_pipes); >>> + igt_require(data->display.pipes[pipe].n_planes > 0); >>> + } >>> + >>> igt_subtest_f("plane-position-covered-pipe-%s-planes", >>> kmstest_pipe_name(pipe)) { >>> int n_planes = data->display.pipes[pipe].n_planes; >>> -- >>> 2.7.4 >>> >>> _______________________________________________ >>> amd-gfx mailing list >>> amd-gfx at lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx