drm/i915: Use ORIGIN_CPU for fb invalidation from pwrite
As pwrite does not use the fence for its GTT access, and may even go through a secondary interface avoiding the main VMA, we cannot treat the write as automatically invalidated by the hardware and so we require ORIGIN_CPU frontbufer invalidate/flushes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/20160818161718.27187-4-chris@chris-wilson.co.uk Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
4b30cb2334
Коммит
b19482d7ce
|
@ -1082,7 +1082,7 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_private *i915,
|
|||
if (ret)
|
||||
goto out_unpin;
|
||||
|
||||
intel_fb_obj_invalidate(obj, ORIGIN_GTT);
|
||||
intel_fb_obj_invalidate(obj, ORIGIN_CPU);
|
||||
obj->dirty = true;
|
||||
|
||||
user_data = u64_to_user_ptr(args->data_ptr);
|
||||
|
@ -1149,7 +1149,7 @@ out_flush:
|
|||
}
|
||||
}
|
||||
|
||||
intel_fb_obj_flush(obj, false, ORIGIN_GTT);
|
||||
intel_fb_obj_flush(obj, false, ORIGIN_CPU);
|
||||
out_unpin:
|
||||
if (node.allocated) {
|
||||
wmb();
|
||||
|
|
Загрузка…
Ссылка в новой задаче