Re: [igt-dev] [PATCH 3/3] tests/kms_plane_scaling: Skip testing unsupported fp16 features

Maarten Lankhorst
2019-04-09T08:17:27Z

Op 05-04-2019 om 22:14 schreef Kevin Strasser:
> Disallow Yf tiling and Y-tiled 90/270 rotation for fp16 on Intel hardware.
>
> rfc2:
> - Move check into can_rotate (Maarten)
> - Use igt_plane_has_format_mod (Maarten)
>
> v1:
> - Drop Y tile check (Ville)
>
> Signed-off-by: Kevin Strasser <kevin.strasser@intel.com>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tests/kms_plane_scaling.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 3364073..661af9a 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -174,12 +174,18 @@ static const igt_rotation_t rotations[] = {
> IGT_ROTATION_270,
> };
>
> -static bool can_rotate(data_t *d, unsigned format)
> +static bool can_rotate(data_t *d, unsigned format, uint64_t tiling,
> + igt_rotation_t rot)
> {
> if (format == DRM_FORMAT_C8 ||
> (intel_gen(d->devid) < 11 && format == DRM_FORMAT_RGB565))
> return false;
>
> + // Y-tiled 90/270 rotation isn't supported for fp16 on Intel
> + if (is_i915_device(d->drm_fd) && igt_format_is_fp16(format) &&
> + (rot == IGT_ROTATION_90 || rot == IGT_ROTATION_270))
> + return false;
> +
> return true;
> }
>
> @@ -200,8 +206,9 @@ static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
> 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 (igt_fb_supported_format(format) &&
> - can_rotate(d, format))
> + can_rotate(d, format, tiling, rot))
> check_scaling_pipe_plane_rot(d, plane, format,
> tiling, pipe,
> output, rot);
> @@ -234,6 +241,9 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, enum pipe pipe, igt_ou
> for (int j = 0; j < plane->drm_plane->count_formats; j++) {
> uint32_t format = plane->drm_plane->formats[j];
>
> + if (!igt_plane_has_format_mod(plane, format, tiling))
> + continue;
> +
> if (igt_fb_supported_format(format))
> check_scaling_pipe_plane_rot(d, plane,
> format, tiling,

Patch series looks good now. :)

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Want me to push it?

~Maarten