]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Fix tiling corruption from pipelined fencing
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 17 Mar 2011 15:23:22 +0000 (15:23 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 23 Mar 2011 09:12:24 +0000 (09:12 +0000)
commitf3e6d77a5ee12830e4a09d02ac65c7ea25d36997
tree3f9f5774baea370effce277e42a312285a0b2327
parent539d6cad70d0956724ba6529a9f90fd4696ee88a
drm/i915: Fix tiling corruption from pipelined fencing

... even though it was disabled. A mistake in the handling of fence reuse
caused us to skip the vital delay of waiting for the object to finish
rendering before changing the register. This resulted in us changing the
fence register whilst the bo was active and so causing the blits to
complete using the wrong stride or even the wrong tiling. (Visually the
effect is that small blocks of the screen look like they have been
interlaced). The fix is to wait for the GPU to finish using the memory
region pointed to by the fence before changing it.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34584
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[Note for 2.6.38-stable, we need to reintroduce the interruptible passing]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/i915/i915_gem.c