Message ID | 1496949033-8843-1-git-send-email-sunpeng.li@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf > Of sunpeng.li@amd.com > Sent: Thursday, June 08, 2017 3:11 PM > To: intel-gfx@lists.freedesktop.org; amd-gfx@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@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@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@amd.com> > 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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
On Thu, Jun 08, 2017 at 09:48:58PM +0000, Deucher, Alexander wrote: > > -----Original Message----- > > From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf > > Of sunpeng.li@amd.com > > Sent: Thursday, June 08, 2017 3:11 PM > > To: intel-gfx@lists.freedesktop.org; amd-gfx@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@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@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@amd.com> The name can be changed to IGT_MAX_PIPES, as using I915 here is missleading. > > > 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@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/amd-gfx > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
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@lists.freedesktop.org] On Behalf >>> Of sunpeng.li@amd.com >>> Sent: Thursday, June 08, 2017 3:11 PM >>> To: intel-gfx@lists.freedesktop.org; amd-gfx@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@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@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@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@lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
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) 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;