• Rob Clark's avatar
    drm/msm/gem: Add metadata · 9902cb99
    Rob Clark authored
    The EXT_external_objects extension is a bit awkward as it doesn't pass
    explicit modifiers, leaving the importer to guess with incomplete
    information.  In the case of vk (turnip) exporting and gl (freedreno)
    importing, the "OPTIMAL_TILING_EXT" layout depends on VkImageCreateInfo
    flags (among other things), which the importer does not know.  Which
    unfortunately leaves us with the need for a metadata back-channel.
    
    The contents of the metadata are defined by userspace.  The
    EXT_external_objects extension is only required to work between
    compatible versions of gl and vk drivers, as defined by device and
    driver UUIDs.
    
    v2: add missing metadata kfree
    v3: Rework to move copy_from/to_user out from under gem obj lock
        to avoid angering lockdep about deadlocks against fs-reclaim
    Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
    Patchwork: https://patchwork.freedesktop.org/patch/566157/
    9902cb99
msm_gem.c 30.6 KB