|
1 | | -/* $NetBSD: mgafb.c,v 1.1 2026/03/17 10:03:02 macallan Exp $ */ |
| 1 | +/* $NetBSD: mgafb.c,v 1.2 2026/03/17 12:51:37 macallan Exp $ */ |
2 | 2 |
|
3 | 3 | /* |
4 | 4 | * Copyright (c) 2024 The NetBSD Foundation, Inc. |
|
33 | 33 | */ |
34 | 34 |
|
35 | 35 | #include <sys/cdefs.h> |
36 | | -__KERNEL_RCSID(0, "$NetBSD: mgafb.c,v 1.1 2026/03/17 10:03:02 macallan Exp $"); |
| 36 | +__KERNEL_RCSID(0, "$NetBSD: mgafb.c,v 1.2 2026/03/17 12:51:37 macallan Exp $"); |
37 | 37 |
|
38 | 38 | #include "opt_mgafb.h" |
39 | 39 |
|
@@ -1827,8 +1827,13 @@ mgafb_blit_rect(struct mgafb_softc *sc, |
1827 | 1827 | src_right = adj_srcy * pitch + srcx + w - 1; |
1828 | 1828 |
|
1829 | 1829 | mgafb_wait_fifo(sc, 7); |
1830 | | - MGA_WRITE4(sc, MGA_DWGCTL, MGA_DWGCTL_COPY); |
1831 | | - MGA_WRITE4(sc, MGA_SGN, sgn); |
| 1830 | + if ((srcx & 127) == (dstx & 127) && (sgn == 0)) { |
| 1831 | + /* fast copy */ |
| 1832 | + MGA_WRITE4(sc, MGA_DWGCTL, MGA_DWGCTL_FASTCOPY); |
| 1833 | + } else { |
| 1834 | + MGA_WRITE4(sc, MGA_DWGCTL, MGA_DWGCTL_COPY); |
| 1835 | + MGA_WRITE4(sc, MGA_SGN, sgn); |
| 1836 | + } |
1832 | 1837 | MGA_WRITE4(sc, MGA_AR5, (uint32_t)ar5); |
1833 | 1838 | /* AR3 = scan start, AR0 = scan end */ |
1834 | 1839 | if (sgn & MGA_SGN_BLIT_LEFT) { |
|
0 commit comments