From: "Daniel P. Berrange" <berrange@redhat.com>
To: Zachary Amsden <zamsden@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics
Date: Thu, 30 Jul 2009 11:34:06 +0100 [thread overview]
Message-ID: <20090730103406.GG21611@redhat.com> (raw)
In-Reply-To: <1248948912-7877-1-git-send-email-zamsden@redhat.com>
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 :|
next prev parent reply other threads:[~2009-07-30 10:34 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-30 10:14 [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics Zachary Amsden
2009-07-30 10:14 ` [Qemu-devel] [PATCH 01/14] Add a configure switch to enable / disable all user targets. I felt compelled to do it for symmetry, mostly it is useful to disable user targets when you don't want to build them Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 02/14] Don't segfault when changing VNC password on an SDL display Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 03/14] When using stdio monitor and VNC display, one can set or clear a VNC password; this should set or turn off VNC authentication as well Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 04/14] Clean up VGA type selection; far too many variables being used to track one state leads to confusion if new variables are added Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 05/14] Change cpu_phys mem callback to use [offset, size) bounds instead of [start, end) Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 06/14] Split VGA ioport init into a helper function Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 07/14] Code motion; make mm VGA init function more like standard vga init function. Add missing vga_reset hook to vga_mm_init Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 08/14] Make VGA vram offset passed into vga_mm_init absolute. Since this is a function of the platform, it makes sense to have it be explicitly known in the platform layer rather than hardcoded inside the vga code Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 09/14] Further transformation: use common vga_init() which allows either I/O port or memory mapped based control Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 10/14] Stash VGA physical address and use it in KVM callbacks. Stash VGA physical pointer in cirrus vga as well Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 11/14] Add some defined constants for VGA offsets Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 12/14] Add a PCI BAR for the VGA ROM which is mapped into cirrus_vga. This makes the cirrus device complete under some X servers which require the V_BIOS mapping Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 13/14] Allow cirrus VGA to be initialized multiple times; only the first init takes the ISA memory region and hardware I/O ports Zachary Amsden
2009-07-30 10:15 ` [Qemu-devel] [PATCH 14/14] Atrocious and horrendous patch to demonstrate multiple SDL displays. The multiple SDL displays can be seen on one console, using ctrl-alt-1/2 to switch between them Zachary Amsden
2009-07-30 11:03 ` [Qemu-devel] Re: [PATCH 07/14] Code motion; make mm VGA init function more like standard vga init function. Add missing vga_reset hook to vga_mm_init Jan Kiszka
2009-07-30 11:03 ` [Qemu-devel] Re: [PATCH 05/14] Change cpu_phys mem callback to use [offset, size) bounds instead of [start, end) Jan Kiszka
2009-08-10 19:42 ` [Qemu-devel] " Anthony Liguori
2009-07-30 10:34 ` Daniel P. Berrange [this message]
2009-07-30 10:35 ` [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics Zachary Amsden
2009-07-30 11:33 ` Paul Brook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090730103406.GG21611@redhat.com \
--to=berrange@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zamsden@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).