diff mbox

[i-g-t] igt/kms_rotation_crc : Remove flip tests for sprite plane

Message ID 20170919123121.5628-1-marta.lofstedt@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marta Lofstedt Sept. 19, 2017, 12:31 p.m. UTC
The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
display engine blending to be setup inorder to work in the same
manner as the respective tests for the primary plane.

Since, it is not the objective of the kms_rotation_crc to test our
display blend capabilities, these subtests should be removed.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691

Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
---
 tests/kms_rotation_crc.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Ville Syrjälä Sept. 19, 2017, 1:01 p.m. UTC | #1
On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> display engine blending to be setup inorder to work in the same
> manner as the respective tests for the primary plane.

Hmm. I don't see anything really blending related in there. It's
just using regular old XRGB framebuffers which means blending will
be off.

> 
> Since, it is not the objective of the kms_rotation_crc to test our
> display blend capabilities, these subtests should be removed.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691
> 
> Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
> ---
>  tests/kms_rotation_crc.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 21e264ad..064d4293 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -647,9 +647,6 @@ igt_main
>  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 0 },
>  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 0 },
>  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 0 },
> -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 1 },
> -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 1 },
> -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 1 },

You didn't actually remove all of them.

>  		{ DRM_PLANE_TYPE_CURSOR, IGT_ROTATION_180, 0 },
>  		{ 0, 0, 0}
>  	};
> -- 
> 2.11.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Marta Lofstedt Sept. 19, 2017, 1:04 p.m. UTC | #2
> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Tuesday, September 19, 2017 4:02 PM
> To: Lofstedt, Marta <marta.lofstedt@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH i-g-t] igt/kms_rotation_crc : Remove flip tests
> for sprite plane
> 
> On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> > The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> > display engine blending to be setup inorder to work in the same manner
> > as the respective tests for the primary plane.
> 
> Hmm. I don't see anything really blending related in there. It's just using
> regular old XRGB framebuffers which means blending will be off.
> 
Exactly, the overlay isn't belended against anything hence we are not seeing
The same result as for the primary plane.

> >
> > Since, it is not the objective of the kms_rotation_crc to test our
> > display blend capabilities, these subtests should be removed.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691
> >
> > Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
> > ---
> >  tests/kms_rotation_crc.c | 3 ---
> >  1 file changed, 3 deletions(-)
> >
> > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index
> > 21e264ad..064d4293 100644
> > --- a/tests/kms_rotation_crc.c
> > +++ b/tests/kms_rotation_crc.c
> > @@ -647,9 +647,6 @@ igt_main
> >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_90, 0 },
> >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_180, 0 },
> >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_270, 0 },
> > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_90, 1 },
> > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_180, 1 },
> > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_270, 1 },
> 
> You didn't actually remove all of them.
> 
> >  		{ DRM_PLANE_TYPE_CURSOR,
> IGT_ROTATION_180, 0 },
> >  		{ 0, 0, 0}
> >  	};
> > --
> > 2.11.0
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> --
> Ville Syrjälä
> Intel OTC
Ville Syrjälä Sept. 19, 2017, 1:13 p.m. UTC | #3
On Tue, Sep 19, 2017 at 04:01:42PM +0300, Ville Syrjälä wrote:
> On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> > The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> > display engine blending to be setup inorder to work in the same
> > manner as the respective tests for the primary plane.
> 
> Hmm. I don't see anything really blending related in there. It's
> just using regular old XRGB framebuffers which means blending will
> be off.

OK. So the actual problem is that the test calls drmModePageFlip()
expecting it to magically do something for the sprite plane.
drmModePageFlip() by definition only operates on the primary plane of
the crtc. So the fix looks correct (ie. get rid of the "flip" tests for
the sprite planes) but the commit message is incorrect. This also
explains why you only had to remove the tests with flip==1 and didn't
have to remove the flip==0 tests.

> 
> > 
> > Since, it is not the objective of the kms_rotation_crc to test our
> > display blend capabilities, these subtests should be removed.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691
> > 
> > Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
> > ---
> >  tests/kms_rotation_crc.c | 3 ---
> >  1 file changed, 3 deletions(-)
> > 
> > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > index 21e264ad..064d4293 100644
> > --- a/tests/kms_rotation_crc.c
> > +++ b/tests/kms_rotation_crc.c
> > @@ -647,9 +647,6 @@ igt_main
> >  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 0 },
> >  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 0 },
> >  		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 0 },
> > -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 1 },
> > -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 1 },
> > -		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 1 },
> 
> You didn't actually remove all of them.
> 
> >  		{ DRM_PLANE_TYPE_CURSOR, IGT_ROTATION_180, 0 },
> >  		{ 0, 0, 0}
> >  	};
> > -- 
> > 2.11.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel OTC
Marta Lofstedt Sept. 19, 2017, 1:16 p.m. UTC | #4
> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Tuesday, September 19, 2017 4:13 PM
> To: Lofstedt, Marta <marta.lofstedt@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH i-g-t] igt/kms_rotation_crc : Remove flip tests
> for sprite plane
> 
> On Tue, Sep 19, 2017 at 04:01:42PM +0300, Ville Syrjälä wrote:
> > On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> > > The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> > > display engine blending to be setup inorder to work in the same
> > > manner as the respective tests for the primary plane.
> >
> > Hmm. I don't see anything really blending related in there. It's just
> > using regular old XRGB framebuffers which means blending will be off.
> 
> OK. So the actual problem is that the test calls drmModePageFlip() expecting
> it to magically do something for the sprite plane.
> drmModePageFlip() by definition only operates on the primary plane of the
> crtc. So the fix looks correct (ie. get rid of the "flip" tests for the sprite planes)
> but the commit message is incorrect. This also explains why you only had to
> remove the tests with flip==1 and didn't have to remove the flip==0 tests.

Thanks Ville, I agree.

> 
> >
> > >
> > > Since, it is not the objective of the kms_rotation_crc to test our
> > > display blend capabilities, these subtests should be removed.
> > >
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691
> > >
> > > Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
> > > ---
> > >  tests/kms_rotation_crc.c | 3 ---
> > >  1 file changed, 3 deletions(-)
> > >
> > > diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> > > index 21e264ad..064d4293 100644
> > > --- a/tests/kms_rotation_crc.c
> > > +++ b/tests/kms_rotation_crc.c
> > > @@ -647,9 +647,6 @@ igt_main
> > >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_90, 0 },
> > >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_180, 0 },
> > >  		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_270, 0 },
> > > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_90, 1 },
> > > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_180, 1 },
> > > -		{ DRM_PLANE_TYPE_OVERLAY,
> IGT_ROTATION_270, 1 },
> >
> > You didn't actually remove all of them.
> >
> > >  		{ DRM_PLANE_TYPE_CURSOR,
> IGT_ROTATION_180, 0 },
> > >  		{ 0, 0, 0}
> > >  	};
> > > --
> > > 2.11.0
> > >
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >
> > --
> > Ville Syrjälä
> > Intel OTC
> 
> --
> Ville Syrjälä
> Intel OTC
Tvrtko Ursulin Sept. 19, 2017, 1:52 p.m. UTC | #5
On 19/09/2017 14:13, Ville Syrjälä wrote:
> On Tue, Sep 19, 2017 at 04:01:42PM +0300, Ville Syrjälä wrote:
>> On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
>>> The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
>>> display engine blending to be setup inorder to work in the same
>>> manner as the respective tests for the primary plane.
>>
>> Hmm. I don't see anything really blending related in there. It's
>> just using regular old XRGB framebuffers which means blending will
>> be off.
> 
> OK. So the actual problem is that the test calls drmModePageFlip()
> expecting it to magically do something for the sprite plane.
> drmModePageFlip() by definition only operates on the primary plane of
> the crtc. So the fix looks correct (ie. get rid of the "flip" tests for
> the sprite planes) but the commit message is incorrect. This also
> explains why you only had to remove the tests with flip==1 and didn't
> have to remove the flip==0 tests.

Is it possible to flip on the sprite planes? If so would there be value 
with keeping the tests? Just replacing the flip with some other magic 
ioctl so those code paths are checked as well.

Also, important thing to note is that with 90/270 the test fails before 
the CRC check with a failure from drm_framebuffer_check_src_coords. Not 
sure if that is something to investigate or another test code failure?

Regards,

Tvrtko
Ville Syrjälä Sept. 19, 2017, 2:30 p.m. UTC | #6
On Tue, Sep 19, 2017 at 02:52:12PM +0100, Tvrtko Ursulin wrote:
> 
> On 19/09/2017 14:13, Ville Syrjälä wrote:
> > On Tue, Sep 19, 2017 at 04:01:42PM +0300, Ville Syrjälä wrote:
> >> On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> >>> The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> >>> display engine blending to be setup inorder to work in the same
> >>> manner as the respective tests for the primary plane.
> >>
> >> Hmm. I don't see anything really blending related in there. It's
> >> just using regular old XRGB framebuffers which means blending will
> >> be off.
> > 
> > OK. So the actual problem is that the test calls drmModePageFlip()
> > expecting it to magically do something for the sprite plane.
> > drmModePageFlip() by definition only operates on the primary plane of
> > the crtc. So the fix looks correct (ie. get rid of the "flip" tests for
> > the sprite planes) but the commit message is incorrect. This also
> > explains why you only had to remove the tests with flip==1 and didn't
> > have to remove the flip==0 tests.
> 
> Is it possible to flip on the sprite planes? If so would there be value 
> with keeping the tests? Just replacing the flip with some other magic 
> ioctl so those code paths are checked as well.

Setplane is the "legacy" ioctl to flip planes. In the past that took a
totally different path through the driver so testing the pageflip ioctl
separately made a ton of sense. These days both the pageflip and
setplane ioctl both get converted into an atomic update internally, so
from a pure driver code perspective they're pretty much identical.

So I supposse converting it over to setplane would be OKish. That
would mean ripping out the flip event handling from the code as well.

> 
> Also, important thing to note is that with 90/270 the test fails before 
> the CRC check with a failure from drm_framebuffer_check_src_coords. Not 
> sure if that is something to investigate or another test code failure?

That is potentially due to not using atomic and having a framebuffer
that can't accomodate both orientations. So either the plane would have
to disabled before changing the rotation and re-enabled with the new fb
afterwards, or the fb would have to be allocated to have
max(w,h) x max(w,h) dimensions to accomodate both orientations.

With atomic we can do the rotation change and the fb change at the same
time, so there is no problematic intermediate state that could exceed
the fb dimensions.
Marta Lofstedt Sept. 20, 2017, 11:33 a.m. UTC | #7
When I have some time I will try to fix the test instead of deleting it.

/Marta 

> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com]
> Sent: Tuesday, September 19, 2017 5:30 PM
> To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Cc: Lofstedt, Marta <marta.lofstedt@intel.com>; intel-
> gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH i-g-t] igt/kms_rotation_crc : Remove flip tests
> for sprite plane
> 
> On Tue, Sep 19, 2017 at 02:52:12PM +0100, Tvrtko Ursulin wrote:
> >
> > On 19/09/2017 14:13, Ville Syrjälä wrote:
> > > On Tue, Sep 19, 2017 at 04:01:42PM +0300, Ville Syrjälä wrote:
> > >> On Tue, Sep 19, 2017 at 03:31:21PM +0300, Marta Lofstedt wrote:
> > >>> The kms_rotation_crc@sprite-rotation-*-flip subtests, would need
> > >>> display engine blending to be setup inorder to work in the same
> > >>> manner as the respective tests for the primary plane.
> > >>
> > >> Hmm. I don't see anything really blending related in there. It's
> > >> just using regular old XRGB framebuffers which means blending will
> > >> be off.
> > >
> > > OK. So the actual problem is that the test calls drmModePageFlip()
> > > expecting it to magically do something for the sprite plane.
> > > drmModePageFlip() by definition only operates on the primary plane
> > > of the crtc. So the fix looks correct (ie. get rid of the "flip"
> > > tests for the sprite planes) but the commit message is incorrect.
> > > This also explains why you only had to remove the tests with flip==1
> > > and didn't have to remove the flip==0 tests.
> >
> > Is it possible to flip on the sprite planes? If so would there be
> > value with keeping the tests? Just replacing the flip with some other
> > magic ioctl so those code paths are checked as well.
> 
> Setplane is the "legacy" ioctl to flip planes. In the past that took a totally
> different path through the driver so testing the pageflip ioctl separately
> made a ton of sense. These days both the pageflip and setplane ioctl both
> get converted into an atomic update internally, so from a pure driver code
> perspective they're pretty much identical.
> 
> So I supposse converting it over to setplane would be OKish. That would
> mean ripping out the flip event handling from the code as well.
> 
> >
> > Also, important thing to note is that with 90/270 the test fails
> > before the CRC check with a failure from
> > drm_framebuffer_check_src_coords. Not sure if that is something to
> investigate or another test code failure?
> 
> That is potentially due to not using atomic and having a framebuffer that
> can't accomodate both orientations. So either the plane would have to
> disabled before changing the rotation and re-enabled with the new fb
> afterwards, or the fb would have to be allocated to have
> max(w,h) x max(w,h) dimensions to accomodate both orientations.
> 
> With atomic we can do the rotation change and the fb change at the same
> time, so there is no problematic intermediate state that could exceed the fb
> dimensions.
> 
> --
> Ville Syrjälä
> Intel OTC
diff mbox

Patch

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 21e264ad..064d4293 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -647,9 +647,6 @@  igt_main
 		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 0 },
 		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 0 },
 		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 0 },
-		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_90, 1 },
-		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_180, 1 },
-		{ DRM_PLANE_TYPE_OVERLAY, IGT_ROTATION_270, 1 },
 		{ DRM_PLANE_TYPE_CURSOR, IGT_ROTATION_180, 0 },
 		{ 0, 0, 0}
 	};