Skip to end of metadata
Go to start of metadata

In this chapter, the ongoing problems and limitations of Wayland IVI Extension are discussed, and some solutions to these problems are proposed.

 Dependence between ilmClient and ilmControl

It is not possible to use ilmClient and IlmControl separetely. An application must link both of them. There are two sub-problems which cause this issue:

Initialization problem

An application (client or HMI) initializes Wayland IVI Extension with ilm_init or ilm_initWithNativedisplay APIs. Then, these APIs initializes ilmClient and ilmControl. Therefore, it is not possible to separately initialize ilmClient or ilmControl.

Header files problem

Some APIs are declared in ilm_client.h, but they are implemented at ilmControl. These are:

  • ilm_surfaceGetVisibility
  • ilm_surfaceGetDimension
  • ilm_layerRemoveSurface
  • ilm_layerAddSurface
  • ilm_getPropertiesOfSurface
  • ilm_surfaceSetSourceRectangle

Furthermore, some of these APIs are required at both sides with different behavior. A client should get visibility of its surface, but it should not get visibility of a surface of another client. On the other hand, a HMI may also create or remove surfaces.

Missing Functionality

  • Multi-screen support is missing.
  • Inconsistent Error Handling & Missing Error logging
  • Some APIs do not work at all. Some do not work as intended. Some others have dependency to weston and hardware, which we cannot control.
  • Missing APIs

Not Working at all

We have to discuss to remove or implement them:

  • ilm_takeLayerScreenshot
  • ilm_getNativeHandle
  • ilm_surfaceRemoveNativeContent
  • ilm_surfaceSetNativeContent
  • ilm_surfaceInitialize

Not Working as intended

These problems should be fixed:

  • Source clipping is not working by ilm_surfaceSetSourceRectangle.
  • A surface cannot be removed with ilm_surfaceRemove, if the application has not created it.
  • A surface cannot be removed from the rendering order of a layer with ilm_layerSetRenderOrder.
  • A layer cannot be removed from the rendering order of a screen with ilm_displaySetRenderOrder.
  • Orientation APIs do not work as described at http://projects.genivi.org/wayland-ivi-extension/layer-manager-apis

Weston depended APIs

Users should be informed about these limitations, e.g.:

  • Orientation APIs do not work at all, if weston is used with framebuffer backend.
  • Multiple input focus does not work, if weston is used with x11 backend.

Missing APIs

ilm_setSynchronizedSurfaces and ilm_removeSynchronizedSurfaces are neither declared nor implemented in Wayland IVI Extension. They are used to couple surfaces in the given list, thereby surfaces are composited synchronously.

In my opinion, these APIs have valid use cases, and they should be implemented. They can be realized with weston subsurfaces feature.

  • No labels