From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve5LU-0007TH-Do for qemu-devel@nongnu.org; Wed, 06 Nov 2013 10:48:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ve5LP-0005em-3g for qemu-devel@nongnu.org; Wed, 06 Nov 2013 10:48:40 -0500 Received: from maverick.spineless.org ([71.174.98.242]:53997 helo=spineless.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve5LO-0005eW-VX for qemu-devel@nongnu.org; Wed, 06 Nov 2013 10:48:35 -0500 Received: from [216.57.91.130] (helo=[10.204.240.225]) by spineless.org with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1Ve5LM-0005su-Co for qemu-devel@nongnu.org; Wed, 06 Nov 2013 10:48:33 -0500 Message-ID: <527A64C2.3010906@spineless.org> Date: Wed, 06 Nov 2013 10:48:18 -0500 From: John Baboval MIME-Version: 1.0 References: <52795824.3090105@citrix.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Multi-head support RFC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On 11/05/2013 08:46 PM, Dave Airlie wrote: > On Wed, Nov 6, 2013 at 6:42 AM, John Baboval 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. > >