summaryrefslogtreecommitdiffstats
path: root/freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch
diff options
context:
space:
mode:
Diffstat (limited to 'freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch')
-rw-r--r--freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch b/freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch
new file mode 100644
index 000000000..0e282bf04
--- /dev/null
+++ b/freed-ora/tags/f16/3.6.11-6.fc16.gnu/drm-i915-Use-cpu-relocations-if-the-object-is-in-the.patch
@@ -0,0 +1,33 @@
+From 504c7267a1e84b157cbd7e9c1b805e1bc0c2c846 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu, 23 Aug 2012 13:12:52 +0100
+Subject: [PATCH] drm/i915: Use cpu relocations if the object is in the GTT
+ but not mappable
+
+This prevents the case of unbinding the object in order to process the
+relocations through the GTT and then rebinding it only to then proceed
+to use cpu relocations as the object is now in the CPU write domain. By
+choosing to use cpu relocations up front, we can therefore avoid the
+rebind penalty.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+---
+ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+index f7346d8..dc87563 100644
+--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
++++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+@@ -95,6 +95,7 @@ eb_destroy(struct eb_objects *eb)
+ static inline int use_cpu_reloc(struct drm_i915_gem_object *obj)
+ {
+ return (obj->base.write_domain == I915_GEM_DOMAIN_CPU ||
++ !obj->map_and_fenceable ||
+ obj->cache_level != I915_CACHE_NONE);
+ }
+
+--
+1.7.12.1
+
OpenPOWER on IntegriCloud