summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-03-25 17:47:38 (GMT)
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-03-27 11:29:08 (GMT)
commitffc62976d215870e3082d9778660167c5fa3946d (patch)
tree1d869f03e99475124733303b506ce53fbd01b25f /drivers
parent586428852a4fe64d77dc3e34c446fba33a2ca971 (diff)
downloadlinux-fsl-qoriq-ffc62976d215870e3082d9778660167c5fa3946d.tar.xz
drm/i915: fall back to shmem pwrite when the buffer is not accessible
It's too expensive to move it around just for that pwrite, especially when we're trashing on the mappable gtt part like crazy. Tested-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 83dfb44..7f33e6a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -771,6 +771,7 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
if (obj->gtt_space &&
obj->cache_level == I915_CACHE_NONE &&
+ obj->map_and_fenceable &&
obj->base.write_domain != I915_GEM_DOMAIN_CPU) {
ret = i915_gem_gtt_pwrite_fast(dev, obj, args, file);
/* Note that the gtt paths might fail with non-page-backed user