---------- Пересланное сообщение ----------
Тема: Re: [Qemu-devel] [PATCH 4/7] ati-vga: Fix cursor color with guest_hwcursor=true Дата: Понедельник 12 августа 2019 Отправитель: Andrew Randrianasulu <randrianas...@gmail.com> Получатель: BALATON Zoltan <bala...@eik.bme.hu> В сообщении от Monday 12 August 2019 13:55:45 BALATON Zoltan написал(а): > 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 <bala...@eik.bme.hu> > >>>> --- > >>>> ?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é <phi...@redhat.com> > >> > >> 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. Blue cursor was seen on specific dvd (x86) image I did for myself, because it was using plain X cursor (arrow or X-shaped), not colored versions used by default in many distributions. may be 'startx -- -retro" will show it briefly too? from man Xserver (1.19.7): -retro starts the server with the classic stipple and cursor visible. The default is to start with a black root window, and to suppress display of the cursor until the first time an application calls XDefineCursor(). https://yadi.sk/d/F8cbINWzWJ-DkA users: root and guest passwords: toor and guest You need to boot it to syslinux and type 'slax' there, because default will boot x86-64 kernel without aty128fb .... (my fault) Unfortunately, i don't have fresh qemu compiled (previous tests were done from tmpfs copy of qemu source tree), will recompile from git and re-test. from memory, loading aty128fb and setting config fragment in /etc/X11/xorg.conf.d for EXA AccelMethod and "Option "UseFBDev" "1" ' allowed device (ati-vga) to work. ------------------------------ Update: qemu commit 864ab314f1d924129d06ac7b571f105a2b76a4b2 (tag: v4.1.0-rc4) plus patch series by Zoltan (https://patchew.org/QEMU/cover.1565558093.git.balaton%40eik.bme.hu/) actually boots my x86 dvd image with this command: x86_64-softmmu/qemu-system-x86_64 -m 512 -enable-kvm -device ati-vga,guest_hwcursor=true -cdrom /mnt/sdb1/slax-14_06_2019-private0.iso or x86_64-softmmu/qemu-system-x86_64 -m 512 -enable-kvm -device ati-vga,guest_hwcursor=true -cdrom /mnt/sdb1/slax-14_06_2019-private0.iso -display sdl,gl=on Cursor is normally-colored, but you need something like "xrandr -s 23" because default resolution a bit too big. (after modprobe aty128fb + usual xorg.conf dance about UseFBDev) ----end of update-------- > > (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 -------------------------------------------------------