[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:14:24 UTC 2018
On Thu, 2018-02-01 at 16:39 +0100, Maarten Lankhorst wrote:
> This will allow us to test NV12 as well, when available.
>
Reviewed-by: Mika Kahola <mika.kahola at kolumbus.fi>
> 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_FORM
> 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_rot
> (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