Same ilm surface on multiple layer support

Vikas Patil vikasmpatil at gmail.com
Thu May 10 03:06:51 EDT 2018


Hi All,

As some of the LayerManagerControl commands do not work when same surface
is attached to two layers.

Following command hangs and do not come out as expected. I tried to check
where it is hanging using GDB. Is this gives some hit on issue and
resolution? Please suggest if you have any pointers.

LayerManagerControl get scene

root at linux1:~# gdb -p 916
warning: Unable to find libthread_db matching inferior's thread library,
thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread library,
thread debugging will not be available.

0x4ddf68f4 in wl_list_length () from /usr/lib/libwayland-client.so.0
(gdb) bt
#0  0x4ddf68f4 in wl_list_length () from /usr/lib/libwayland-client.so.0
#1  0x4deb45e4 in ilm_getSurfaceIDsOnLayer ()
   from /usr/lib/libilmControl.so.1.11.0
#2  0x00033f80 in printLayerProperties(unsigned int, char const*) ()
#3  0x00035a40 in printScene() ()
#4  0x0001d4e8 in func_2(Expression*) ()
#5  0x000330ac in
ExpressionInterpreter::interpretCommand(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >) ()
#6  0x00018d50 in main ()

Regards,
Vikash

On Tue, Apr 17, 2018 at 10:51 AM, Vikas Patil <vikasmpatil at gmail.com> wrote:

> Hi Emre,
>
> Could you please suggest on this blocking behavior of LayerManagerControl
> with multi screen/layer?
>
> Thank You.
>
> Best Regards,
> Vikash
>
> On Wed, Apr 11, 2018 at 11:35 AM, Vikas Patil <vikasmpatil at gmail.com>
> wrote:
>
>> Hi Emre Ucan,
>>
>> Thanks a lot for your quick response. I am able to show same surface on
>> two layers now. I have taken following two commit to weston 1.11.0.
>> Attached here same as  patch to weston 1.11.0.
>>
>> "5e8d55da698e58"
>> "67bd21232fa549"
>>
>> However if I use any of the below commands to analyze then it is not
>> exiting and I need to prress "CTRl+C" to come out from command. Do you know
>> if this is the normal behavior or some fix is available for this ?
>>
>> root at linux-a1 :~# LayerManagerControl analyze surface 10
>> ^C
>>
>> root@ linux-a1 :~# LayerManagerControl get scene
>> screen 0 (0x0)
>> ---------------------------------------
>> - resolution:           x=800, y=480
>> - hardware layer count: 0
>> - layer render order:   1000(0x3e8), 2000(0x7d0),
>>
>>     layer 1000 (0x3e8)
>>     ---------------------------------------
>>     - created by pid:       0
>>     - original size:        x=400, y=480
>>     - destination region:   x=0, y=0, w=400, h=480
>>     - source region:        x=0, y=0, w=400, h=480
>>     - orientation:          0 (up is top)
>>     - opacity:              1
>>     - visibility:           1
>>     - type:                 0 (unknown)
>> ^C
>>
>> root at linux-a1:~# LayerManagerControl get layer 1000
>> layer 1000 (0x3e8)
>> ---------------------------------------
>> - created by pid:       0
>> - original size:        x=400, y=480
>> - destination region:   x=0, y=0, w=400, h=480
>> - source region:        x=0, y=0, w=400, h=480
>> - orientation:          0 (up is top)
>> - opacity:              1
>> - visibility:           1
>> - type:                 0 (unknown)
>> ^C
>>
>> root at orinoco-9939-a1:~# LayerManagerControl get surface 10
>> surface 10 (0xa)
>> ---------------------------------------
>> - created by pid:       821
>> - original size:      x=800, y=480
>> - destination region: x=0, y=0, w=400, h=480
>> - source region:      x=0, y=0, w=800, h=480
>> - orientation:        0 (up is top)
>> - opacity:            1
>> - visibility:         1
>> - pixel format:       0 (R-8)
>> - native surface:     0
>> - counters:           frame=0, draw=0, update=0
>> ^C
>>
>>
>> Also following commands worked successfully.
>>
>>
>> LayerManagerControl get screen 0
>> LayerManagerControl get layer 2000
>> LayerManagerControl get layers
>> LayerManagerControl get surfaces
>>
>> I used following commands to setup  and test
>>
>> export XDG_RUNTIME_DIR=/var/run/root/1000
>>
>> LayerManagerControl create layer 1000 400 480
>> LayerManagerControl set layer 1000 visibility 1
>> LayerManagerControl set layer 1000 destination region 0 0 400 480
>>
>> LayerManagerControl create layer 2000 400 480
>> LayerManagerControl set layer 2000 visibility 1
>> LayerManagerControl set layer 2000 destination region 400 0 400 480
>>
>> LayerManagerControl set screen 0 render order 1000,2000
>>
>> EGLWLMockNavigation &
>> LayerManagerControl add surface 10 to layer 1000
>> LayerManagerControl add surface 10 to layer 2000
>> LayerManagerControl set surface 10 visibility 1
>> LayerManagerControl set surface 10 source region 0 0 800 480
>> LayerManagerControl set surface 10 destination region 0 0 400 480
>>
>> Best Regards,
>> Vikash
>>
>> On Tue, Apr 10, 2018 at 7:43 PM, Ucan, Emre (ADITG/ESB) <
>> eucan at de.adit-jv.com> wrote:
>>
>>> Hi Vikas,
>>>
>>>
>>>
>>> This patch “5e8d55da698e58”  enabled the feature. It is part of weston
>>> 1.12 release.
>>>
>>>
>>>
>>> Best regards
>>>
>>> *Emre Ucan*
>>> Engineering Software Base (ADITG/ESB)
>>>
>>> Tel. +49 5121 49 6937
>>>
>>> *From:* wayland-devel [mailto:wayland-devel-bounces@
>>> lists.freedesktop.org] *On Behalf Of *Vikas Patil
>>> *Sent:* Dienstag, 10. April 2018 14:58
>>> *To:* genivi-ivi-layer-management at lists.genivi.org; Mizuno, Wataru
>>> (ADITJ/SWG); wayland mailing list
>>> *Subject:* Same ilm surface on multiple layer support
>>>
>>>
>>>
>>> +Subject
>>>
>>> Dear All,
>>>
>>> We are facing issue when we are trying to add same surface to multiple
>>> layers. When we try to attach surface to another layer, it is getting
>>> detached from the earlier layer.
>>>
>>> We are using wayland/weston/wayland-ivi-extension 1.11.0 with
>>> drm-backend on TI's Soc.
>>>
>>> Could anyone know if this is the limitation of ILM 1.11.0 ? Is this
>>> fixed in newer version and can it be ported to 1.11.0 ? or Is there any
>>> other way to show same surface on multiple layers?
>>>
>>> I see it was the limitation with wayland-ivi-extesnion 1.9.0 as below
>>> [1].
>>>
>>>
>>>
>>> *"Currently 1 layer can be only on 1 screen, and 1 surface can be only on 1 layer, we are planning to relax this limitation And allow 1 surface to be on many layers but we would need to break the ABI and change the  ivi-controller protocol."*
>>>
>>> [1] https://lists.genivi.org/pipermail/genivi-ivi-layer-manageme
>>> nt/2016-October/005416.html
>>>
>>>
>>>
>>> Thanking you in advance.
>>>
>>>
>>>
>>> Best Regards,
>>>
>>> Vikash
>>>
>>
>>
>



More information about the genivi-ivi-layer-management mailing list