• Chris Wilson's avatar
    drm/i915: Flush the context object from the CPU caches upon switching · d3373a24
    Chris Wilson authored
    The issue is that we stale data in the CPU caches, when we come to
    swap-out the object, the CPU may short-circuit the reads from those
    cacheline and so corrupt the context object.
    Secondary, leaving the context object as being marked in the CPU write
    domain whilst on the GPU active list is a bad idea and will throw
    warnings later.
    Note: Thanks to calling set_to_gtt_domain with write = false and not
    setting any gpu write domain when putting a context object onto the
    active list (when we switch away from it) the set_to_gtt_domain call
    won't block.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarBen Widawsky <ben@bwidawsk.net>
    [danvet: Added a note to the commit message and a comment in the code
    to explain the clever non-blocking trick.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
i915_gem_context.c 16.4 KB