mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: "Jon Smirl" <jonsmirl@gmail.com>
Cc: "Jesse Barnes" <jesse.barnes@intel.com>,
	linux-kernel@vger.kernel.org,
	"Antonino A. Daplas" <adaplas@gmail.com>
Subject: Re: [RFC] enhancing the kernel's graphics subsystem
Date: Mon, 21 May 2007 10:32:58 -0700	[thread overview]
Message-ID: <200705211032.58509.jbarnes@virtuousgeek.org> (raw)
In-Reply-To: <9e4733910705211005k761c976o1a6b270d87b49589@mail.gmail.com>

On Monday, May 21, 2007, Jon Smirl wrote:
> On 5/21/07, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > On Monday, May 21, 2007, Jesse Barnes wrote:
> > > > There is more to fbdev than mode setting. It is also how non-x86
> > > > platforms achieve their boot display. How will boot display be
> > > > handled with the your design? What about console display on
> > > > non-x86 platforms? Loading both fbdev and the new code puts us
> > > > right back into the multiple driver fight we have today.
> > >
> > > Maybe you should take a look at the patches. :)  The code I posted
> > > actually creates an fb device as a slave of the DRM device, and uses
> > > that for the boot console.  Once you've booted, you can use the new
> > > interfaces to do whatever you want with the graphics device...
> > > though it doesn't create /dev/fb* devices per-CRTC like you seem to
> > > want, it's really easy to do the equivalent with a small userspace
> > > program (though I haven't actually tested sharing of buffer objects,
> > > it should work).
> >
> > Actually, scratch that last bit.  I forgot about a recent change alanh
> > committed that did just that:  per-CRTC FB devices.  So please take a
> > close look (modesetting-101 of mesa/drm git at freedesktop.org) and
> > let me know if you see any gaping holes.
>
> Here are some of the goals that I believe a rewrite of the graphics
> system should address:

I think we're talking past each other.  I addressed many of the points 
below in my initial post...

> 1) Be upwards compatible with the existing fbdev drivers. This lets us
> avoid rewriting the 90 existing drivers. New drivers shouldn't break
> any old apps.

That's there, see the patches.

> 2) Address the long outstanding issue of multi-seat at the console
> level. My solution to this is the one device per CRTC model.

Also covered.

> 3) Eliminate the need for a root priv controlling process. Get rid of
> the potential for a security hole.

This is an implementation detail.  I can understand not wanting to run a 
huge X server for this purpose, but I've already said that it can be done 
with far less code for environments with different needs.

> 4) OOPS should always display even if in a graphics mode

This is definitely a goal, and something I spelled out in my initial post.  
I think we'll need a new KD_* type to cover this case (i.e. not KD_TEXT 
but not quite KD_GRAPHICS either).  This should be fairly straightforward 
once I have some good user level apps running on top of these interfaces.

> 5) Support Secure Attention Key (SAK).

This is more of a console issue, not really a graphics design issue I 
think.

> 6) Eliminate the existing VT swap driver free for all. I would compile
> out the VT layer and replace it with a compatible API that enforces
> some sanity.

Again, called out in my initial post.  Yes, the kernel should save/restore 
state by itself and not rely on some userspace application.  However, we 
don't want to break the VT switch API either, so we'll still likely need a 
heavyweight save/restore state mechanism somewhere.

> 7) Support Unicode on the console

A userspace console using these interfaces could do this, it's not really a 
kernel graphics problem.

> 8) Allow multiple user space graphics systems to run. These user space
> systems should not touch the hardware, instead they ask the kernel
> driver to manipulate the hardware on their behalf. Of course the
> kernel driver is only the minimum code needed to arbitrate control of
> the resources - it doesn't do things like implement drawing
> algorithms.

This is already done.

> 9) Booting on non-VGA hardware still needs to work.

I don't see what this has to do with the overall design, it's a driver 
problem (well aside from polluting the generic interfaces with VGA 
knowledge, which I'm not planning on doing).

> 10) Support things like cloning and output device selection.

Already done.

Again, *please* take a look at the description in my initial post and the 
patches themselves (or the modesetting-101 branch in the drm tree).  I 
think that'll lead to a more concrete discussion about what's 
missing/needed, etc.

Thanks,
Jesse

  parent reply	other threads:[~2007-05-21 17:33 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17 21:23 Jesse Barnes
2007-05-17 22:32 ` [PATCH 1/3] allow console unregistration Jesse Barnes
2007-05-17 22:47   ` Jesse Barnes
2007-05-17 23:23   ` Antonino A. Daplas
2007-05-18  0:56     ` Jesse Barnes
2007-05-22 21:43     ` [PATCH 1/2] " Jesse Barnes
2007-05-23  0:49       ` Antonino A. Daplas
2007-05-22 21:44     ` [PATCH 2/2] make fbcon unregister when unloaded Jesse Barnes
2007-05-22 22:05       ` Randy Dunlap
2007-05-22 22:14         ` Jesse Barnes
2007-05-23  0:47           ` Antonino A. Daplas
2007-05-30  0:00   ` [PATCH 1/3] allow console unregistration Antonino A. Daplas
2007-05-30  6:26     ` Geert Uytterhoeven
2007-05-17 22:37 ` [PATCH 2/3] drm modesetting core Jesse Barnes
2007-05-17 22:48   ` Jesse Barnes
2007-05-17 23:41   ` Luca Tettamanti
2007-05-18  1:04     ` Jesse Barnes
2007-05-18 19:33       ` Luca Tettamanti
2007-05-18 21:06         ` Jesse Barnes
2007-05-17 22:40 ` [PATCH 3/3] Intel support for DRM modesetting Jesse Barnes
2007-05-17 22:48   ` Jesse Barnes
2007-05-20 17:42 ` [RFC] enhancing the kernel's graphics subsystem Jon Smirl
2007-05-20 23:10   ` Jesse Barnes
2007-05-21  0:47     ` Jon Smirl
2007-05-21  1:29       ` Jeff Garzik
2007-05-21 15:34         ` Jon Smirl
2007-05-21 16:15           ` Arjan van de Ven
2007-05-21 15:09       ` Jesse Barnes
2007-05-21 16:01         ` Jon Smirl
2007-05-21 16:14           ` Jesse Barnes
2007-05-21 16:34             ` Jesse Barnes
2007-05-21 17:05               ` Jon Smirl
2007-05-21 17:14                 ` Dave Airlie
2007-05-21 17:29                   ` Jon Smirl
2007-05-21 17:42                   ` Jon Smirl
2007-05-21 17:47                     ` Dave Airlie
2007-05-21 18:04                       ` Jon Smirl
2007-05-21 18:44                         ` Dave Airlie
2007-05-21 19:10                           ` Jon Smirl
2007-05-21 19:20                             ` Dave Airlie
2007-05-21 23:24                             ` Jeff Garzik
2007-05-22  0:08                               ` Jon Smirl
2007-05-22  0:20                     ` Benjamin Herrenschmidt
2007-05-21 23:21                   ` Jeff Garzik
2007-05-22  0:35                     ` Alan Cox
2007-05-22  0:33                       ` Jeff Garzik
2007-05-22  0:45                       ` Jon Smirl
2007-05-22  0:56                         ` Jon Smirl
2007-05-22  8:21                           ` Dave Airlie
2007-05-22  8:07                     ` Dave Airlie
2007-05-22  8:16                       ` Jeff Garzik
2007-05-22  8:27                         ` Dave Airlie
2007-05-22 16:06                         ` Jon Smirl
2007-05-22 16:19                           ` Alan Cox
2007-05-22 16:34                           ` Jeff Garzik
2007-05-22  0:15                   ` Benjamin Herrenschmidt
2007-05-21 17:32                 ` Jesse Barnes [this message]
2007-05-21 23:18                 ` Jeff Garzik
2007-05-22  0:26                   ` Jon Smirl
2007-05-22  1:56                     ` Jesse Barnes
2007-05-22 14:27                       ` Jon Smirl
2007-05-22 14:35                         ` Dave Airlie
2007-05-22 15:13                           ` Jon Smirl
2007-05-22 17:25                             ` Dave Airlie
2007-05-22 19:58                               ` Jon Smirl
2007-05-28 20:12                                 ` Pavel Machek
2007-05-28 20:57                                   ` Jon Smirl
2007-05-29 14:26                                     ` Pavel Machek
2007-05-29 16:51                                       ` Jon Smirl
2007-05-22 14:54                         ` Alan Cox
2007-05-22 15:16                           ` Jon Smirl
2007-05-22 15:46                             ` Jesse Barnes
2007-05-22 16:02                               ` Jon Smirl
2007-05-22 16:14                                 ` Alan Cox
2007-05-22 16:15                                 ` Jesse Barnes
2007-05-22 16:32                                   ` Jon Smirl
2007-05-22 16:35                                     ` Jeff Garzik
2007-05-22 16:51                                     ` Jesse Barnes
2007-05-22 15:59                             ` Matthew Garrett
2007-05-21 16:16           ` Dave Airlie
2007-05-21  8:27   ` Dave Airlie
2007-05-21  9:09     ` Helge Hafting
2007-05-21  9:27       ` Dave Airlie
2007-05-21  9:44         ` Helge Hafting
2007-05-21 15:57           ` Jesse Barnes
2007-05-21 16:07             ` Jon Smirl
2007-05-21 16:27               ` Dave Airlie
2007-05-21 16:50                 ` Xavier Bestel
2007-05-22  0:09 ` Benjamin Herrenschmidt
2007-05-22  0:51   ` Keith Packard
2007-05-22  2:48     ` Benjamin Herrenschmidt
2007-05-22 15:39   ` Jesse Barnes
2007-05-22 23:26     ` Benjamin Herrenschmidt
2007-05-22 23:36       ` Jesse Barnes
2007-05-23  0:40         ` Antonino A. Daplas
2007-05-23 12:19       ` Helge Hafting
2007-05-22 16:29   ` Philipp Klaus Krause
2007-05-22 16:57     ` Jesse Barnes
2007-05-22 18:18     ` Dave Airlie
2007-05-22  2:56 ` l l

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=200705211032.58509.jbarnes@virtuousgeek.org \
    --to=jbarnes@virtuousgeek.org \
    --cc=adaplas@gmail.com \
    --cc=jesse.barnes@intel.com \
    --cc=jonsmirl@gmail.com \
    --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