[igt-dev] [PATCH i-g-t] tests/kms_plane_scaling: Update list of supported pixel formats for rotation

Kahola, Mika mika.kahola at intel.com
Thu Apr 25 06:40:53 UTC 2019


On Wed, 2019-04-24 at 12:16 -0700, James Ausmus wrote:
> On Wed, Apr 24, 2019 at 10:58:54AM +0300, Juha-Pekka Heikkila wrote:
> > Look ok to me. Hope i915 doesn't get changes onto that list too
> > frequently.
> 
> Is this something that would make sense for i915 to abstract out to a
> header file, then just regularly copy that header file in to IGT to
> ensure alignment - similar to how we copy the PCI IDs from kernel to
> userspace components?

I think we could do that. It seems that various pixel formats just
keeps coming. This solution was merely a short term solution just to
get our bugs fixed. 

One alternative solution could be that kernel would be able to tell IGT
what formats are able to do rotation.

Cheers,
Mika

> 
> -James
> 
> > 
> > Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> > 
> > On 23.4.2019 16.00, Mika Kahola wrote:
> > > Update the list of pixel formats that cannot be rotated by 90/270
> > > degrees. With this patch,
> > > the kernel and IGT are aligned for i915 driver.
> > > 
> > > References: https://bugs.freedesktop.org/show_bug.cgi?id=109052
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110369
> > > Signed-off-by: Mika Kahola <mika.kahola at intel.com>
> > > ---
> > >   tests/kms_plane_scaling.c | 27 +++++++++++++++++++++------
> > >   1 file changed, 21 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/tests/kms_plane_scaling.c
> > > b/tests/kms_plane_scaling.c
> > > index 079d2700..3d247130 100644
> > > --- a/tests/kms_plane_scaling.c
> > > +++ b/tests/kms_plane_scaling.c
> > > @@ -174,14 +174,29 @@ static const igt_rotation_t rotations[] = {
> > >   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))
> > > +	if (!is_i915_device(d->drm_fd))
> > > +		return true;
> > > +
> > > +	switch (format) {
> > > +	case DRM_FORMAT_RGB565:
> > > +		if (intel_gen(d->devid) >= 11)
> > > +			break;
> > > +		/* fall through */
> > > +	case DRM_FORMAT_C8:
> > > +	case DRM_FORMAT_XRGB16161616F:
> > > +	case DRM_FORMAT_XBGR16161616F:
> > > +	case DRM_FORMAT_ARGB16161616F:
> > > +	case DRM_FORMAT_ABGR16161616F:
> > > +	case DRM_FORMAT_Y210:
> > > +	case DRM_FORMAT_Y212:
> > > +	case DRM_FORMAT_Y216:
> > > +	case DRM_FORMAT_XVYU12_16161616:
> > > +	case DRM_FORMAT_XVYU16161616:
> > >   		return false;
> > > +	default:
> > > +		break;
> > > +	}
> > >   
> > >   	return true;
> > >   }
> > > 
> > 
> > _______________________________________________
> > 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