summaryrefslogtreecommitdiff
path: root/hw/display
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2017-04-05 09:02:46 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2017-04-21 09:02:04 +0100
commit4b865c28099ddd365062f46dd1ad83c03b2468eb (patch)
tree971f0e0b7baa05c3ca7ff833980f23895511f76a /hw/display
parent9800b3c20e79b4203f08ca13c7c3cb602cda1618 (diff)
downloadqemu-4b865c28099ddd365062f46dd1ad83c03b2468eb.zip
tcx: ensure tcx_set_dirty() also invalidates the 24-bit plane and cplane
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/display')
-rw-r--r--hw/display/tcx.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index d24466f59d..6817bd207d 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -96,6 +96,13 @@ typedef struct TCXState {
static void tcx_set_dirty(TCXState *s, ram_addr_t addr, int len)
{
memory_region_set_dirty(&s->vram_mem, addr, len);
+
+ if (s->depth == 24) {
+ memory_region_set_dirty(&s->vram_mem, s->vram24_offset + addr * 4,
+ len * 4);
+ memory_region_set_dirty(&s->vram_mem, s->cplane_offset + addr * 4,
+ len * 4);
+ }
}
static inline int tcx24_check_dirty(TCXState *s, ram_addr_t page,