From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MWSxo-0001kA-HQ for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:34:20 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MWSxj-0001gP-DD for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:34:20 -0400 Received: from [199.232.76.173] (port=43219 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MWSxj-0001gB-2o for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:34:15 -0400 Received: from mx1.redhat.com ([66.187.233.31]:52096) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MWSxf-0003dO-RD for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:34:14 -0400 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n6UAYAe2023928 for ; Thu, 30 Jul 2009 06:34:10 -0400 Date: Thu, 30 Jul 2009 11:34:06 +0100 From: "Daniel P. Berrange" Subject: Re: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics Message-ID: <20090730103406.GG21611@redhat.com> References: <1248948912-7877-1-git-send-email-zamsden@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1248948912-7877-1-git-send-email-zamsden@redhat.com> Reply-To: "Daniel P. Berrange" List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zachary Amsden Cc: qemu-devel@nongnu.org On Thu, Jul 30, 2009 at 12:14:58AM -1000, Zachary Amsden wrote: > These patches grew from a very strange process, but nonetheless they exist now. > All of the initial patches are robustness / bugfixes / cleanups. The final > result is that we can use multiple Cirrus VGA adapters simultaneously. > > Note the last patch is a complete hack. It is not meant to be designed this > way, and is included for demonstration purposes only. You will also need to > know how to hack your xorg.conf file to setup multihead properly, but it does > work, at least under SDL, for me. You can switch using the standard qemu > ctrl-alt-1 / ctrl-alt-2 to switch between both graphic consoles. > > I would attach a screenshot to demonstrate this if I could, but the patch mail > program, or my skills at manipulating it are not sufficient to do that. > > Not that this is very useful, but it was possible, and a consequence of what > I had been working on, so I felt compelled to release it. > > The next step if anyone were to be interested in multiheaded machine simulation > would be to create a console.h abstraction designed to support this; it would > at least require a 'display_state_init' and 'run' callback, and would need > differentiation to determine whether all displays should be multiplexed on > one console; or whether there should be multiple consoles supporting all > displays; or whether there should be a master console with access to all > monitor targets and slave displays for secondary graphics consoles. > > Multiple concurrent SDL displays would require a much deeper design, with a > separate process for each display, given the current state of SDL does not > support multiple windows. This may or may not be possible under Cocoa, which > I have access to but have not fully investigated. > > This might be more useful when applied to a VNC or other remote display target. > Initial attempts to get multiple simultaneous VNC displays did not work, but > there is no obvious technical obstacle to the progress. For VNC, there is an documented extension which allows for intelligent client side handling of multiple displays. Essentially the server VNC framebuffer represents the combined real estate of all displays (this lets dumb VNC clients work), and the "ExtendedDesktopSize" extension allows intelligent clients to query what regions within the framebuffer correspond to each display. So it would be useful to implement this in QEMU if we're to allow multiple VGA adapters. http://tigervnc.sourceforge.net/cgi-bin/rfbproto#extendeddesktopsize-pseudo-encoding Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|