qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Julian Pidancet <julian.pidancet@citrix.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: Tue, 25 May 2010 09:11:16 +0200	[thread overview]
Message-ID: <4BFB7814.7040107@redhat.com> (raw)
In-Reply-To: <4BF6DFC9.6010000@citrix.com>

> 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.

Depends on the video mode you ask for via vga=$nr, there are also 32bpp 
modes.

> I think we should add a piece of code which tries reinitialize
> the framebuffer with the suitable parametters (32bpp/TRUECOLOR).

With vesafb it wouldn't work anyway, you can't switch these parameters 
at runtime.  I think the *drmfb fbdev interface is quite limited too in 
what it allows to change.

> - 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).

Isn't a trivial move though.  If the console is switched you must stop 
drawing on the framebuffer.

Right now this is easy: just stop copying.  Likewise restoring the 
screen when switching back is easy: just copy everything.

If we give out pointers to the framebuffer to other qemu code which 
doesn't know anything about console switching we have to be quite 
careful get things right ...

> - 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.

The actual stretching is done by SDL I think.  For that kind of stuff a 
rendering library is actually helpful ...

> - 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.

I'm not sure this is really portable.  What do you get in K_RAW mode on 
!x86 platforms?  K_MEDIUMRAW gives you linux input layer key codes no 
matter what.  Also the translation to keysyms (for text consoles) is 
easier with mediumraw.

cheers,
   Gerd

  parent reply	other threads:[~2010-05-25  7:11 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
2010-05-24 10:05   ` Stefano Stabellini
2010-05-25  7:11   ` Gerd Hoffmann [this message]
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=4BFB7814.7040107@redhat.com \
    --to=kraxel@redhat.com \
    --cc=Stefano.Stabellini@eu.citrix.com \
    --cc=julian.pidancet@citrix.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 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).