diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 1ec4124..cefa10e 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -50,6 +50,8 @@ Patch102: xserver-1.5.2-exa-master-upgrade.patch Patch103: xserver-1.5.0-bg-none-root.patch Patch104: xserver-1.5.0-exa-master-fix-x11perf-crash.patch Patch105: xserver-1.5.1-exa-fix-glyph-segfault.patch +Patch106: xserver-1.5.3-exa-fix-x-y-src-dst.patch +Patch107: xserver-1.5.3-exa-fix-composite-rects.patch # Red Hat specific tweaking, not intended for upstream # XXX move these to the end of the list @@ -514,6 +516,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Nov 12 2008 Dave Airlie 1.5.3-2 +- xserver-1.5.3-exa-fix-composite-rects.patch - backport (#470638) +- xserver-1.5.3-exa-fix-x-y-src-dst.patch - backport + * Wed Nov 05 2008 Adam Jackson 1.5.3-1 - xserver 1.5.3 diff --git a/xserver-1.5.3-exa-fix-composite-rects.patch b/xserver-1.5.3-exa-fix-composite-rects.patch new file mode 100644 index 0000000..7a5de97 --- /dev/null +++ b/xserver-1.5.3-exa-fix-composite-rects.patch @@ -0,0 +1,41 @@ +From 2ca8a0176c4194bf85624655233d824cfec6041c Mon Sep 17 00:00:00 2001 +From: =?utf-8?q?Michel=20D=C3=A4nzer?= +Date: Sat, 8 Nov 2008 01:25:14 +0100 +Subject: [PATCH] Fix typos which caused exaCompositeRects() to use an incorrect damage region. + +Fixes http://bugs.freedesktop.org/show_bug.cgi?id=18065 . + +Also, it can bail if either width or height of the bounding box is <= 0, not +only if both of them are. +--- + exa/exa_render.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/exa/exa_render.c b/exa/exa_render.c +index dde20e6..827a9c7 100644 +--- a/exa/exa_render.c ++++ b/exa/exa_render.c +@@ -492,17 +492,17 @@ exaCompositeRects(CARD8 op, + r = rects; + while (n--) { + int rect_x2 = r->xDst + r->width; +- int rect_y2 = r->yDst + r->width; ++ int rect_y2 = r->yDst + r->height; + + if (r->xDst < x1) x1 = r->xDst; +- if (r->xDst < y1) y1 = r->xDst; ++ if (r->yDst < y1) y1 = r->yDst; + if (rect_x2 > x2) x2 = rect_x2; + if (rect_y2 > y2) y2 = rect_y2; + + r++; + } + +- if (x2 <= x1 && y2 <= y1) ++ if (x2 <= x1 || y2 <= y1) + return; + + box.x1 = x1; +-- +1.6.0.3 + diff --git a/xserver-1.5.3-exa-fix-x-y-src-dst.patch b/xserver-1.5.3-exa-fix-x-y-src-dst.patch new file mode 100644 index 0000000..f8d5275 --- /dev/null +++ b/xserver-1.5.3-exa-fix-x-y-src-dst.patch @@ -0,0 +1,29 @@ +From fb2d582e65b386e52bbba8c7f1c7777617db87f4 Mon Sep 17 00:00:00 2001 +From: Maarten Maathuis +Date: Wed, 15 Oct 2008 00:02:13 +0200 +Subject: [PATCH] exa: restore {x,y}{Src,Dst} to their original values when !done + +--- + exa/exa_render.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/exa/exa_render.c b/exa/exa_render.c +index bafa309..dde20e6 100644 +--- a/exa/exa_render.c ++++ b/exa/exa_render.c +@@ -912,6 +912,12 @@ exaComposite(CARD8 op, + + if (ret) + goto done; ++ ++ /* Let's be correct and restore the variables to their original state. */ ++ xDst -= pDst->pDrawable->x; ++ yDst -= pDst->pDrawable->y; ++ xSrc -= pSrc->pDrawable->x; ++ ySrc -= pSrc->pDrawable->y; + } + } + } +-- +1.6.0.3 +