qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH]Fix for minor video corruption under Windows


From: Fabrice Bellard
Subject: Re: [Qemu-devel] [PATCH]Fix for minor video corruption under Windows
Date: Fri, 12 May 2006 00:47:34 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913

Hi,

I think the proper fix must be done in the BIOS (set VRAM to 0xFF at cirrus mode init). I made a patch for that but I must test it a little more.

Fabrice.

Dugger, Donald D wrote:
Leo-

Yeah, I started there but it turns out there are multiple reasons why
that is the wrong place to fix things:

1)  `hw/vga.c' only knows about resolution changes, the bug also appears
if you change the pixel size, e.g. 24 bpp to 16 bpp.

2)  Technically, because of the lazy screen update, your change would be
too late.  To improve performance the vga code is only called
periodically, not after every VRAM change.  It is theoretically possible
for the target to change video mode, assume VRAM got reset, do a bitblt
from non-visible VRAM to visible VRAM and then have the `hw/vga.c' code
get called, overwriting the changes done to visible VRAM.

--
Don Dugger
"Censeo Toto nos in Kansa esse decisse." - D. Gale
address@hidden
Ph: (303)440-1368

-----Original Message-----
From: address@hidden [mailto:address@hidden
] On Behalf Of Leonardo E. Reiter
Sent: Tuesday, May 09, 2006 2:29 PM
To: address@hidden
Subject: Re: [Qemu-devel] [PATCH]Fix for minor video corruption under Windows

Donald...

thanks... I actually posted a patch to fix this sometime ago, but your patch seems more thorough and probably more correct. Just FYI, I attached my patch again. I will test your patch as well.

Thanks again,

Leo Reiter

Donald D. Dugger wrote:

If you change the video resolution while running a Windows

XP image such that

it uses fewer bytes of VRAM (either by using fewer bytes per

pixel or by

lowering the resolution) then some window backgrounds will

become corrupted.

This happens because the Windows XP Cirrus Logic driver

assumes that VRAM is

initialized to 0xff whenever the video mode switches between

VGA and SVGA.

This patch fixes this problem by resetting VRAM whenever a

VGA/SVGA mode switch

occurs.

Signed-off-by: address@hidden


--
Leonardo E. Reiter
Vice President of Product Development, CTO

Win4Lin, Inc.
Virtual Computing that means Business
Main: +1 512 339 7979
Fax: +1 512 532 6501
http://www.win4lin.com




_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel







reply via email to

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