diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2019-06-24 15:16:30 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2019-06-24 18:20:20 +0100 |
commit | 871918dffefc594e765cc7e885a36a7fd3f38da7 (patch) | |
tree | ab0756a3a15785283b605bb00696c6d780fb4634 /drivers/gpu/drm/i915/gem/i915_gem_client_blt.c | |
parent | drm/i915/execlists: Always clear ring_pause if we do not submit (diff) | |
download | linux-dev-871918dffefc594e765cc7e885a36a7fd3f38da7.tar.xz linux-dev-871918dffefc594e765cc7e885a36a7fd3f38da7.zip |
drm/i915/gem: Clear read/write domains for GPU clear
Update the domains for the write via the GPU so that we do not
shortcircuit any set-domain clflush afterwards.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110978
Fixes: b2dbf8d982a4 ("drm/i915/blt: Remove recursive vma->lock")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190624141630.11015-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/gem/i915_gem_client_blt.c')
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_client_blt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_client_blt.c b/drivers/gpu/drm/i915/gem/i915_gem_client_blt.c index 9b01c3b5b31d..6f537e8e4dea 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_client_blt.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_client_blt.c @@ -162,11 +162,12 @@ static void clear_pages_worker(struct work_struct *work) goto out_signal; if (obj->cache_dirty) { - obj->write_domain = 0; if (i915_gem_object_has_struct_page(obj)) drm_clflush_sg(w->sleeve->pages); obj->cache_dirty = false; } + obj->read_domains = I915_GEM_GPU_DOMAINS; + obj->write_domain = 0; /* XXX: we need to kill this */ mutex_lock(&i915->drm.struct_mutex); |