Skip to content
  • Ankit Nautiyal's avatar
    compositor-drm: Add aspect-ratio parsing support · a21c3931
    Ankit Nautiyal authored and Pekka Paalanen's avatar Pekka Paalanen committed
    
    
    The flag bits 19-22 of the connector modes, provide the aspect-ratio
    information. This information can be stored in flags bits of the
    weston mode structure, so that it can used for setting a mode with a
    particular aspect-ratio.
    Currently, DRM layer supports aspect-ratio with atomic-modesetting by
    default. For legacy modeset path, the user-space needs to set the
    drm client cap for aspect-ratio, if it wants aspect-ratio information
    in modes.
    
    This patch:
    - preserves aspect-ratio flags from kernel video modes and
      accommodates it in wayland mode.
    - uses aspect-ratio to pick the appropriate mode during modeset.
    - changes the mode format in configuration file weston.ini to
      accommodate aspect-ratio information as:
      WIDTHxHEIGHT@REFRESH-RATE ASPECT-RATIO
      The aspect-ratio can take the following values :
      4:3, 16:9, 64:27, 256:135.
    
    v2: As per recommendation from Pekka Paalanen, Quentin Glidic,
    Daniel Stone, dropped the aspect-ratio info from wayland protocol,
    thereby avoiding exposure of aspect-ratio to the client.
    
    v3: As suggested by Pekka Paalanen, added aspect_ratio field to store
    aspect-ratio information from the drm. Also added drm client
    capability for aspect-ratio, as recommended by Daniel Vetter.
    
    v4: Minor modifications and fixes as suggested by Pekka Paalanen.
    
    v5: Rebased, fixed some styling issues, and added aspect-ratio
    information while printing weston_modes.
    
    v6: Moved the man pages changes to a different patch. Minor
    reorganization of code as suggested by Pekka Paalanen.
    
    Signed-off-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
    [Pekka: replace ARRAY_SIZE with ARRAY_LENGTH]
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    a21c3931