• Maarten Lankhorst's avatar
    lib/igt_fb: Add support for P01x formats, v5. · cb8e45a6
    Maarten Lankhorst authored
    The P01x formats are planar 16 bits per component, with the unused lower bits set to 0.
    This means they can all be converted the same way. Only the range is slightly different,
    and this is handled in the color_encoding implementation.
    
    This requires cairo 1.17.2 and pixman 0.36. This works but doesn't give extra precision.
    For more than 8 bits precision a few more patches are required to pixman, pending review:
    https://lists.freedesktop.org/archives/pixman/2019-January/004815.html
    https://lists.freedesktop.org/archives/pixman/2019-January/004809.html
    
    Once those are merged, we will require the next pixman release for better precision.
    
    Changes since v1:
    - Add fallback color definitions when compiling on cairo version < 1.17.2.
    - Skip when FB creation fails on HDR formats, instead of failing.
    Changes since v2:
    - Complain slightly harder when pixman/cairo are out of date.
    - Create a fb with alpha when converting to pixman formats with alpha.
    - Oops, s/pixman_format_code_t/cairo_format_t/
    Changes since v3:
    - Rebase on top of upstream YUV changes.
    Changes since v4:
    - Rebase again.
    - Use drm_fourcc.h from drm-misc-next.
    Signed-off-by: 's avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>  #v4
    cb8e45a6
igt_color_encoding.c 7.14 KB