forked from Minki/linux
drm/i915: Ensure cache flushes prior to doing CS flips
Synchronising to an object active on the same ring is a no-op, for the benefit of execbuffer scheduler. However, for CS flips this means that we can forgo checking whether the last write request of the object is actually queued and more importantly whether the cache flush for the write was emitted. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
2e2f351dbf
commit
d94b5030d2
@ -11040,6 +11040,12 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
|
||||
i915_gem_request_assign(&work->flip_queued_req,
|
||||
obj->last_write_req);
|
||||
} else {
|
||||
if (obj->last_write_req) {
|
||||
ret = i915_gem_check_olr(obj->last_write_req);
|
||||
if (ret)
|
||||
goto cleanup_unpin;
|
||||
}
|
||||
|
||||
ret = dev_priv->display.queue_flip(dev, crtc, fb, obj, ring,
|
||||
page_flip_flags);
|
||||
if (ret)
|
||||
|
Loading…
Reference in New Issue
Block a user