[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multih
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics |
Date: |
Thu, 30 Jul 2009 11:34:06 +0100 |
User-agent: |
Mutt/1.4.1i |
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 :|
- [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., (continued)
- [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
- [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
- [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
- [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
- [Qemu-devel] [PATCH 11/14] Add some defined constants for VGA offsets., Zachary Amsden, 2009/07/30
- [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
- [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
- [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
- [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
- [Qemu-devel] Re: [PATCH 05/14] Change cpu_phys mem callback to use [offset, size) bounds instead of [start, end)., Jan Kiszka, 2009/07/30
Re: [Qemu-devel] Various VGA / VNC fixes and cleanups to prep for multiheaded graphics,
Daniel P. Berrange <=