rpms/xorg-x11-server/F-10 xserver-1.5.3-exa-fix-unneeded-copies.patch, NONE, 1.1 xorg-x11-server.spec, 1.382, 1.383
Dave Airlie
airlied at fedoraproject.org
Mon Nov 17 00:46:48 UTC 2008
- Previous message (by thread): rpms/xmp/F-10 mktarball.sh, NONE, 1.1 xmp-nostrip.patch, NONE, 1.1 xmp.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/xorg-x11-server/F-10 xorg-x11-server.spec, 1.383, 1.384 xserver-1.5.3-exa-fix-unneeded-copies.patch, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-server/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17190
Modified Files:
xorg-x11-server.spec
Added Files:
xserver-1.5.3-exa-fix-unneeded-copies.patch
Log Message:
* Mon Nov 17 2008 Dave Airlie <airlied at redhat.com> 1.5.3-4
- xserver-1.5.3-exa-fix-unneeded-copies.patch: fix some unneeded calls to drivers
xserver-1.5.3-exa-fix-unneeded-copies.patch:
--- NEW FILE xserver-1.5.3-exa-fix-unneeded-copies.patch ---
>From fb2d582e65b386e52bbba8c7f1c7777617db87f4 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Wed, 15 Oct 2008 00:02:13 +0200
Subject: [PATCH] exa: fix unneeded calls to drivers
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 522224b..6e754b2 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -401,6 +401,10 @@ exaCopyNtoN (DrawablePtr pSrcDrawable,
RegionPtr srcregion = NULL, dstregion = NULL;
xRectangle *rects;
+ /* avoid doing copy operations if no boxes */
+ if (nbox == 0)
+ return;
+
pSrcPixmap = exaGetDrawablePixmap (pSrcDrawable);
pDstPixmap = exaGetDrawablePixmap (pDstDrawable);
@@ -1229,36 +1233,51 @@ exaFillRegionTiled (DrawablePtr pDrawable,
*/
if (alu != GXcopy)
ret = TRUE;
- else if ((*pExaScr->info->PrepareCopy) (pPixmap, pPixmap, 1, 1, alu,
- planemask)) {
- for (i = 0; i < nbox; i++)
- {
+ else {
+ Bool more_copy = FALSE;
+
+ for (i = 0; i < nbox; i++) {
int dstX = pBox[i].x1 + tileWidth;
int dstY = pBox[i].y1 + tileHeight;
- int width = min(pBox[i].x2 - dstX, tileWidth);
- int height = min(pBox[i].y2 - pBox[i].y1, tileHeight);
-
- while (dstX < pBox[i].x2) {
- (*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
- dstX, pBox[i].y1, width, height);
- dstX += width;
- width = min(pBox[i].x2 - dstX, width * 2);
- }
- width = pBox[i].x2 - pBox[i].x1;
- height = min(pBox[i].y2 - dstY, tileHeight);
+ if ((dstX < pBox[i].x2) && (dstY < pBox[i].y2))
+ more_copy = TRUE;
+ }
+
+ if (more_copy == FALSE)
+ ret = TRUE;
- while (dstY < pBox[i].y2) {
- (*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
- pBox[i].x1, dstY, width, height);
- dstY += height;
- height = min(pBox[i].y2 - dstY, height * 2);
+ if (more_copy && (*pExaScr->info->PrepareCopy) (pPixmap, pPixmap,
+ 1, 1, alu, planemask)) {
+ for (i = 0; i < nbox; i++)
+ {
+ int dstX = pBox[i].x1 + tileWidth;
+ int dstY = pBox[i].y1 + tileHeight;
+ int width = min(pBox[i].x2 - dstX, tileWidth);
+ int height = min(pBox[i].y2 - pBox[i].y1, tileHeight);
+
+ while (dstX < pBox[i].x2) {
+ (*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
+ dstX, pBox[i].y1, width, height);
+ dstX += width;
+ width = min(pBox[i].x2 - dstX, width * 2);
+ }
+
+ width = pBox[i].x2 - pBox[i].x1;
+ height = min(pBox[i].y2 - dstY, tileHeight);
+
+ while (dstY < pBox[i].y2) {
+ (*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
+ pBox[i].x1, dstY, width, height);
+ dstY += height;
+ height = min(pBox[i].y2 - dstY, height * 2);
+ }
}
- }
- (*pExaScr->info->DoneCopy) (pPixmap);
+ (*pExaScr->info->DoneCopy) (pPixmap);
- ret = TRUE;
+ ret = TRUE;
+ }
}
exaMarkSync(pDrawable->pScreen);
Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-10/xorg-x11-server.spec,v
retrieving revision 1.382
retrieving revision 1.383
diff -u -r1.382 -r1.383
--- xorg-x11-server.spec 13 Nov 2008 04:05:47 -0000 1.382
+++ xorg-x11-server.spec 17 Nov 2008 00:46:17 -0000 1.383
@@ -19,7 +19,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.5.3
-Release: 3%{?dist}
+Release: 4%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@@ -52,6 +52,7 @@
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
+Patch108: xserver-1.5.3-exa-fix-unneeded-copies.patch
# Red Hat specific tweaking, not intended for upstream
# XXX move these to the end of the list
@@ -518,6 +519,9 @@
%changelog
+* Mon Nov 17 2008 Dave Airlie <airlied at redhat.com> 1.5.3-4
+- xserver-1.5.3-exa-fix-unneeded-copies.patch: fix some unneeded calls to drivers
+
* Thu Nov 13 2008 Peter Hutterer <peter.hutterer at redhat.com> 1.5.3-3
- xserver-1.5.3-AEI-on-by-default.patch: ensure AEI on if there is no
xorg.conf. (#471221)
- Previous message (by thread): rpms/xmp/F-10 mktarball.sh, NONE, 1.1 xmp-nostrip.patch, NONE, 1.1 xmp.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/xorg-x11-server/F-10 xorg-x11-server.spec, 1.383, 1.384 xserver-1.5.3-exa-fix-unneeded-copies.patch, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list