• Chris Wilson's avatar
    drm/i915: Fix obj->map_and_fenceable across tiling changes · e9d784d5
    Chris Wilson authored
    As obj->map_and_fenceable computation has changed to only be set when
    the object is bound inside the global GTT (and is suitable aligned to a
    fence region) we need to accommodate those changes when the tiling is
    adjusted. The easiest solution is to unbind from the global GTT if we
    are currently fenceable, but will not be after the tiling change.
    
    The bug has been exposed by
    
    commit f8fcadba218fe6d23b2e353fea1cf0a4be4c9454
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Fri Oct 31 13:53:52 2014 +0000
    
        drm/i915: Only mark as map-and-fenceable when bound into the GGTT
    
    which tried to fix an oversight from
    
    commit e6a84468
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Mon Aug 11 12:00:12 2014 +0200
    
        drm/i915: Force CPU relocations if not GTT mapped
    
    which changed the handling of obj->map_and_fenceable.
    
    Note that the alignment check is a vestige from our attempts to reduce
    the alignment requirements of tiled but unfenced buffers on
    gen2/3. Also, that was when unbinding from the GTT meant UC writes and
    clflushing, so we went to great pains to avoid such.
    
    That leaves the actual bug of setting map_and_fenceable to true if we're
    not bound to ggtt, which violates the change introduced in the above
    patch. Unbinding in that case really looks like the simplest and safest
    option, we have to do it anyway.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85896
    Testcase: igt/gem_concurrent_blit/gttX*
    Tested-by: huax.lu@intel.com
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Tested-by: default avatarValtteri Rantala <valtteri.rantala@intel.com>
    [Jani: amend commit message per input from Daniel and bisect result from
    Valtteri]
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    e9d784d5
i915_gem_tiling.c 16.1 KB