• Chris Wilson's avatar
    drm/i915: Fallback to using unmappable memory for scanout · 2efb813d
    Chris Wilson authored
    The existing ABI says that scanouts are pinned into the mappable region
    so that legacy clients (e.g. old Xorg or plymouthd) can write directly
    into the scanout through a GTT mapping. However if the surface does not
    fit into the mappable region, we are better off just trying to fit it
    anywhere and hoping for the best. (Any userspace that is capable of
    using ginormous scanouts is also likely not to rely on pure GTT
    updates.) With the partial vma fault support, we are no longer
    restricted to only using scanouts that we can pin (though it is still
    preferred for performance reasons and for powersaving features like
    FBC).
    
    v2: Skip fence pinning when not mappable.
    v3: Add a comment to explain the possible ramifications of not being
        able to use fences for unmappable scanouts.
    v4: Rebase to skip over some local patches
    v5: Rebase to defer until after we have unmappable GTT fault support
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Deepak S <deepak.s@linux.intel.com>
    Cc: Damien Lespiau <damien.lespiau@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20160818161718.27187-27-chris@chris-wilson.co.uk
    2efb813d
i915_gem.c 126 KB