drm/i915: Completely disable fence pipelining.
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 5 Dec 2010 21:04:18 +0000 (21:04 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 5 Dec 2010 23:19:37 +0000 (23:19 +0000)
I'm still seeing tiling corruption of PutImage and CopyArea (I think)
under mutter on pnv, so obviously the pipelining logic is deeply flawed.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c

index eeed2e99d247d7393f2a0b847bb8c4ebc8cfacab..8685b92790290139f87eb7c6fbf772c7c535d3d7 100644 (file)
@@ -2484,6 +2484,9 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
        struct drm_i915_fence_reg *reg;
        int ret;
 
+       /* XXX disable pipelining. There are bugs. Shocking. */
+       pipelined = NULL;
+
        /* Just update our place in the LRU if our fence is getting reused. */
        if (obj->fence_reg != I915_FENCE_REG_NONE) {
                reg = &dev_priv->fence_regs[obj->fence_reg];
@@ -2556,9 +2559,8 @@ i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
                if (old->tiling_mode)
                        i915_gem_release_mmap(old);
 
-               /* XXX The pipelined change over appears to be incoherent. */
                ret = i915_gem_object_flush_fence(old,
-                                                 NULL, //pipelined,
+                                                 pipelined,
                                                  interruptible);
                if (ret) {
                        drm_gem_object_unreference(&old->base);