drm/i915: Fix flushing regression from 9af90d19f
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 22 Oct 2010 09:48:12 +0000 (10:48 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 22 Oct 2010 09:48:12 +0000 (10:48 +0100)
Whilst moving the code around in 9af90d19f, I dropped the or'ing in of
new write domains which would zero out the write domain for a render
target if later reused as a source later in the batch. This meant that
we might drop a required flush before reading from the render target.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=31043
Reported-by: xunx.fang@intel.com
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c

index c3398d3964198be57b1d71ce0eb70f65d0bee287..9290f02215cb7eacef4610c5015f5cec637017e7 100644 (file)
@@ -3349,7 +3349,7 @@ i915_gem_execbuffer_relocate(struct drm_i915_gem_object *obj,
                }
 
                target_obj->pending_read_domains |= reloc.read_domains;
-               target_obj->pending_write_domain = reloc.write_domain;
+               target_obj->pending_write_domain |= reloc.write_domain;
 
                /* If the relocation already has the right value in it, no
                 * more work needs to be done.