sna/gen6+: Prefer the BLT for large overlapping copies
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
87fc78ac4f
commit
97003b1a2d
|
|
@ -2725,10 +2725,9 @@ fallback_blt:
|
|||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
box, n, &extents)) {
|
||||
if (too_large(extents.x2-extents.x1, extents.y2-extents.y1))
|
||||
goto fallback_blt;
|
||||
bool big = too_large(extents.x2-extents.x1, extents.y2-extents.y1);
|
||||
|
||||
if (can_switch_to_blt(sna, dst_bo, flags) &&
|
||||
if ((big || can_switch_to_blt(sna, dst_bo, flags)) &&
|
||||
sna_blt_copy_boxes(sna, alu,
|
||||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
|
|
@ -2736,6 +2735,9 @@ fallback_blt:
|
|||
box, n))
|
||||
return true;
|
||||
|
||||
if (big)
|
||||
goto fallback_blt;
|
||||
|
||||
return sna_render_copy_boxes__overlap(sna, alu,
|
||||
src, src_bo, src_dx, src_dy,
|
||||
dst, dst_bo, dst_dx, dst_dy,
|
||||
|
|
|
|||
|
|
@ -2962,10 +2962,9 @@ fallback_blt:
|
|||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
box, n, &extents)) {
|
||||
if (too_large(extents.x2-extents.x1, extents.y2-extents.y1))
|
||||
goto fallback_blt;
|
||||
bool big = too_large(extents.x2-extents.x1, extents.y2-extents.y1);
|
||||
|
||||
if (can_switch_to_blt(sna, dst_bo, flags) &&
|
||||
if ((big || can_switch_to_blt(sna, dst_bo, flags)) &&
|
||||
sna_blt_copy_boxes(sna, alu,
|
||||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
|
|
@ -2973,6 +2972,9 @@ fallback_blt:
|
|||
box, n))
|
||||
return true;
|
||||
|
||||
if (big)
|
||||
goto fallback_blt;
|
||||
|
||||
return sna_render_copy_boxes__overlap(sna, alu,
|
||||
src, src_bo, src_dx, src_dy,
|
||||
dst, dst_bo, dst_dx, dst_dy,
|
||||
|
|
|
|||
|
|
@ -2786,10 +2786,9 @@ fallback_blt:
|
|||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
box, n, &extents)) {
|
||||
if (too_large(extents.x2-extents.x1, extents.y2-extents.y1))
|
||||
goto fallback_blt;
|
||||
bool big = too_large(extents.x2-extents.x1, extents.y2-extents.y1);
|
||||
|
||||
if (can_switch_to_blt(sna, dst_bo, flags) &&
|
||||
if ((big || can_switch_to_blt(sna, dst_bo, flags)) &&
|
||||
sna_blt_copy_boxes(sna, alu,
|
||||
src_bo, src_dx, src_dy,
|
||||
dst_bo, dst_dx, dst_dy,
|
||||
|
|
@ -2797,6 +2796,9 @@ fallback_blt:
|
|||
box, n))
|
||||
return true;
|
||||
|
||||
if (big)
|
||||
goto fallback_blt;
|
||||
|
||||
return sna_render_copy_boxes__overlap(sna, alu,
|
||||
src, src_bo, src_dx, src_dy,
|
||||
dst, dst_bo, dst_dx, dst_dy,
|
||||
|
|
|
|||
Loading…
Reference in New Issue