mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-06 06:35:12 +00:00
drm/i915: Do not clflush snooped objects
Rely on the GPU snooping into the CPU cache for appropriately bound objects on MI_FLUSH. Or perhaps one day we will have a cache-coherent CPU/GPU package... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
93dfb40cd8
commit
9c23f7fc4c
1 changed files with 11 additions and 0 deletions
|
@ -2878,6 +2878,17 @@ i915_gem_clflush_object(struct drm_i915_gem_object *obj)
|
||||||
if (obj->pages == NULL)
|
if (obj->pages == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* If the GPU is snooping the contents of the CPU cache,
|
||||||
|
* we do not need to manually clear the CPU cache lines. However,
|
||||||
|
* the caches are only snooped when the render cache is
|
||||||
|
* flushed/invalidated. As we always have to emit invalidations
|
||||||
|
* and flushes when moving into and out of the RENDER domain, correct
|
||||||
|
* snooping behaviour occurs naturally as the result of our domain
|
||||||
|
* tracking.
|
||||||
|
*/
|
||||||
|
if (obj->cache_level != I915_CACHE_NONE)
|
||||||
|
return;
|
||||||
|
|
||||||
trace_i915_gem_object_clflush(obj);
|
trace_i915_gem_object_clflush(obj);
|
||||||
|
|
||||||
drm_clflush_pages(obj->pages, obj->base.size / PAGE_SIZE);
|
drm_clflush_pages(obj->pages, obj->base.size / PAGE_SIZE);
|
||||||
|
|
Loading…
Add table
Reference in a new issue