summaryrefslogtreecommitdiff
path: root/hw/xfree86/exa/exa_accel.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/exa/exa_accel.c')
-rw-r--r--hw/xfree86/exa/exa_accel.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/hw/xfree86/exa/exa_accel.c b/hw/xfree86/exa/exa_accel.c
index b7ba3b319..fb46f4449 100644
--- a/hw/xfree86/exa/exa_accel.c
+++ b/hw/xfree86/exa/exa_accel.c
@@ -31,6 +31,7 @@
#include "xf86str.h"
#include "xf86.h"
#include "exa.h"
+#include "cw.h"
#if DEBUG_MIGRATE
#define DBG_MIGRATE(a) ErrorF a
@@ -1232,19 +1233,17 @@ exaFillRegionTiled (DrawablePtr pDrawable,
{
int nbox = REGION_NUM_RECTS (pRegion);
BoxPtr pBox = REGION_RECTS (pRegion);
- int xRot = pDrawable->x + xoff;
- int yRot = pDrawable->y + yoff;
while (nbox--)
{
int height = pBox->y2 - pBox->y1;
- int dstY = pBox->y1 + yoff;
+ int dstY = pBox->y1;
int tileY;
- modulus (dstY - yRot, tileHeight, tileY);
+ tileY = (dstY - pDrawable->y) % tileHeight;
while (height > 0) {
int width = pBox->x2 - pBox->x1;
- int dstX = pBox->x1 + xoff;
+ int dstX = pBox->x1;
int tileX;
int h = tileHeight - tileY;
@@ -1252,7 +1251,7 @@ exaFillRegionTiled (DrawablePtr pDrawable,
h = height;
height -= h;
- modulus (dstX - xRot, tileWidth, tileX);
+ tileX = (dstX - pDrawable->x) % tileWidth;
while (width > 0) {
int w = tileWidth - tileX;
if (w > width)
@@ -1261,7 +1260,7 @@ exaFillRegionTiled (DrawablePtr pDrawable,
(*pExaScr->info->accel.Copy) (pPixmap,
tileX, tileY,
- dstX, dstY,
+ dstX + xoff, dstY + yoff,
w, h);
dstX += w;
tileX = 0;
@@ -1428,6 +1427,8 @@ exaDriverInit (ScreenPtr pScreen,
}
#endif
+ miDisableCompositeWrapper(pScreen);
+
/*
* Hookup offscreen pixmaps
*/