summaryrefslogtreecommitdiffstats
path: root/hw/display/sm501.c
diff options
context:
space:
mode:
authorBALATON Zoltan2020-06-20 22:56:28 +0200
committerGerd Hoffmann2020-06-30 22:46:28 +0200
commit1cb62e3666b48ac4c6a22340165e21439919908f (patch)
tree51d3b67b84f736d55ed402463512647063231a42 /hw/display/sm501.c
parentsm501: Drop unneded variable (diff)
downloadqemu-1cb62e3666b48ac4c6a22340165e21439919908f.tar.gz
qemu-1cb62e3666b48ac4c6a22340165e21439919908f.tar.xz
qemu-1cb62e3666b48ac4c6a22340165e21439919908f.zip
sm501: Ignore no-op blits
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>
Diffstat (limited to 'hw/display/sm501.c')
-rw-r--r--hw/display/sm501.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index 5d2e019575..ad5a62bfab 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);