• C
    drm/i915: Broaden application of set-domain(GTT) · 43566ded
    Chris Wilson 提交于
    Previously, this was restricted to only operate on bound objects - to
    make pointer access through the GTT to the object coherent with writes
    to and from the GPU. A second usecase is drm_intel_bo_wait_rendering()
    which at present does not function unless the object also happens to
    be bound into the GGTT (on current systems that is becoming increasingly
    rare, especially for the typical requests from mesa). A third usecase is
    a future patch wishing to extend the coverage of the GTT domain to
    include objects not bound into the GGTT but still in its coherent cache
    domain. For the latter pair of requests, we need to operate on the
    object regardless of its bind state.
    
    v2: After discussion with Akash, we came to the conclusion that the
    get-pages was required in order for accurate domain tracking in the
    corner cases (like the shrinker) and also useful for ensuring memory
    coherency with earlier cached CPU mmaps in case userspace uses exotic
    cache bypass (non-temporal) instructions.
    
    v3: Fix the inactive object check.
    
    v4: Rebase to latest drm-intel-nightly codebase
    Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: NAkash Goel <akash.goel@intel.com>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    43566ded
i915_gem.c 135.6 KB