[igt-dev] [PATCH i-g-t 3/9] tests/kms_plane_scaling: Test all pixel formats in pipe-*-scaler-with-rotation
Mika Kahola
mika.kahola at intel.com
Mon Feb 5 11:15:46 UTC 2018
On Mon, 2018-02-05 at 13:14 +0200, Mika Kahola wrote:
> On Thu, 2018-02-01 at 16:39 +0100, Maarten Lankhorst wrote:
> >
> > This will allow us to test NV12 as well, when available.
> >
Oops, typo in email address. Now fixed.
Reviewed-by: Mika Kahola <mika.kahola at intel.com>
>
> >
> > Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com
> > >
> > ---
> > tests/kms_plane_scaling.c | 46 +++++++++++++++++++++++++++++------
> > -----------
> > 1 file changed, 29 insertions(+), 17 deletions(-)
> >
> > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> > index d32f3441e8c9..18a42035fb3e 100644
> > --- a/tests/kms_plane_scaling.c
> > +++ b/tests/kms_plane_scaling.c
> > @@ -164,25 +164,13 @@ static const igt_rotation_t rotations[] = {
> > IGT_ROTATION_270,
> > };
> >
> > -static void test_scaler_with_rotation_pipe(data_t *d, enum pipe
> > pipe,
> > - igt_output_t *output)
> > +static bool can_rotate(unsigned format)
> > {
> > - igt_display_t *display = &d->display;
> > - igt_plane_t *plane;
> > -
> > - igt_output_set_pipe(output, pipe);
> > - for_each_plane_on_pipe(display, pipe, plane) {
> > - if (plane->type == DRM_PLANE_TYPE_CURSOR)
> > - continue;
> > + if (format == DRM_FORMAT_C8 ||
> > + format == DRM_FORMAT_RGB565)
> > + return false;
> >
> > - for (int i = 0; i < ARRAY_SIZE(rotations); i++) {
> > - igt_rotation_t rot = rotations[i];
> > -
> > - check_scaling_pipe_plane_rot(d, plane,
> > DRM_FORMAT_XRGB8888,
> > - LOCAL_I915_FO
> > RM
> > AT_MOD_Y_TILED,
> > - pipe, output,
> > rot);
> > - }
> > - }
> > + return true;
> > }
> >
> > static bool can_draw(uint32_t drm_format)
> > @@ -199,6 +187,30 @@ static bool can_draw(uint32_t drm_format)
> > return false;
> > }
> >
> > +static void test_scaler_with_rotation_pipe(data_t *d, enum pipe
> > pipe,
> > + igt_output_t *output)
> > +{
> > + igt_display_t *display = &d->display;
> > + igt_plane_t *plane;
> > +
> > + igt_output_set_pipe(output, pipe);
> > + for_each_plane_on_pipe(display, pipe, plane) {
> > + if (plane->type == DRM_PLANE_TYPE_CURSOR)
> > + continue;
> > +
> > + for (int i = 0; i < ARRAY_SIZE(rotations); i++) {
> > + igt_rotation_t rot = rotations[i];
> > + for (int j = 0; j < plane->drm_plane-
> > >
> > > count_formats; j++) {
> > + unsigned format = plane-
> > >drm_plane-
> > >
> > > formats[j];
> > + if (can_draw(format) &&
> > can_rotate(format))
> > + check_scaling_pipe_plane_r
> > ot
> > (d, plane, format,
> > +
> >
> > LOCAL_I915_FORMAT_MOD_Y_TILED,
> > +
> >
> > pipe, output, rot);
> > + }
> > + }
> > + }
> > +}
> > +
> > static const uint64_t tilings[] = {
> > LOCAL_DRM_FORMAT_MOD_NONE,
> > LOCAL_I915_FORMAT_MOD_X_TILED,
--
Mika Kahola - Intel OTC
More information about the igt-dev
mailing list