qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Multi-head support RFC


From: John Baboval
Subject: Re: [Qemu-devel] Multi-head support RFC
Date: Wed, 06 Nov 2013 10:48:18 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0

On 11/05/2013 08:46 PM, Dave Airlie wrote:
On Wed, Nov 6, 2013 at 6:42 AM, John Baboval <address@hidden> wrote:
Hello,

I am currently the device model maintainer for XenClient Enterprise. As you
may or may not know, we maintain a patch queue on top of QEMU (currently
1.3) that adds functionality needed to support XCE features.

One of the major things we add is robust multi-head support. This includes
DDC emulation for EDID data, variable VRAM size, monitor hot-plug support,
simulated VSYNC, and guest controlled display orientation. This includes
both the necessary interfaces between the hw and ui, and a new emulated
adapter (with drivers) that exercises the interfaces.
I don't think we'd want to lump all these things together though,
I agree. In my current patch set they are all separated out into individual bits.

I've started looking at doing multi-head support for a new virtio-gpu,
and I've gotten basic multi-head working with SDL2.0 with cursor
support.

It currently just adds multiple DisplaySurfaces to the QemuConsole,
now Gerd said he thought I should be using multiple QemuConsoles but I
really didn't think this was a good idea, and I still think multiple
surfaces makes more sense wrt how best to interact with this.

Why do you need to emulate DDC btw? is this just to fool the guest
vesa code etc?
Basically, yes. It's convenient if you don't want to install a driver in the guest, but you want it to boot to a reasonable resolution. There are two parts to the change. The big part is in the vga BIOS, to add an INT10(0x4F) handler that reads the EDID from an IO port. The QEMU side is simply the IO port handler, and a place in VGACommonState to squirrel away the EDID.

For multi-head, we install a driver anyway (The X.org driver is GPL. The windows one, we can only distribute the binary for now because it's got closed-source code from Microsoft in it), and then it doesn't even use the DDC. There's a shared memory channel for passing EDID.



Dave.






reply via email to

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