Re: [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane_lowres: Don't fail tests when missing format/mod support

Ville Syrjälä
2018-11-30T13:56:18Z

On Wed, Nov 28, 2018 at 09:56:19AM -0500, Nicholas Kazlauskas wrote:
> The kms_plane_lowres subtests will fail on non-i915 hardware because
> of the devid lookups and tiling format requirements.
>
> This patch makes use of the igt_display_has_format_mod() helper to
> check for support before failing fb creation.
>
> The tests still won't fully run yet on i915 hardware because they'll
> skip during calls to igt_assert_plane_visible - those require an i915
> extension to get the CRTC/plane set for a given pipe.
>
> v2: Use igt_display_has_format_mod helper (Ville)
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
> ---
> tests/kms_plane_lowres.c | 24 +++++++++++++++++-------
> 1 file changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
> index 0824ef8f..63a4e5b8 100644
> --- a/tests/kms_plane_lowres.c
> +++ b/tests/kms_plane_lowres.c
> @@ -141,6 +141,12 @@ test_setup(data_t *data, enum pipe pipe, uint64_t modifier,
> int size;
> int i = 1, x, y;
> igt_plane_t *plane;
> + uint64_t plane_modifier;
> + uint32_t plane_format;

These could be moved into tighter scope.

Apart from that lgtm
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> +
> + igt_skip_on(!igt_display_has_format_mod(&data->display,
> + DRM_FORMAT_XRGB8888,
> + modifier));
>
> igt_output_set_pipe(output, pipe);
>
> @@ -171,10 +177,19 @@ test_setup(data_t *data, enum pipe pipe, uint64_t modifier,
> x = 0;
> y = mode->vdisplay - size;
>
> + plane_format = plane->type == DRM_PLANE_TYPE_CURSOR ?
> + DRM_FORMAT_ARGB8888 : DRM_FORMAT_XRGB8888;
> +
> + plane_modifier = plane->type == DRM_PLANE_TYPE_CURSOR ?
> + LOCAL_DRM_FORMAT_MOD_NONE : modifier;
> +
> + igt_skip_on(!igt_plane_has_format_mod(plane, plane_format,
> + plane_modifier));
> +
> igt_create_color_fb(data->drm_fd,
> size, size,
> - plane->type == DRM_PLANE_TYPE_CURSOR ? DRM_FORMAT_ARGB8888 : DRM_FORMAT_XRGB8888,
> - plane->type == DRM_PLANE_TYPE_CURSOR ? LOCAL_DRM_FORMAT_MOD_NONE : modifier,
> + plane_format,
> + plane_modifier,
> 1.0, 1.0, 0.0,
> &data->fb[i]);
>
> @@ -251,11 +266,6 @@ static void
> test_plane_position(data_t *data, enum pipe pipe, uint64_t modifier)
> {
> igt_output_t *output;
> - const int gen = intel_gen(intel_get_drm_devid(data->drm_fd));
> -
> - if (modifier == LOCAL_I915_FORMAT_MOD_Y_TILED ||
> - modifier == LOCAL_I915_FORMAT_MOD_Yf_TILED)
> - igt_skip_on(gen < 9);
>
> for_each_valid_output_on_pipe(&data->display, pipe, output)
> test_plane_position_with_output(data, pipe, output, modifier);
> --
> 2.17.1

--
Ville Syrjälä
Intel