• Igor Torrente's avatar
    drm: vkms: Add fb information to `vkms_writeback_job` · bbdf7b2a
    Igor Torrente authored
    This commit is the groundwork to introduce new formats to the planes and
    writeback buffer. As part of it, a new buffer metadata field is added to
    `vkms_writeback_job`, this metadata is represented by the `vkms_frame_info`
    struct.
    
    Also adds two new function pointers (`line_to_frame_func` and
    `frame_to_line_func`) are defined to handle format conversion
    from/to internal format.
    
    A new internal format(`struct pixel_argb_u16`) is introduced to deal with
    all possible inputs. It consists of 16 bits fields that represent each of
    the channels.
    
    These things will allow us, in the future, to have different compositing
    and wb format types.
    
    V2: Change the code to get the drm_framebuffer reference and not copy its
        contents (Thomas Zimmermann).
    V3: Drop the refcount in the wb code (Thomas Zimmermann).
    V5: Add {wb,plane}_format_transform_func to vkms_writeback_job
        and vkms_plane_state (Pekka Paalanen)
    V6: Improvements to some struct/struct members names (Pekka Paalanen).
        Splits this patch in two (Pekka Paalanen).
    V7: Replace line_to_frame_func and frame_to_line_func typedefs
       with the function signature and void* (Melissa Wen).
    Reviewed-by: default avatarMelissa Wen <mwen@igalia.com>
    Signed-off-by: default avatarIgor Torrente <igormtorrente@gmail.com>
    Signed-off-by: default avatarMelissa Wen <melissa.srw@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220905190811.25024-6-igormtorrente@gmail.com
    bbdf7b2a
vkms_writeback.c 4.55 KB