[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v5 12/12] hw/display/artist: Fix invalidation of lines near screen
From: |
Helge Deller |
Subject: |
[PULL v5 12/12] hw/display/artist: Fix invalidation of lines near screen border |
Date: |
Wed, 26 Aug 2020 23:13:45 +0200 |
From: Sven Schnelle <svens@stackframe.org>
If parts of the invalidated screen lines are outside of the VRAM buffer,
the code skips the whole invalidate. This is incorrect when only parts
of the buffer are invisble - which is the case when the mouse cursor is
located near the screen border.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Helge Deller <deller@gmx.de>
---
hw/display/artist.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/display/artist.c b/hw/display/artist.c
index a959b2c158..71982559c6 100644
--- a/hw/display/artist.c
+++ b/hw/display/artist.c
@@ -206,7 +206,12 @@ static void artist_invalidate_lines(struct vram_buffer
*buf,
int starty, int height)
{
int start = starty * buf->width;
- int size = height * buf->width;
+ int size;
+
+ if (starty + height > buf->height)
+ height = buf->height - starty;
+
+ size = height * buf->width;
if (start + size <= buf->size) {
memory_region_set_dirty(&buf->mr, start, size);
--
2.21.3
- [PULL v5 00/12] The following changes since commit 3461487523b897d324e8d91f3fd20ed55f849544:, Helge Deller, 2020/08/26
- [PULL v5 01/12] hw/hppa: Sync hppa_hardware.h file with SeaBIOS sources, Helge Deller, 2020/08/26
- [PULL v5 05/12] hw/hppa/lasi: Don't abort on invalid IMR value, Helge Deller, 2020/08/26
- [PULL v5 08/12] Revert "hw/display/artist: Avoid drawing line when nothing to display", Helge Deller, 2020/08/26
- [PULL v5 07/12] hw/display/artist: Refactor artist_rop8() to avoid buffer over-run, Helge Deller, 2020/08/26
- [PULL v5 09/12] hw/display/artist: Prevent out of VRAM buffer accesses, Helge Deller, 2020/08/26
- [PULL v5 10/12] hw/display/artist: Unbreak size mismatch memory accesses, Helge Deller, 2020/08/26
- [PULL v5 11/12] hw/display/artist: Fix invalidation of lines in artist_draw_line(), Helge Deller, 2020/08/26
- [PULL v5 12/12] hw/display/artist: Fix invalidation of lines near screen border,
Helge Deller <=
- [PULL v5 03/12] hw/hppa: Implement proper SeaBIOS version check, Helge Deller, 2020/08/26
- [PULL v5 06/12] hw/display/artist: Check offset in draw_line to avoid buffer over-run, Helge Deller, 2020/08/26
- [PULL v5 02/12] seabios-hppa: Update to SeaBIOS hppa version 1, Helge Deller, 2020/08/26
- [PULL v5 04/12] hw/display/artist.c: fix out of bounds check, Helge Deller, 2020/08/26
- Re: [PULL v5 00/12] The following changes since commit 3461487523b897d324e8d91f3fd20ed55f849544:, Peter Maydell, 2020/08/27