qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Gives user ability to select endian format for video di


From: Programmingkid
Subject: Re: [Qemu-devel] Gives user ability to select endian format for video display - fixes Mac OS X guest color issue.
Date: Wed, 7 Jan 2015 11:26:51 -0500

On Jan 7, 2015, at 9:43 AM, Gerd Hoffmann wrote:

>  Hi,
> 
>> However, you should specify it whatever the host endianness and the host
>> OS is.  If this is not the case, you're just exchanging a bug with another.
>> 
>> If something
>> 
>> a) works with Linux host but not with Mac OS X host
>> 
>> b) and works with Linux guest but not with Mac OS X guest
>> 
>> the only logical explanation is that you have more than one bug, and
>> they somehow cancel each other.
> 
> It isn't that simple I think.  Linux and MacOS X using different video
> modes could also have this effect.  Also there are a number of ways
> linux can drive the video card, depending on the kernel version.
> kernels 3.14+ have a drm driver for the qemu stdvga, which runs the card
> with 32bpp (if enabled).  On older kernels the only option is offb,
> which IIRC by default runs with 8bpp modes.  Also offb has quirks to set
> the palette registers on the qemu stdvga.
> 
> So, one interesting question is how MacOS X drives the video card?  Just
> using what openfirmware has initialized?  Which video mode?

That is an intriguing idea. What if the problem is with openbios? I wonder if 
it is as simple as settings a property in a node. 


> 
> Turning on DEBUG_VGA in vga.c should help shed a light on what the guest
> is doing and which video mode is active.

I turned on all debug options in vga.c. Here is the output:

VGA: write addr=0x03c0 data=0x00
VBE: write index=0x4 val=0x0
VBE: write index=0x8 val=0x0
VBE: write index=0x9 val=0x0
VBE: write index=0x1 val=0x320
VBE: write index=0x2 val=0x258
VBE: write index=0x3 val=0x20
VBE: write index=0x4 val=0x1
VGA: write addr=0x03c0 data=0x00
VGA: write addr=0x03c0 data=0x20
VGA: Using shared surface for depth=32 swap=1
VGA: write addr=0x03c8 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c8 data=0x01
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c8 data=0x02
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c8 data=0x03
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c9 data=0x00
VGA: write addr=0x03c8 data=0x04
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c8 data=0x05
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c9 data=0x01
VGA: write addr=0x03c8 data=0x06


> 
> Also: what UI is in use?  cocoa?  gtk?  sdl?  Has using another ui
> (assuming it is available on macosx hosts) any effect?
Cocoa is what I am using. There are currently no other UI's available on Mac OS 
X. 




reply via email to

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