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

Imre Deak
2020-02-07T13:02:05Z

On Fri, Feb 07, 2020 at 01:58:34PM +0200, Mika Kahola wrote:
> 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@intel.com>

Thanks, this simplifies things:

Reviewed-by: Imre Deak <imre.deak@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