On Thu, Jul 13, 2017 at 7:20 PM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > On Thu, Jul 13, 2017 at 3:33 PM, Vikas Patil <vikasmpatil@xxxxxxxxx> wrote: >> Dear All, >> >> I am looking for an solution to have early smooth splashscreen on the >> Linux system with Weston and drm-backend. >> >> I tried showing splashscreen using Linux logo and fbcon Linux features >> but it is not smooth as when system boots logo gets displayed via >> kernel and as the Weston starts >> I see flicker and blackscreen. >> >> Another approach I tried is having standalone drm api based >> application [1] which uses the one of the available hardware >> plane/overlay for displaying splash image and Weston is >> starting and uses default plane which is different from plane utilized >> by above application. but still I see flicker and black screen when >> Weston starts. >> >> I want splash to be displayed on one of the h/w plane and Weston >> should start in background without any flicker and black screen on >> some other plane. >> >> Anyone here before achieved such a use case with such system? Looking >> for inputs/suggestions/ideas to achieve this. It is ok if something >> needs to be hacked/changd at any level (kernel driver, weston). >> >> This is required on platform such as TI (Jacinto) and Intel (Broxton) >> or devices based on drm graphics stack. >> >> [1] http://git.ti.com/glsdk/example-applications/blobs/39080525baca7bf136f2412d62436366a736af6b/drm-tests/drm_z_alpha.c >> >> Thanking you all for your time and inputs in advance. > > If you make sure you have matching modes between the 2 users of drm > this should work. kms drivers (especially if they are already > converted to atomic) will automatically optimize transitions to not > flicker (if possible). > I am not sure how this will work. As per what I understood is when drmModeSetCrtc() is called it uses the primary/default plane and if application wants to use any other plane then it need to setup the planes using drmModeSetPlane() in application before doing drmModeSetCrtc() so when primary plane scan-outs at crtc phase it also knows it has to compose from using other planes too. This is what splash application is doing. But when I run weston after splash app, weston I think calls drmModeSetCrtc() without the knowledge of planes and previous configuration overrides so it doesn't work. > If you still flicker then it's either a kernel driver issue, a hw > limitations (some hw needs a full modeset for e.g. changing the bit > depth) or you program two different things. > > Also, you must ensure that the boot-splash does not quit until weston > has fully taken over, otherwise kms will first shut down the screen > (when the splash quits), then re-enable it when weston starts. > I have tried adding while with sleep in splash app but still the behavior is same. FYI, I am doing this on TI's Jacinto6 platform but similar required on intel platform too. I was also thinking if there is something can be done in drm-backend of weston. e.g disabling mode setting or some code but not sure if weston will work with it.. Thanks & regards, Vikash _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel