From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MWSjV-00053A-Rn for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:19:33 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MWSjQ-0004ym-Bk for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:19:32 -0400 Received: from [199.232.76.173] (port=34901 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MWSjQ-0004yO-5d for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:19:28 -0400 Received: from mx2.redhat.com ([66.187.237.31]:41327) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MWSjP-00088A-JO for qemu-devel@nongnu.org; Thu, 30 Jul 2009 06:19:27 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6UAJQH7002710 for ; Thu, 30 Jul 2009 06:19:26 -0400 From: Zachary Amsden Date: Thu, 30 Jul 2009 00:14:58 -1000 Message-Id: <1248948912-7877-1-git-send-email-zamsden@redhat.com> Subject: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: zamsden@redhat.com 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. Enjoy. I was going to include a screenshot of 4 simultaneous heads on a distro with a giant image of a heavily modified and ridiculously finned Honda Civic, but sorry, I don't have the patience to recompile the X server again. Cheers, Zach