Atomic mode-setting drivers

Daniel Vetter daniel at ffwll.ch
Tue Mar 8 08:33:57 UTC 2016


On Mon, Mar 07, 2016 at 08:42:10PM +0800, Chih-Wei Huang wrote:
> 2016-03-05 0:32 GMT+08:00 Daniel Vetter <daniel at ffwll.ch>:
> > Adding relevant mailing lists and people. Please don't send private
> > mails to maintainers ;-)
> 
> Thank you for the reply and pointing it.
> 
> > On Fri, Mar 4, 2016 at 1:47 PM, Chih-Wei Huang <cwhuang at android-x86.org> wrote:
> >> Hi Daniel,
> >> This is the Android-x86 project.
> >> I'm looking for info about atomic mode-setting drivers
> >> and then found your presentation at
> >> http://www.x.org/wiki/Events/XDC2015/Program/xdc-2015.pdf
> >>
> >> Especially page 16 talks about the Android support,
> >> exactly what I want.
> >>
> >> It said "no one has an open-source atomic hwc".
> >> Actually there is one in the AOSP 6.0 release:
> >>
> >> https://android.googlesource.com/platform/external/drm_hwcomposer
> >>
> >> It's developed by the Chromium team.
> >> An update repo is here:
> >> https://chromium.googlesource.com/chromiumos/drm_hwcomposer
> >
> > Yup, my presentation is already outdated - the latest one for LCA2016
> > mentions that hwc exists.
> 
> Thanks! Do you have a link for it?
> 
> >> Contributing instructions are here:
> >> https://sites.google.com/a/chromium.org/dev/contributing-to-drm_hwcomposer
> >>
> >> We are trying to enable the drm_hwcomposer for Android-x86.
> >> However, it requires atomic mode-setting drivers
> >> which seems are not ready in the vanilla kernel 4.4,
> >> the kernel we are using now.
> >>
> >> Unfortunately none of us is an expert of kernel drm drivres.
> >> Could you give me a brief status of the
> >> current atomic mode-setting drivers in vanilla kernel?
> >> What are still missing? fences? deadlock?
> >> More important, how much effort do we need
> >> to make them work with AOSP's drm_hwcomposer?
> >
> > There's a pile of drivers, but for classic x86 desktop only i915.ko,
> > and that is still not yet enabled by default. i915.nuclear_pageflip=1
> > will give you experimental atomic support but not sure whether that's
> > good enough for hwcomposer.
> 
> Yes. I've tried i915.nuclear_pageflip=1
> (before sent you the email)
> The atomic call pass, but I got further errors:
> 
> 02-25 17:37:28.320  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.320  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.321  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.321  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.321  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.322  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.322  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.322  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.322  1641  1641 I hwc-drm-plane: Could not get alpha property
> 02-25 17:37:28.323  1641  1641 E hwc-drm-resources: Could not find a
> suitable encoder/crtc for display 3
> 02-25 17:37:28.323  1641  1641 E hwc-drm-resources: Failed
> CreateDisplayPipe 47 with -19
> 02-25 17:37:28.323  1641  1641 E hwcomposer-drm: Can't initialize Drm object -19
> 
> Still black screen.
> 
> The other x86 drivers I've tried are radeon and vmwgfx.
> Both seems don't support atomic mode-setting yet.
> 
> The only x86 GPU works with drm_hwcomposer
> is virgl (with patches by Rob Herring).

Sounds like trouble in hwcomposer, not in the i915 driver. I guess you
need to trace what makes hwc unhappy and then adjust the code to be more
flexible - not all hw supports e.g. alpha blending on all planes. Given
that hwc was written for some specific hw plane model (pretty much
universal hw planes with blending) and intel doesn't implement this (at
least on older platforms) there's some work needed.
-Daniel

> 
> > Fences are being worked on in upstream kernel, but nothing to show
> > yet.. Otherwise I don't know what's all needed to make it, I haven't
> > had a chance to play around with it yet.
> >
> >> More discussion about it can be found in
> >> our devel group:
> >> https://groups.google.com/d/msg/android-x86-devel/RErWaXk3b7g/g_OSPGf4AwAJ
> >
> > Please include that mailing list too, to make sure everyone is on board.
> 
> Included. Thanks!
> 
> -- 
> Chih-Wei
> Android-x86 project
> http://www.android-x86.org

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list