[PULL,03/13] sm501: Ignore no-op blits
diff mbox series

Message ID 20200701150425.13739-4-kraxel@redhat.com
State New
Headers show
Series
  • [PULL,01/13] sm501: Fix bounds checks
Related show

Commit Message

Gerd Hoffmann July 1, 2020, 3:04 p.m. UTC
From: BALATON Zoltan <balaton@eik.bme.hu>

Some guests seem to try source copy blits with same source and dest
which are no-op so avoid calling pixman for these.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: a2a8214dd37344dfb65f1c343ace4cff2e94f3bb.1592686588.git.balaton@eik.bme.hu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/display/sm501.c | 5 +++++
 1 file changed, 5 insertions(+)

Patch
diff mbox series

diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index 5d2e0195753a..ad5a62bfab1b 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -788,6 +788,11 @@  static void sm501_2d_operation(SM501State *s)
                               (rop2_source_is_pattern ?
                                   " with pattern source" : ""));
             }
+            /* Ignore no-op blits, some guests seem to do this */
+            if (src_base == dst_base && src_pitch == dst_pitch &&
+                src_x == dst_x && src_y == dst_y) {
+                break;
+            }
             /* Check for overlaps, this could be made more exact */
             uint32_t sb, se, db, de;
             sb = src_base + src_x + src_y * (width + src_pitch);