• Zack Rusin's avatar
    drm/vmwgfx: Implement DRIVER_GEM · 8afa13a0
    Zack Rusin authored
    This is initial change adding support for DRIVER_GEM to vmwgfx. vmwgfx
    was written before GEM and has always used TTM. Over the years the
    TTM buffers started inherting from GEM objects but vmwgfx never
    implemented GEM making it quite awkward. We were directly setting
    variables in GEM objects to not make DRM crash.
    
    This change brings vmwgfx inline with other DRM drivers and allows us
    to use a lot of DRM helpers which have depended on drivers with GEM
    support.
    
    Due to historical reasons vmwgfx splits the idea of a buffer and surface
    which makes it a littly tricky since either one can be used in most
    of our ioctl's which take user space handles. For now our BO's are
    GEM objects and our surfaces are opaque objects which are backed by
    GEM objects. In the future I'd like to combine those into a single
    BO but we don't want to break any of our existing ioctl's so it will
    take time to do it in a non-destructive way.
    Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
    Reviewed-by: default avatarMartin Krastev <krastevm@vmware.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211206172620.3139754-5-zack@kde.org
    8afa13a0
vmwgfx_resource.c 31.2 KB