qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 4/7] ati-vga: Fix cursor color with guest_hwcurs


From: BALATON Zoltan
Subject: Re: [Qemu-devel] [PATCH 4/7] ati-vga: Fix cursor color with guest_hwcursor=true
Date: Mon, 12 Aug 2019 12:55:45 +0200 (CEST)
User-agent: Alpine 2.21.9999 (BSF 287 2018-06-16)

On Mon, 12 Aug 2019, Philippe Mathieu-Daudé wrote:
On 8/12/19 12:28 PM, BALATON Zoltan wrote:
On Mon, 12 Aug 2019, Philippe Mathieu-Daudé wrote:
On 8/11/19 11:14 PM, BALATON Zoltan wrote:
Fixes: a38127414bd007c5b6ae64c664d9e8839393277e
Signed-off-by: BALATON Zoltan <address@hidden>
---
?hw/display/ati.c | 2 +-
?1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/display/ati.c b/hw/display/ati.c
index 699f38223b..b849f5d510 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -207,7 +207,7 @@ static void ati_cursor_draw_line(VGACommonState
*vga, uint8_t *d, int scr_y)
???????????????? }
???????????? } else {
???????????????? color = (xbits & BIT(7) ? s->regs.cur_color1 :
-????????????????????????????????????????? s->regs.cur_color0) << 8 |
0xff;
+????????????????????????????????????????? s->regs.cur_color0) |
0xff000000;
???????????? }
???????????? if (vga->hw_cursor_x + i * 8 + j >= h) {
???????????????? return; /* end of screen, don't span to next line */


Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

Thanks. I've noticed that cursor color may still be wrong with MacOS
that uses big endian frame buffer so maybe this will also need to take
frame buffer endianness into account somehow but this patch corrects a
difference between guest_hwcursor true and false values, reproducible
with some Linux versions (as far as I remember). While the wrong cursor
color with MacOS is now consistent after this patch with both
guest_hwcursor true or false so that likely needs a different fix that
should be applied both to this place and to ati_cursor_define. (MacOS
does not yet boot fully, it needs patches to OpenBIOS to be able to run
an FCode ROM and will probably need the VBlank interrupt implemented in
ati-vga without which it displays a desktop but freezes there).

If you remember which Linux version had this problem, or you can link to
roms that behave incorrectly, please share, so we can add display
regression tests.

Unfortunately I don't. I think it was Andrew who found this so maybe he can remember.

(You may also need latest vgabios-ati.bin from Gerd's repo to get Linux drivers load and for rage128p that has to be in pc-bios dir because PCI IDs are only patched in that way.)

Regards,
BALATON Zoltan


reply via email to

[Prev in Thread] Current Thread [Next in Thread]