sna/gen4+: Fix determination of intermediate extents
Complete logic fail for finding the bounding box of the boxes to be copied. Reported-by: Clemens Eisserer <linuxhippy@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66168 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
2212468315
commit
362b0dc6a3
|
|
@ -2377,14 +2377,14 @@ fallback_blt:
|
|||
int i;
|
||||
|
||||
for (i = 1; i < n; i++) {
|
||||
if (extents.x1 < box[i].x1)
|
||||
if (box[i].x1 < extents.x1)
|
||||
extents.x1 = box[i].x1;
|
||||
if (extents.y1 < box[i].y1)
|
||||
if (box[i].y1 < extents.y1)
|
||||
extents.y1 = box[i].y1;
|
||||
|
||||
if (extents.x2 > box[i].x2)
|
||||
if (box[i].x2 > extents.x2)
|
||||
extents.x2 = box[i].x2;
|
||||
if (extents.y2 > box[i].y2)
|
||||
if (box[i].y2 > extents.y2)
|
||||
extents.y2 = box[i].y2;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2323,14 +2323,14 @@ fallback_blt:
|
|||
int i;
|
||||
|
||||
for (i = 1; i < n; i++) {
|
||||
if (extents.x1 < box[i].x1)
|
||||
if (box[i].x1 < extents.x1)
|
||||
extents.x1 = box[i].x1;
|
||||
if (extents.y1 < box[i].y1)
|
||||
if (box[i].y1 < extents.y1)
|
||||
extents.y1 = box[i].y1;
|
||||
|
||||
if (extents.x2 > box[i].x2)
|
||||
if (box[i].x2 > extents.x2)
|
||||
extents.x2 = box[i].x2;
|
||||
if (extents.y2 > box[i].y2)
|
||||
if (box[i].y2 > extents.y2)
|
||||
extents.y2 = box[i].y2;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2758,14 +2758,14 @@ fallback_blt:
|
|||
|
||||
extents = box[0];
|
||||
for (i = 1; i < n; i++) {
|
||||
if (extents.x1 < box[i].x1)
|
||||
if (box[i].x1 < extents.x1)
|
||||
extents.x1 = box[i].x1;
|
||||
if (extents.y1 < box[i].y1)
|
||||
if (box[i].y1 < extents.y1)
|
||||
extents.y1 = box[i].y1;
|
||||
|
||||
if (extents.x2 > box[i].x2)
|
||||
if (box[i].x2 > extents.x2)
|
||||
extents.x2 = box[i].x2;
|
||||
if (extents.y2 > box[i].y2)
|
||||
if (box[i].y2 > extents.y2)
|
||||
extents.y2 = box[i].y2;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2941,14 +2941,14 @@ fallback_blt:
|
|||
|
||||
extents = box[0];
|
||||
for (i = 1; i < n; i++) {
|
||||
if (extents.x1 < box[i].x1)
|
||||
if (box[i].x1 < extents.x1)
|
||||
extents.x1 = box[i].x1;
|
||||
if (extents.y1 < box[i].y1)
|
||||
if (box[i].y1 < extents.y1)
|
||||
extents.y1 = box[i].y1;
|
||||
|
||||
if (extents.x2 > box[i].x2)
|
||||
if (box[i].x2 > extents.x2)
|
||||
extents.x2 = box[i].x2;
|
||||
if (extents.y2 > box[i].y2)
|
||||
if (box[i].y2 > extents.y2)
|
||||
extents.y2 = box[i].y2;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1890,11 +1890,12 @@ sna_render_composite_redirect(struct sna *sna,
|
|||
return false;
|
||||
#endif
|
||||
|
||||
DBG(("%s: target too large (%dx%d), copying to temporary %dx%d, max %d\n",
|
||||
DBG(("%s: target too large (%dx%d), copying to temporary %dx%d, max %d / %d\n",
|
||||
__FUNCTION__,
|
||||
op->dst.width, op->dst.height,
|
||||
width, height,
|
||||
sna->render.max_3d_size));
|
||||
sna->render.max_3d_size,
|
||||
sna->render.max_3d_pitch));
|
||||
|
||||
if (!width || !height)
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue