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.

AM5728: Chromium and IVI-Shell

Part Number: AM5728

On PDK 5.02, I can get the Chromium (chromium-ozone-wayland, to be precise) running on Weston desktop. However, I need the browser running within the IVI shell:

root@sg3:/usr/share/qt5/examples# layer-add-surfaces -l 4000 -s 2 &                                                                                                                                                                                                                 
[8] 2129
layer-add-surfaces: layer (4000) on display () created, waiting for 2 surfaces ...
layerid=4000 is already used.
layer-add-surfaces: layer (4000) destination region: x:0 y:0 w:1920 h:1080
layer-add-surfaces: layer (4000) visibility TRUE
layer-add-surfaces: layer (2000) created
layer-add-surfaces: layer (4000) created
layer-add-surfaces: layer (1000) created
root@sg3:/usr/share/qt5/examples# chromium --start-fullscreen --kiosk --no-sandbox --no-first-run --incognito 10.111.221.40 --fast --fast-start --noerrdialogs --disable-infobars                                                                                                   
[2131:2131:0108/113744.205998:ERROR:browser_process_platform_part_ozone.cc(20)] Not implemented reached in virtual void BrowserProcessPlatformPart::RegisterInProcessServices(content::ContentBrowserClient::StaticServiceMap*)
[2131:2161:0108/113744.323123:ERROR:wayland_connection.cc(70)] No xdg_shell object
[2131:2161:0108/113744.323171:FATAL:ozone_platform_wayland.cc(93)] Failed to initialize Wayland platform

The qtwebbrowser appears to be broken as well:

root@sg3:/usr/share/qt5/examples# export QT\_WAYLAND\_SHELL\_INTEGRATION=ivi-shell                                                        
root@sg3:/usr/share/qt5/examples# qtwebbrowser 
Using Wayland-EGL    
wlpvr: PVR Services Initialised             
Non-blocking swap buffers not supported. Subsurface rendering can be affected.


wlpvr: Creating Wayland Client surface 2 buffers for process pid=2173!
[2173:2191:0108/114353.932420:ERROR:surface_factory_qt.cpp(82)] eglGetProcAddress not found.
Using the 'ivi-shell' shell integration
layer-add-surfaces: surface (2173) created
layer-add-surfaces: surface (2173) created
layer-add-surfaces: surface (2173) created
layer-add-surfaces: surface (2173) created
layer-add-surfaces: surface (2173) created
layer-add-surfaces: surface (2173) created
Non-blocking swap buffers not supported. Subsurface rendering can be affected.
wlpvr: Creating Wayland Client surface 2 buffers for process pid=2173!
Non-blocking swap buffers not supported. Subsurface rendering can be affected.
wlpvr: Creating Wayland Client surface 2 buffers for process pid=2173!
wlpvr: Creating Wayland Client surface 2 buffers for process pid=2173!
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
layer-add-surfaces: surface (2173) configured with:
    dst region: x:0 y:0 w:506 h:533
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
    src region: x:0 y:0 w:506 h:533
    visibility: TRUE
    added to layer (4000)
qrc:///qml/HomeScreen.qml:260:17: QML Image: Host www.openstreetmap.org not found
qrc:///qml/HomeScreen.qml:260:17: QML Image: Host www.topgear.com not found
qrc:///qml/HomeScreen.qml:260:17: QML Image: Host www.redditstatic.com not found
qrc:///qml/HomeScreen.qml:260:17: QML Image: Host duckduckgo.com not found
qrc:///qml/HomeScreen.qml:260:17: QML Image: Host www.blogsmithmedia.com not found
[2173:2191:0108/114358.180665:ERROR:gl_surface_qt.cpp(667)] Requested OpenGL implementation is not supported. Implementation: 0
*** stack smashing detected ***: <unknown> terminated
[4]   Done                    layer-add-surfaces -l 4000 -s 2  (wd: ~)
(wd now: /usr/share/qt5/examples)
[5]   Done                    layer-add-surfaces -l 4000 -s 2  (wd: ~)
(wd now: /usr/share/qt5/examples)
[6]   Done                    layer-add-surfaces -l 4000 -s 2  (wd: ~)
(wd now: /usr/share/qt5/examples)
[7]   Done                    layer-add-surfaces -l 4000 -s 2  (wd: ~)
(wd now: /usr/share/qt5/examples)
Aborted (core dumped)
layer-add-surfaces: surface (2173) destroyed
layer-add-surfaces: surface (2173) destroyed


Any hints or pointers will be appreciated!

  • Hey Adam,

    I did a quick google on the non-blocking swap buffers message, and it did turn up a QT bug report:

    https://bugreports.qt.io/browse/QTBUG-75586

    It looks related to EGL integration with QT and that updating to EGL 1.5 fixed it. Can you confirm which version of QT and EGL you're currently using? Also not sure what changes or additional requirements IVI shell would impose, but let's start with some basics.

    Munan

  • Hi Munan, thanks for the response!

    Here are the versions of DDK and QT from my image manifest file:

    ti-sgx-ddk-km sg3 1.14.3699939-r7o.107
    ti-sgx-ddk-um sg3 1.14.3699939-r29.32
    qtbase armv7ahf-neon 5.9.6+git0+9c50112304-r0.arago13.15

    Let me see if EGL 1.5 enabled DDK is compatible with Kernel 4.14 and Qt5.9.6. Otherwise it's going to be a big job...

  • Just an update here. It looks like the ti-sgx-ddk-um version 1.17.x (which supports EGL 1.5) was included in the PDK 5.0X, but it's supported architecture only includes the K3, and not the AM5728. I naively tried to force-build it for AM5728, but I’m afraid it was a beginning of a rabbit hole (triggering changes to OpenGLES, EGL, GBM and OpenGL stuff).

    But before I attempt to make the big jump to PDK 6.X, can you check two things for me:

    • DDK 1.14 does NOT support EGL 1.5
    • DDK 1.17 supports EGL 1.5, but AM5728 is NOT supported in PDK 5.X

    Thanks!