From 504367d33b787de2ba8e007a5b620cfd6f0b3074 Mon Sep 17 00:00:00 2001 From: Kevin Strasser Date: Fri, 5 Apr 2019 13:14:05 -0700 Subject: tests/kms_plane_scaling: Skip testing unsupported fp16 features MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä --- tests/kms_plane_scaling.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c index e843bf86..079d2700 100644 --- a/tests/kms_plane_scaling.c +++ b/tests/kms_plane_scaling.c @@ -171,12 +171,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; } @@ -197,9 +203,10 @@ 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) && igt_plane_has_format_mod(plane, format, tiling) && - can_rotate(d, format)) + can_rotate(d, format, tiling, rot)) check_scaling_pipe_plane_rot(d, plane, format, tiling, pipe, output, rot); -- cgit v1.2.3