mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-07 10:58:19 +02:00
EXA: Fix exponential growth logic for GXcopy tiled fills.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16908 .
This commit is contained in:
parent
8f9b53f729
commit
bc00e1403e
1 changed files with 4 additions and 3 deletions
|
|
@ -1311,10 +1311,10 @@ exaFillRegionTiled (DrawablePtr pDrawable,
|
||||||
planemask)) {
|
planemask)) {
|
||||||
for (i = 0; i < nbox; i++)
|
for (i = 0; i < nbox; i++)
|
||||||
{
|
{
|
||||||
int width = min(pBox[i].x2 - pBox[i].x1, tileWidth);
|
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);
|
int height = min(pBox[i].y2 - pBox[i].y1, tileHeight);
|
||||||
int dstX = pBox[i].x1 + width;
|
|
||||||
int dstY = pBox[i].y1 + height;
|
|
||||||
|
|
||||||
while (dstX < pBox[i].x2) {
|
while (dstX < pBox[i].x2) {
|
||||||
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
|
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
|
||||||
|
|
@ -1324,6 +1324,7 @@ exaFillRegionTiled (DrawablePtr pDrawable,
|
||||||
}
|
}
|
||||||
|
|
||||||
width = pBox[i].x2 - pBox[i].x1;
|
width = pBox[i].x2 - pBox[i].x1;
|
||||||
|
height = min(pBox[i].y2 - dstY, tileHeight);
|
||||||
|
|
||||||
while (dstY < pBox[i].y2) {
|
while (dstY < pBox[i].y2) {
|
||||||
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
|
(*pExaScr->info->Copy) (pPixmap, pBox[i].x1, pBox[i].y1,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue