mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
To: linux-kernel@vger.kernel.org
Subject: Re: Introducing the LCD-Linux project
Date: Sat, 24 Jul 2010 14:43:31 +0000 (UTC)	[thread overview]
Message-ID: <loom.20100724T155117-833@post.gmane.org> (raw)
In-Reply-To: <AANLkTimnxkn5eLRHOAs6v_TJE0hM5=dQ3OWaiQP6tPJd@mail.gmail.com>

Hi,

Mattia Jona-Lasinio <mattia.jona <at> gmail.com> writes:
> Moreover I wanted something that COULD be used as a console but not
> necessarily, that is
> something that could run happily in the presence of a normal monitor
> as well. It seems to me, but I may be
> wrong, that through the standard console system only the current
> visible console is actually updated
> while other consoles are just "software" updated. An external LCD
> would therefore be updated
> only when you "switch" to it, so it would not be possible to use it to
> display diagnostics.

True, that's a general problem one has when multiple framebuffers exist.
Therefore I'd be very happy if someone could come up with a general solution.
The problem I see is as follows:
If multiple framebuffers exist there is no finegrained control which
applications draws to which framebuffer. Common practice seems to be to only
draw from the application running in the active vt. But that's not always what
is wanted so a little extension to the kernel deciding whether an application
may or may not draw would be helpful (of course such a thing would require
changes in userspace as well for applications that directly access the
framebuffer).

Example:
Having two framebuffers (fb0, fb1) and three applications (a0, a1, a2) where a0
wants to draw to fb0, a1 to fb1 and a2 to fb0 & fb1.
At first only a0 is running so only fb0 is used. You than start a1:
current: only fb1 is updated by a1
desired (?): fb0 is updated by a0 and fb1 is updated by a1
After you start a2
current = desired: fb0 & fb1 are updated by fb2
You than switch back to a0:
current: only fb0 is updated by a0
desired (?): fb0 is updated by a0 and fb1 is updated by a2

At least that's how I see the problem. So what must a solution provide:
- keep the old interface consistent to not break old applications
- avoid race-conditions while providing direct graphic access
So for each applications that does not know about this interface it has to
behave as if this application draws to all framebuffers. But if the active
application knows it it can allow the last application updating the "unused"
framebuffers as long as the current application does not request access to it.
But I'm unsure how to implement a clean, race-free and efficient solution.

Any suggestions?


Thanks,

Florian Tobias Schandinat


  reply	other threads:[~2010-07-24 14:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-21 12:57 Mattia Jona-Lasinio
2010-07-21 16:38 ` Ben Pfaff
2010-07-22 11:21 ` Alan Cox
2010-07-22 11:38   ` Geert Uytterhoeven
2010-07-24 10:31     ` Mattia Jona-Lasinio
2010-07-24 14:43       ` Florian Tobias Schandinat [this message]
2010-07-26 20:11         ` Geert Uytterhoeven
2010-07-28 19:24           ` Mattia Jona-Lasinio
2010-07-28 19:39             ` Alan Cox
2010-07-29  9:09               ` Mattia Jona-Lasinio
2010-07-29 16:49               ` James Simmons
2010-07-29 18:05                 ` Alan Cox
2010-07-29 18:39                   ` James Simmons
2010-08-03 12:22                     ` Mattia Jona-Lasinio
2010-08-04 14:29                       ` James Simmons
2010-07-29 15:58             ` James Simmons
2010-07-29 15:17           ` James Simmons
2010-07-26 20:08     ` Geert Uytterhoeven
2010-07-22 19:19 ` Miguel Ojeda
2010-07-24  9:52   ` Mattia Jona-Lasinio
2010-07-22 11:00 Mattia Jona-Lasinio
2010-07-22 18:12 ` Ben Pfaff

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=loom.20100724T155117-833@post.gmane.org \
    --to=florianschandinat@gmx.de \
    --cc=linux-kernel@vger.kernel.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

Powered by JetHome