mbox series

[v4.1,0/3] CRTC background color

Message ID 20190130185122.10322-1-matthew.d.roper@intel.com (mailing list archive)
Headers show
Series CRTC background color | expand

Message

Matt Roper Jan. 30, 2019, 6:51 p.m. UTC
Previous patch series was here:
  https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html

I'm told the ChromeOS userspace code to make use of the background color
has been reviewed and is ready for use:
 * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
 * https://chromium-review.googlesource.com/c/chromium/src/+/1278858

So I think ABI-wise we've met the userspace consumer requirements to
upstream this; we just need to get reviews on the two i915-specific
patches and a clean CI report.

v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.


Matt Roper (3):
  drm/i915: Force background color to black for gen9+ (v2)
  drm: Add CRTC background color property (v4)
  drm/i915/gen9+: Add support for pipe background color (v4)

 drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
 drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
 drivers/gpu/drm/drm_mode_config.c    |  6 +++++
 drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
 drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
 drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
 include/drm/drm_blend.h              |  1 +
 include/drm/drm_crtc.h               | 12 ++++++++++
 include/drm/drm_mode_config.h        |  5 +++++
 include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
 10 files changed, 138 insertions(+), 3 deletions(-)

Comments

Matt Roper Jan. 30, 2019, 6:56 p.m. UTC | #1
On Wed, Jan 30, 2019 at 10:51:19AM -0800, Matt Roper wrote:
> Previous patch series was here:
>   https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html
> 
> I'm told the ChromeOS userspace code to make use of the background color
> has been reviewed and is ready for use:
>  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
>  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858

Woops, the second link here should have been to

  https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/1241436

which I believe is some unit tests to go along with the main userspace
code.


Matt

> 
> So I think ABI-wise we've met the userspace consumer requirements to
> upstream this; we just need to get reviews on the two i915-specific
> patches and a clean CI report.
> 
> v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.
> 
> 
> Matt Roper (3):
>   drm/i915: Force background color to black for gen9+ (v2)
>   drm: Add CRTC background color property (v4)
>   drm/i915/gen9+: Add support for pipe background color (v4)
> 
>  drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
>  drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
>  drivers/gpu/drm/drm_mode_config.c    |  6 +++++
>  drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
>  drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
>  drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
>  include/drm/drm_blend.h              |  1 +
>  include/drm/drm_crtc.h               | 12 ++++++++++
>  include/drm/drm_mode_config.h        |  5 +++++
>  include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
>  10 files changed, 138 insertions(+), 3 deletions(-)
> 
> -- 
> 2.14.5
>
Daniel Vetter Jan. 30, 2019, 8:57 p.m. UTC | #2
On Wed, Jan 30, 2019 at 10:56:26AM -0800, Matt Roper wrote:
> On Wed, Jan 30, 2019 at 10:51:19AM -0800, Matt Roper wrote:
> > Previous patch series was here:
> >   https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html
> > 
> > I'm told the ChromeOS userspace code to make use of the background color
> > has been reviewed and is ready for use:
> >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> 
> Woops, the second link here should have been to
> 
>   https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/1241436
> 
> which I believe is some unit tests to go along with the main userspace
> code.

Do we have this as igts too?
-Daniel

> 
> 
> Matt
> 
> > 
> > So I think ABI-wise we've met the userspace consumer requirements to
> > upstream this; we just need to get reviews on the two i915-specific
> > patches and a clean CI report.
> > 
> > v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.
> > 
> > 
> > Matt Roper (3):
> >   drm/i915: Force background color to black for gen9+ (v2)
> >   drm: Add CRTC background color property (v4)
> >   drm/i915/gen9+: Add support for pipe background color (v4)
> > 
> >  drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
> >  drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
> >  drivers/gpu/drm/drm_mode_config.c    |  6 +++++
> >  drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
> >  drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
> >  drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
> >  include/drm/drm_blend.h              |  1 +
> >  include/drm/drm_crtc.h               | 12 ++++++++++
> >  include/drm/drm_mode_config.h        |  5 +++++
> >  include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
> >  10 files changed, 138 insertions(+), 3 deletions(-)
> > 
> > -- 
> > 2.14.5
> > 
> 
> -- 
> Matt Roper
> Graphics Software Engineer
> IoTG Platform Enabling & Development
> Intel Corporation
> (916) 356-2795
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Matt Roper Jan. 30, 2019, 11:48 p.m. UTC | #3
On Wed, Jan 30, 2019 at 09:57:10PM +0100, Daniel Vetter wrote:
> On Wed, Jan 30, 2019 at 10:56:26AM -0800, Matt Roper wrote:
> > On Wed, Jan 30, 2019 at 10:51:19AM -0800, Matt Roper wrote:
> > > Previous patch series was here:
> > >   https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html
> > > 
> > > I'm told the ChromeOS userspace code to make use of the background color
> > > has been reviewed and is ready for use:
> > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > 
> > Woops, the second link here should have been to
> > 
> >   https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/1241436
> > 
> > which I believe is some unit tests to go along with the main userspace
> > code.
> 
> Do we have this as igts too?
> -Daniel

Yeah, I posted it along with some of the earlier revisions of the
series, but haven't reposted the latest copy lately.  I'll check and see
if it needs a rebase and then post it shortly.

Unfortunately the IGT isn't as useful as I'd like it to be since the
CRC's for a plane filled with a solid color never come up the same as a
pure background color (at least on the APL platform I'm using).  I can
run the IGT in interactive mode and the colors seem identical to visual
inspection, but the CRC values never agree, so I've disabled the CRC
comparison in the test for now.  I'm not sure if this is related to the
other blending quirks of gen9; it will be interesting to see if the
CRC's match on an Icelake or something.

FWIW, I've mmap'd the Cairo-generated plane framebuffer and verified
that it contains exactly the pixel values we'd expect (so it's not a
matter of bad roundoff in Cairo), and I've tried flipping both 8bpc and
10bpc pixel formats (to match the background color's 10 bits per
component), but nothing seems to make the CRC's match.  :-(


Matt

> 
> > 
> > 
> > Matt
> > 
> > > 
> > > So I think ABI-wise we've met the userspace consumer requirements to
> > > upstream this; we just need to get reviews on the two i915-specific
> > > patches and a clean CI report.
> > > 
> > > v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.
> > > 
> > > 
> > > Matt Roper (3):
> > >   drm/i915: Force background color to black for gen9+ (v2)
> > >   drm: Add CRTC background color property (v4)
> > >   drm/i915/gen9+: Add support for pipe background color (v4)
> > > 
> > >  drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
> > >  drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
> > >  drivers/gpu/drm/drm_mode_config.c    |  6 +++++
> > >  drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
> > >  drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
> > >  drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
> > >  include/drm/drm_blend.h              |  1 +
> > >  include/drm/drm_crtc.h               | 12 ++++++++++
> > >  include/drm/drm_mode_config.h        |  5 +++++
> > >  include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
> > >  10 files changed, 138 insertions(+), 3 deletions(-)
> > > 
> > > -- 
> > > 2.14.5
> > > 
> > 
> > -- 
> > Matt Roper
> > Graphics Software Engineer
> > IoTG Platform Enabling & Development
> > Intel Corporation
> > (916) 356-2795
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
Daniel Vetter Feb. 1, 2019, 5:13 p.m. UTC | #4
On Wed, Jan 30, 2019 at 03:48:50PM -0800, Matt Roper wrote:
> On Wed, Jan 30, 2019 at 09:57:10PM +0100, Daniel Vetter wrote:
> > On Wed, Jan 30, 2019 at 10:56:26AM -0800, Matt Roper wrote:
> > > On Wed, Jan 30, 2019 at 10:51:19AM -0800, Matt Roper wrote:
> > > > Previous patch series was here:
> > > >   https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html
> > > > 
> > > > I'm told the ChromeOS userspace code to make use of the background color
> > > > has been reviewed and is ready for use:
> > > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > > 
> > > Woops, the second link here should have been to
> > > 
> > >   https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/1241436
> > > 
> > > which I believe is some unit tests to go along with the main userspace
> > > code.
> > 
> > Do we have this as igts too?
> > -Daniel
> 
> Yeah, I posted it along with some of the earlier revisions of the
> series, but haven't reposted the latest copy lately.  I'll check and see
> if it needs a rebase and then post it shortly.
> 
> Unfortunately the IGT isn't as useful as I'd like it to be since the
> CRC's for a plane filled with a solid color never come up the same as a
> pure background color (at least on the APL platform I'm using).  I can
> run the IGT in interactive mode and the colors seem identical to visual
> inspection, but the CRC values never agree, so I've disabled the CRC
> comparison in the test for now.  I'm not sure if this is related to the
> other blending quirks of gen9; it will be interesting to see if the
> CRC's match on an Icelake or something.

Please don't do that, we need to know when stuff doesn't work. Also, igt
(at least for more generic stuff like this) shouldn't be bent to exactly
match intel hw bugs.

And yes if the blending is generally broken on gen9 then I'd be surprised
if they managed to not screw it up for the background color. Usually
backgroun color works as if it's a separate additional plane that you
blend the others with.
-Daniel

> FWIW, I've mmap'd the Cairo-generated plane framebuffer and verified
> that it contains exactly the pixel values we'd expect (so it's not a
> matter of bad roundoff in Cairo), and I've tried flipping both 8bpc and
> 10bpc pixel formats (to match the background color's 10 bits per
> component), but nothing seems to make the CRC's match.  :-(
> 
> 
> Matt
> 
> > 
> > > 
> > > 
> > > Matt
> > > 
> > > > 
> > > > So I think ABI-wise we've met the userspace consumer requirements to
> > > > upstream this; we just need to get reviews on the two i915-specific
> > > > patches and a clean CI report.
> > > > 
> > > > v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.
> > > > 
> > > > 
> > > > Matt Roper (3):
> > > >   drm/i915: Force background color to black for gen9+ (v2)
> > > >   drm: Add CRTC background color property (v4)
> > > >   drm/i915/gen9+: Add support for pipe background color (v4)
> > > > 
> > > >  drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
> > > >  drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
> > > >  drivers/gpu/drm/drm_mode_config.c    |  6 +++++
> > > >  drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
> > > >  drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
> > > >  drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
> > > >  include/drm/drm_blend.h              |  1 +
> > > >  include/drm/drm_crtc.h               | 12 ++++++++++
> > > >  include/drm/drm_mode_config.h        |  5 +++++
> > > >  include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
> > > >  10 files changed, 138 insertions(+), 3 deletions(-)
> > > > 
> > > > -- 
> > > > 2.14.5
> > > > 
> > > 
> > > -- 
> > > Matt Roper
> > > Graphics Software Engineer
> > > IoTG Platform Enabling & Development
> > > Intel Corporation
> > > (916) 356-2795
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > -- 
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
> 
> -- 
> Matt Roper
> Graphics Software Engineer
> IoTG Platform Enabling & Development
> Intel Corporation
> (916) 356-2795
Matt Roper Feb. 1, 2019, 5:54 p.m. UTC | #5
On Fri, Feb 01, 2019 at 06:13:48PM +0100, Daniel Vetter wrote:
> On Wed, Jan 30, 2019 at 03:48:50PM -0800, Matt Roper wrote:
> > On Wed, Jan 30, 2019 at 09:57:10PM +0100, Daniel Vetter wrote:
> > > On Wed, Jan 30, 2019 at 10:56:26AM -0800, Matt Roper wrote:
> > > > On Wed, Jan 30, 2019 at 10:51:19AM -0800, Matt Roper wrote:
> > > > > Previous patch series was here:
> > > > >   https://lists.freedesktop.org/archives/dri-devel/2018-December/201949.html
> > > > > 
> > > > > I'm told the ChromeOS userspace code to make use of the background color
> > > > > has been reviewed and is ready for use:
> > > > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > > > >  * https://chromium-review.googlesource.com/c/chromium/src/+/1278858
> > > > 
> > > > Woops, the second link here should have been to
> > > > 
> > > >   https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/1241436
> > > > 
> > > > which I believe is some unit tests to go along with the main userspace
> > > > code.
> > > 
> > > Do we have this as igts too?
> > > -Daniel
> > 
> > Yeah, I posted it along with some of the earlier revisions of the
> > series, but haven't reposted the latest copy lately.  I'll check and see
> > if it needs a rebase and then post it shortly.
> > 
> > Unfortunately the IGT isn't as useful as I'd like it to be since the
> > CRC's for a plane filled with a solid color never come up the same as a
> > pure background color (at least on the APL platform I'm using).  I can
> > run the IGT in interactive mode and the colors seem identical to visual
> > inspection, but the CRC values never agree, so I've disabled the CRC
> > comparison in the test for now.  I'm not sure if this is related to the
> > other blending quirks of gen9; it will be interesting to see if the
> > CRC's match on an Icelake or something.
> 
> Please don't do that, we need to know when stuff doesn't work. Also, igt
> (at least for more generic stuff like this) shouldn't be bent to exactly
> match intel hw bugs.
> 
> And yes if the blending is generally broken on gen9 then I'd be surprised
> if they managed to not screw it up for the background color. Usually
> backgroun color works as if it's a separate additional plane that you
> blend the others with.
> -Daniel

+igt-dev list

So looking at the bspec closer, it sounds like it might not actually be
valid for us to take a DMUX (pipe) CRC of just the background color.
The bspec for gen9+ states

    "The DMUX CRC should only be enabled when the pipe, and one or more
    planes in the pipe are enabled."

which implies that just using the background color (which is always on)
isn't sufficient.

I'll uncomment the CRC check when we actually push the test so that it
can still be used on non-Intel platforms that don't have this
restriction.  Should we just make the test skip on the relevant i915
platforms, or should we do something else to mark the test as an
expected failure due to hardware?


Matt

> 
> > FWIW, I've mmap'd the Cairo-generated plane framebuffer and verified
> > that it contains exactly the pixel values we'd expect (so it's not a
> > matter of bad roundoff in Cairo), and I've tried flipping both 8bpc and
> > 10bpc pixel formats (to match the background color's 10 bits per
> > component), but nothing seems to make the CRC's match.  :-(
> > 
> > 
> > Matt
> > 
> > > 
> > > > 
> > > > 
> > > > Matt
> > > > 
> > > > > 
> > > > > So I think ABI-wise we've met the userspace consumer requirements to
> > > > > upstream this; we just need to get reviews on the two i915-specific
> > > > > patches and a clean CI report.
> > > > > 
> > > > > v4.1 is identical to v4 aside from a rebase onto the latest drm-tip.
> > > > > 
> > > > > 
> > > > > Matt Roper (3):
> > > > >   drm/i915: Force background color to black for gen9+ (v2)
> > > > >   drm: Add CRTC background color property (v4)
> > > > >   drm/i915/gen9+: Add support for pipe background color (v4)
> > > > > 
> > > > >  drivers/gpu/drm/drm_atomic_uapi.c    |  4 ++++
> > > > >  drivers/gpu/drm/drm_blend.c          | 27 +++++++++++++++++++---
> > > > >  drivers/gpu/drm/drm_mode_config.c    |  6 +++++
> > > > >  drivers/gpu/drm/i915/i915_debugfs.c  |  9 ++++++++
> > > > >  drivers/gpu/drm/i915/i915_reg.h      |  6 +++++
> > > > >  drivers/gpu/drm/i915/intel_display.c | 43 ++++++++++++++++++++++++++++++++++++
> > > > >  include/drm/drm_blend.h              |  1 +
> > > > >  include/drm/drm_crtc.h               | 12 ++++++++++
> > > > >  include/drm/drm_mode_config.h        |  5 +++++
> > > > >  include/uapi/drm/drm_mode.h          | 28 +++++++++++++++++++++++
> > > > >  10 files changed, 138 insertions(+), 3 deletions(-)
> > > > > 
> > > > > -- 
> > > > > 2.14.5
> > > > > 
> > > > 
> > > > -- 
> > > > Matt Roper
> > > > Graphics Software Engineer
> > > > IoTG Platform Enabling & Development
> > > > Intel Corporation
> > > > (916) 356-2795
> > > > _______________________________________________
> > > > Intel-gfx mailing list
> > > > Intel-gfx@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > > 
> > > -- 
> > > Daniel Vetter
> > > Software Engineer, Intel Corporation
> > > http://blog.ffwll.ch
> > 
> > -- 
> > Matt Roper
> > Graphics Software Engineer
> > IoTG Platform Enabling & Development
> > Intel Corporation
> > (916) 356-2795
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch