This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRA76P: Multiple display using weston/wayland

Part Number: DRA76P

Please tell me any one, how to run weston two different QT clients on two different display if we have multiple display device?

Regards

Mayur

  • Hi Mayur,
    Are you configuring weston with desktop-shell? If yes I guess using input device like mouse or keyboard is the way to move the QT applications to different display using Drag and Drop. Weston in desktop-shell always sets random position of each client, there is no positioning allowed.

    If ivi-shell is configured, there is LayerManagerController can be used for this purpose.
  • Hi Ramprasad,

    Actually, we are trying to run two qt application on linux such that one qt application render its graphics on primary display and another application render its graphics on hdmi display. So, could you share some document or link to do proper configuration for qt or any better approach to do this but please consider backend as drm. So, there should not be drmMaster conflict.

    Regards
    Mayur
  • Thanks for reply Ramprasad,

    I configured ivi-shell and I using layer-add-surfaces command as :
    root@dra7xx-evm:~# layer-add-surfaces
    Call layer-add-surface <layerID> <number_of_surfaces>

    here, it takes only two arguments but in ti doc, 3 arguments are mentioned out of that another one is <screenID> to select another display. But whatever we have the layer-add-surface which takes bydefault display id 0 which is LCD. So what about external display HDMI.

    Thanks & Regards
    Mayur
  • Hi Mayur,

    Yes, default layer_add_surface from wayland_ivi_extension takes 2 arguments. TI has modified this to take screenID also as argument in PSDKLA3.04 release. What is the SDK you are using?

    If you just copy this application from PSDKLA3.04 filesystem to your rootfs , that's sufficient.

  • Hi Ramprasad,

    Yes, I think, I am using same sdk which is got from "ti-processor-sdk-linux-automotive-dra7xx-evm-03.04.00.03-installer.bin" but I didn't find that binary which you are mentioning.

    Thanks & Regards
    Mayur
  • Hi Mayur,

    Yes, this support doesn't exist in PSDKLA3.04 and added in later releases. You can try applying these two patches on wayland-ivi-extension reprository

    or directly use the attached layer_add_surfaces which supports adding screenIDlayer_add_surface.zip as an argument.

    use screenID 0 for LCD and 1 for HDMI.

  • Thanks Ramprasad,

    The shared binary is working fine for HDMI but still I didn't get the procedure to run two different application on two different display simultaneously. Could you please tell me the procedure or just share any related document or its link.

    Thanks & Regards
    Mayur
  • Hi Mayur,

    The way we tested dual display with this binary is

    $layer_arun.zipdd_surfaces 0 1000 1 &

    $Launch first QT application.   Make sure this application creates ivi_surface with a unique ID. You should observe application running on LCD.

    $layer_add_surfaces 1 2000 1 &

    $Launch second QT application on HDMI .  Make sure this application creates ivi_surface with a unique ID. You should observe second application on HDMI.

    I have attached the script which I tested with wayland-clients.

    Thanks

    Ramprasad

  • Great!! Thanks Ramprasad,

    Now, i am able to see the weston default client application on two different display. But if i run the command
    ./layer_add_surface 0 1000 1 &
    then it is creating only layer id with full dimension(1920x1200) of screen but not any surface which is I checked by command :

    root@dra7xx-evm:~# LayerManagerControl get surfaces
    0 Surface(s):


    then I ran qt application that is coming by default in (500x500) surface which is created by qt application itself. But we want in full screen mode.

    Although, I know the layer and surface creation/controlling can be done by LayerManagerControl but some of the argument I didn't understand like <nativehandle> to create surface.

    So, could you please tell me how we can control the size and position before running/rendering any qt graphics.

    Thanks & Regards
    Mayur
  • Hi Mayur,
    ./layer_add_surface 0 1000 1 ---> This will create only layer on first display and assigns ID 1000 to that layer, it won't create any surfaces. This application exits only after Configured number of surfaces are created. Clients are supposed to create the ivi-surface.
    This happens only when you launch the client.

    After launching the qtapp, execute LayerMangerControl get scene , This will give info of all screens, layers and surfaces

    Use this command to set the qtapp in full screen mode
    LayerManagerControl set surface <surface-id-of_qtapp> destination region 0 0 1920 1200


    Just run LayerManagerControl without any arguments, it will show all possible commands to configure layers/surfaces
  • Yes, Ramprasad
    that is correct but almost same sequence of commands as you explained I tried already it is resizing the surface but I am getting zoomed image instead of full image after resizing of surface.

    Thanks & Regards
    Mayur
  • Yes, this is happening with weston-simple-egl client also.
    Looks like qtapp will have to create the surface with full screen size instead of 512x512.
  • Hi Ramprasad,

    Some of the qt application are not visible in ivi shell with getting wayland debug log similar to "ivi_controller_surface@23.visiblity(0)". But some are visible and giving log similar to "ivi_controller_surface@13.visiblity(1)".
    Why is it so? And how can we resolve this without change in qt application? because these application work properly with wayland desktop shell and eglfs.
    is LayerManagerControl helpful for this? It mean that can we manually make the surface visible if we know the id.
  • Hi Mayur,
    Can you share the details which qt applications are not working properly on ivi-shell?
    Many of the qt application provided with SDK's filesystem supports only desktop-shell.
    If possible please share the qt application binaries

    Thanks
    Ramprasad
  • Hi Ramprasad,

    Please check the attached application with ivi shell.

    cube.tar

    Thanks & Regards

    Mayur

  • Hi Mayur,
    PSDKLA3.04 didn't support ivi-shell in qtwayland. How are you able to see some Qt applications working with ivi-shell.
    Did you upgrade qtwayland recipe? It seems from 5.7 version onwards only ivi-shell in qtwayland is supported.

    Can you share the logs for this .
    WAYLAND_DEBUG=1 QT_WAYLAND_SHELL_INTEGRATION=ivi-shell ./cube

    I am seeing segmentation fault with PSDKLA3.04 as qtwayland is not supporting ivi-shell.