1. 31 Oct, 2022 1 commit
    • Hector Martin's avatar
      drm/format-helper: Only advertise supported formats for conversion · 6fdaed8c
      Hector Martin authored
      drm_fb_build_fourcc_list() currently returns all emulated formats
      unconditionally as long as the native format is among them, even though
      not all combinations have conversion helpers. Although the list is
      arguably provided to userspace in precedence order, userspace can pick
      something out-of-order (and thus break when it shouldn't), or simply
      only support a format that is unsupported (and thus think it can work,
      which results in the appearance of a hang as FB blits fail later on,
      instead of the initialization error you'd expect in this case).
      
      Add checks to filter the list of emulated formats to only those
      supported for conversion to the native format. This presumes that there
      is a single native format (only the first is checked, if there are
      multiple). Refactoring this API to drop the native list or support it
      properly (by returning the appropriate emulated->native mapping table)
      is left for a future patch.
      
      The simpledrm driver is left as-is with a full table of emulated
      formats. This keeps all currently working conversions available and
      drops all the broken ones (i.e. this a strict bugfix patch, adding no
      new supported formats nor removing any actually working ones). In order
      to avoid proliferation of emulated formats, future drivers should
      advertise only XRGB8888 as the sole emulated format (since some
      userspace assumes its presence).
      
      This fixes a real user regression where the ?RGB2101010 support commit
      started advertising it unconditionally where not supported, and KWin
      decided to start to use it over the native format and broke, but also
      the fixes the spurious RGB565/RGB888 formats which have been wrongly
      unconditionally advertised since the dawn of simpledrm.
      
      Fixes: 6ea966fc ("drm/simpledrm: Add [AX]RGB2101010 formats")
      Fixes: 11e8f5fd ("drm: Add simpledrm driver")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarHector Martin <marcan@marcan.st>
      Acked-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
      Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20221027135711.24425-1-marcan@marcan.st
      6fdaed8c
  2. 29 Oct, 2022 7 commits
  3. 27 Oct, 2022 1 commit
  4. 25 Oct, 2022 1 commit
  5. 24 Oct, 2022 1 commit
  6. 23 Oct, 2022 9 commits
  7. 22 Oct, 2022 20 commits