From: Julian Pidancet <julian.pidancet@citrix.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
Subject: [Qemu-devel] Re: [[RfC PATCH]] linux fbdev display driver prototype.
Date: Fri, 21 May 2010 20:32:25 +0100 [thread overview]
Message-ID: <4BF6DFC9.6010000@citrix.com> (raw)
In-Reply-To: <1274386823-6153-1-git-send-email-kraxel@redhat.com>
On 05/20/2010 09:20 PM, Gerd Hoffmann wrote:
> Display works with 32 bpp (both host + guest) only.
> Which surprisingly didn't cause much problems so far in my testing.
> Host runs with kms and inteldrmfb.
>
> Mouse support isn't available yet.
> I've cheated by passed through the hosts usb mouse for testing.
>
> Keyboard works. Guest screen has whatever keymap you load inside
> the guest. Text windows (monitor, serial, ...) have a simple en-us
> keymap. Good enougth to type monitor commands. Not goot enougth to
> work seriously on a serial terminal. But the qemu terminal emulation
> isn't good enougth for that anyway ;)
>
> Hot keys:
> Ctrl-Alt-F<nr> -> host console switching.
> Ctrl-Alt-<nr> -> qemu console switching.
> Ctrl-Alt-ESC -> exit qemu.
>
> Special feature: Sane console switching. Switching away stops screen
> updates. Switching back redraws the screen. When started from the
> linux console qemu uses the vt you've started it from (requires just
> read/write access to /dev/fb0). When starting from somewhere else qemu
> tries to open a unused virtual terminal and switch to it (usually
> requires root privileges to open /dev/tty<nr>).
>
> For some strange reason console switching from X11 to qemu doesn't work.
> Anything else (including X11 -> text console -> qemu) works fine. To be
> investigated ...
>
This looks very promissing.
I just got a couple of observations:
- Your patch does not work on my machine with the vesafb driver. It reports "can't handle 8 bpp frame buffers". It turns out that the vesafb driver seems to initialize the framebuffer in PSEUDOCOLOR mode. I think we should add a piece of code which tries reinitialize the framebuffer with the suitable parametters (32bpp/TRUECOLOR). It works fine with inteldrmfb though.
- You should register a Display Allocator and override the create_displaysurface() method like I did in the DirectFB driver. This way you save qemu a data copy. fbdev_render_32() should only be used when the guest framebuffer is not compatible with the physical framebuffer (guest_bpp != physical_bbp || guest_linesize != physical_linesize).
- A cool feature would be to be able to stretch the guest display in fullscreen. My DirectFB driver implements a fullscreen toggle command by pressing the Ctrl-Alt-Return keys. I think Stefano added a SDL zoom feature a while ago which we could reuse for this.
- I'm not very familiar with the scancode stuff, but I think that if you set your VT fd in the K_RAW keyboard mode, you'll be able to get true keyboard scancodes that you can directly give to the guest using the kbd_put_keycode() function. This way we could avoid having to define keymaps and this scancode map inside qemu.
Cheers,
Julian
next prev parent reply other threads:[~2010-05-21 19:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-20 20:20 [Qemu-devel] [[RfC PATCH]] linux fbdev display driver prototype Gerd Hoffmann
2010-05-21 10:11 ` [Qemu-devel] " Stefano Stabellini
2010-05-21 10:26 ` Gerd Hoffmann
2010-05-21 19:32 ` Julian Pidancet [this message]
2010-05-24 10:05 ` Stefano Stabellini
2010-05-25 7:11 ` Gerd Hoffmann
2010-05-25 9:26 ` Stefano Stabellini
2010-06-01 11:11 ` Julian Pidancet
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=4BF6DFC9.6010000@citrix.com \
--to=julian.pidancet@citrix.com \
--cc=Stefano.Stabellini@eu.citrix.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.