[igt-dev] [PATCH i-g-t] tests/kms_ccs: Simplify FB width check

Mika Kahola mika.kahola at intel.com
Fri Feb 7 11:58:34 UTC 2020


FB size doesn't have to match with the available modes
on connector. We can select higher width if the selected
mode has a FB width less than 1024. This change conserns
only misaligned and short AUX stride subtests.

Signed-off-by: Mika Kahola <mika.kahola at intel.com>
---
 tests/kms_ccs.c | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index 7ea86613..fa8f624c 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -276,28 +276,13 @@ static igt_plane_t *compatible_main_plane(data_t *data)
 	return igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 }
 
-static drmModeModeInfo *get_wide_mode(drmModeModeInfo *preferred_mode,
-				      igt_output_t *output)
-{
-	drmModeModeInfo *mode, *tmp;
-	int i;
-
-	mode = preferred_mode;
-	for (i = 0; i < output->config.connector->count_modes; i++) {
-		tmp = &output->config.connector->modes[i];
-		if (tmp->hdisplay > mode->hdisplay)
-			mode = tmp;
-	}
-
-	return mode;
-}
-
 static bool try_config(data_t *data, enum test_fb_flags fb_flags,
 		       igt_crc_t *crc)
 {
 	igt_display_t *display = &data->display;
 	igt_plane_t *primary = compatible_main_plane(data);
 	drmModeModeInfo *drm_mode = igt_output_get_mode(data->output);
+	int fb_width = drm_mode->hdisplay;
 	enum igt_commit_style commit;
 	struct igt_fb fb, fb_sprite;
 	int ret;
@@ -315,23 +300,21 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
 		return false;
 
 	if ((fb_flags & FB_MISALIGN_AUX_STRIDE) ||
-	    (fb_flags & FB_SMALL_AUX_STRIDE)) {
-		drm_mode = get_wide_mode(drm_mode, data->output);
-		igt_output_override_mode(data->output, drm_mode);
-	}
+	    (fb_flags & FB_SMALL_AUX_STRIDE))
+		fb_width = max(fb_width, 1536);
+
+	fb_width = min(MAX_SPRITE_PLANE_WIDTH, fb_width);
 
 	if (data->plane && fb_flags & FB_COMPRESSED) {
 		if (!igt_plane_has_format_mod(data->plane, data->format,
 					      data->ccs_modifier))
 			return false;
 
-		generate_fb(data, &fb, min(MAX_SPRITE_PLANE_WIDTH, drm_mode->hdisplay),
-			    drm_mode->vdisplay,
+		generate_fb(data, &fb, fb_width, drm_mode->vdisplay,
 			    (fb_flags & ~FB_COMPRESSED) | FB_HAS_PLANE);
 		generate_fb(data, &fb_sprite, 256, 256, fb_flags);
 	} else {
-		generate_fb(data, &fb, min(MAX_SPRITE_PLANE_WIDTH, drm_mode->hdisplay),
-			    drm_mode->vdisplay, fb_flags);
+		generate_fb(data, &fb, fb_width, drm_mode->vdisplay, fb_flags);
 	}
 
 	if (data->flags & TEST_FAIL_ON_ADDFB2)
-- 
2.17.1



More information about the igt-dev mailing list