[igt-dev] [PATCH i-g-t] tests/kms_ccs: Select highest resolution

Kahola, Mika mika.kahola at intel.com
Wed Feb 5 14:29:05 UTC 2020


On Wed, 2020-02-05 at 16:04 +0200, Imre Deak wrote:
> On Tue, Jan 28, 2020 at 04:30:54PM +0200, Mika Kahola wrote:
> > In some cases we select resolution that is insufficient for testing
> > and we receive unnecessary skips on CI. Let's loop through all
> > available
> > modes and select the higest one when running the tests.
> > 
> > Signed-off-by: Mika Kahola <mika.kahola at intel.com>
> > ---
> >  tests/kms_ccs.c | 30 ++++++++++++++++++++++++------
> >  1 file changed, 24 insertions(+), 6 deletions(-)
> > 
> > diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> > index 2259a4f1..ddc6a30b 100644
> > --- a/tests/kms_ccs.c
> > +++ b/tests/kms_ccs.c
> > @@ -276,12 +276,28 @@ 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_mode(igt_output_t *output)
> 
> Should return a ptr to drmModeModeInfo.
> 
> > +{
> > +	const drmModeModeInfo *mode;
> > +	drmModeModeInfo *tmp;
> > +	int i;
> > +
> > +	mode = &output->config.connector->modes[0];
> 
> Let's still default to the preferred mode:
> 
> 	mode = igt_output_get_mode(output);
> 
> and then look for a wide enough mode only for the
> test_fb_flags & (FB_MISALIGN_AUX_STRIDE|FB_SMALL_AUX_STRIDE)
> case. That would have minimal effect on existing unrelated test
> cases.
> 
> > +	for (i = 1; i < output->config.connector->count_modes; i++) {
> > +		tmp = &output->config.connector->modes[i];
> > +		if (tmp->vdisplay > mode->vdisplay)
> 
> The requirement is mode->hdisplay > 1024, so we should look for such
> a
> mode starting from the default one above.
Thanks for the review! I will fix these issues.

-Mika-

> 
> > +			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);
> > +	drmModeModeInfo drm_mode = get_mode(data->output);
> >  	enum igt_commit_style commit;
> >  	struct igt_fb fb, fb_sprite;
> >  	int ret;
> > @@ -298,25 +314,27 @@ static bool try_config(data_t *data, enum
> > test_fb_flags fb_flags,
> >  				      data->ccs_modifier))
> >  		return false;
> >  
> > +	igt_output_override_mode(data->output, &drm_mode);
> > +
> >  	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, min(MAX_SPRITE_PLANE_WIDTH,
> > drm_mode.hdisplay),
> > +			    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, min(MAX_SPRITE_PLANE_WIDTH,
> > drm_mode.hdisplay),
> > +			    drm_mode.vdisplay, fb_flags);
> >  	}
> >  
> >  	if (data->flags & TEST_FAIL_ON_ADDFB2)
> >  		return true;
> >  
> >  	igt_plane_set_position(primary, 0, 0);
> > -	igt_plane_set_size(primary, drm_mode->hdisplay, drm_mode-
> > >vdisplay);
> > +	igt_plane_set_size(primary, drm_mode.hdisplay,
> > drm_mode.vdisplay);
> >  	igt_plane_set_fb(primary, &fb);
> >  
> >  	if (data->plane && fb_flags & FB_COMPRESSED) {
> > -- 
> > 2.17.1
> > 
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list