<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 14, 2017 at 8:56 AM, Daniel Vetter <span dir="ltr"><<a href="mailto:daniel@ffwll.ch" target="_blank">daniel@ffwll.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Fri, Jul 14, 2017 at 03:07:11PM +0530, Vikas Patil wrote:<br>
> On Thu, Jul 13, 2017 at 7:20 PM, Daniel Vetter <<a href="mailto:daniel.vetter@ffwll.ch">daniel.vetter@ffwll.ch</a>> wrote:<br>
> > On Thu, Jul 13, 2017 at 3:33 PM, Vikas Patil <<a href="mailto:vikasmpatil@gmail.com">vikasmpatil@gmail.com</a>> wrote:<br>
> >> Dear All,<br>
> >><br>
> >> I am looking for an solution to have early smooth splashscreen on the<br>
> >> Linux system with Weston and drm-backend.<br>
> >><br>
> >> I tried showing splashscreen using Linux logo and fbcon Linux features<br>
> >> but it is not smooth as when system boots logo gets displayed via<br>
> >> kernel and as the Weston starts<br>
> >> I see flicker and blackscreen.<br>
> >><br>
> >> Another approach I tried is having standalone drm api based<br>
> >> application [1] which uses the one of the available hardware<br>
> >> plane/overlay for displaying splash image and Weston is<br>
> >> starting and uses default plane which is different from plane utilized<br>
> >> by above application. but still I see flicker and black screen when<br>
> >> Weston starts.<br>
> >><br>
> >> I want splash to be displayed on one of the h/w plane and Weston<br>
> >> should start in background without any flicker and black screen on<br>
> >> some other plane.<br>
> >><br>
> >> Anyone here before achieved such a use case with such system? Looking<br>
> >> for inputs/suggestions/ideas to achieve this. It is ok if something<br>
> >> needs to be hacked/changd at any level (kernel driver, weston).<br>
> >><br>
> >> This is required on platform such as TI (Jacinto) and Intel (Broxton)<br>
> >> or devices based on drm graphics stack.<br>
> >><br>
> >> [1] <a href="http://git.ti.com/glsdk/example-applications/blobs/39080525baca7bf136f2412d62436366a736af6b/drm-tests/drm_z_alpha.c" rel="noreferrer" target="_blank">http://git.ti.com/glsdk/<wbr>example-applications/blobs/<wbr>39080525baca7bf136f2412d624363<wbr>66a736af6b/drm-tests/drm_z_<wbr>alpha.c</a><br>
> >><br>
> >> Thanking you all for your time and inputs in advance.<br>
> ><br>
> > If you make sure you have matching modes between the 2 users of drm<br>
> > this should work. kms drivers (especially if they are already<br>
> > converted to atomic) will automatically optimize transitions to not<br>
> > flicker (if possible).<br>
> ><br>
><br>
> I am not sure how this will work. As per what I understood is when<br>
> drmModeSetCrtc() is called it uses the primary/default plane and if<br>
> application wants to use any other plane then it need to setup the<br>
> planes using drmModeSetPlane() in application before doing<br>
> drmModeSetCrtc() so when primary plane scan-outs at crtc phase it also<br>
> knows it has to compose from using other planes too. This is what<br>
> splash application is doing. But when I run weston after splash app,<br>
> weston  I think calls drmModeSetCrtc() without the knowledge of planes<br>
> and previous configuration overrides so it doesn't work.<br>
<br>
</div></div>Oh that doesn't work, you can't have multiple userspace things using the<br>
display at the same time. You need to composite the different planes in<br>
userspace first. KMS only allows one compositor at the same time (the so<br>
called drm master).<br>
-Daniel<br></blockquote><div><br></div><div>I think what you're missing here is that you'll need to register your DRM splashscreen program with a VT session. Make sure to implement handling of the VT_SETMODE ioctl so that your application drops its DRM master status.</div><div><br></div><div>Also beware that the DRM backend of Weston will aggressively set the mode before you have any chance to paint user-defined content of your own in a Wayland client program. So there will still be some window of time during which your early splashscreen disappears and no specific application content replaces it.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> > If you still flicker then it's either a kernel driver issue, a hw<br>
> > limitations (some hw needs a full modeset for e.g. changing the bit<br>
> > depth) or you program two different things.<br>
> ><br>
> > Also, you must ensure that the boot-splash does not quit until weston<br>
> > has fully taken over, otherwise kms will first shut down the screen<br>
> > (when the splash quits), then re-enable it when weston starts.<br>
> ><br>
> I have tried adding while with sleep in splash app but still the<br>
> behavior is same. FYI, I am doing this on TI's Jacinto6 platform but<br>
> similar required on intel platform too.<br>
><br>
> I was also thinking if there is something  can be done in drm-backend<br>
> of weston. e.g disabling mode setting or some code but not sure if<br>
> weston will work with it..<br>
><br>
> Thanks & regards,<br>
> Vikash<br>
<br>
</span><span class="">--<br>
Daniel Vetter<br>
Software Engineer, Intel Corporation<br>
</span><a href="http://blog.ffwll.ch" rel="noreferrer" target="_blank">http://blog.ffwll.ch</a><br>
<div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br></div></div>