diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-22 16:42:26 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-07-22 16:49:05 +0100 |
commit | 142ffa287236adbc3c5f6ead46c63c4c541ace0c (patch) | |
tree | e70ac2de9da68d5c9b85d23eb307f406ee912f14 | |
parent | c57840b272ba88fddf22484929608431879b0fab (diff) |
video/i915: ValidateGC after setting clip.
Order is important. And ensure that the scratch GC is performing clip by
children.
Fixes:
Bug 29213 - video artifacts if used dualscreen mode
https://bugs.freedesktop.org/show_bug.cgi?id=29213
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/i915_video.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/i915_video.c b/src/i915_video.c index 428ea3dc..861bea61 100644 --- a/src/i915_video.c +++ b/src/i915_video.c @@ -454,11 +454,11 @@ I915DisplayVideoTextured(ScrnInfoPtr scrn, gc = GetScratchGC(pixmap->drawable.depth, pixmap->drawable.pScreen); if (gc) { - RegionPtr tmp; - - ValidateGC(&pixmap->drawable, gc); + gc->subWindowMode = ClipByChildren; if (REGION_NUM_RECTS(dstRegion) > 1) { + RegionPtr tmp; + tmp = REGION_CREATE(pixmap->drawable.pScreen, NULL, 0); if (tmp) { REGION_COPY(pixmap->drawable.pScreen, tmp, dstRegion); @@ -466,6 +466,7 @@ I915DisplayVideoTextured(ScrnInfoPtr scrn, } } + ValidateGC(&pixmap->drawable, gc); gc->ops->CopyArea(&target->drawable, &pixmap->drawable, gc, 0, 0, target->drawable.width, |