Skip to content

drm_hwcomposer: Fix mixed layer composition

Fix cases when mixed layer composition require non-device layer in the middle:

Layer z_order - SF type    - validated type before - validated type  
            0 - DEVICE     - CLIENT                - CLIENT  
            1 - DEVICE     - DEVICE                - CLIENT  
            2 - DEVICE     - DEVICE                - CLIENT  
            3 - SOLIDCOLOR - CLIENT                - CLIENT  
            4 - DEVICE     - DEVICE                - DEVICE  

In such composition SF will merge layers 0 and 3 and hwcomposer will merge ,1,2,4 that results incorrect merging order.

Issue was observed on the rcar3 (imagination importer), db845c and allwinner H3 (Generic importer) platforms. Reproduces with compositions that requires 'cursor' or 'dim' layers. How to reproduce:

  1. Connect USB mouse when on home screen, you should see mouse cursor under icons (Tested with Launcher3QuickStep desktop)
  2. Go to Settings -> WIFI -> Connect to the AP, then you should see password dialog under AP list.

Solution:

  1. Mark intermediate layers as CLIENT to ensure CLIENT section is in range from bottom layer to most top CLIENT layer.

  2. Use this layer composition to validate if DRM can handle it.

Edited by Roman Stratiienko

Merge request reports