All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Dave Airlie <airlied@gmail.com>,
	linux-fbdev@vger.kernel.org, linaro-dev@lists.linaro.org,
	Florian Tobias Schandinat <FlorianSchandinat@gmx.de>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Archit Taneja <archit@ti.com>, Rob Clark <rob@ti.com>
Subject: Re: Proposal for a low-level Linux display framework
Date: Mon, 31 Oct 2011 20:24:37 +0000	[thread overview]
Message-ID: <20111031132437.23eae6b8@jbarnes-desktop> (raw)
In-Reply-To: <20110917212529.6b452bf2@lxorguk.ukuu.org.uk>

[-- Attachment #1: Type: text/plain, Size: 3068 bytes --]

On Sat, 17 Sep 2011 21:25:29 +0100
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

> > Just tell the X driver to not use acceleration, and it you won't get
> > any acceleration used, then you get complete stability. If a driver
> > writer wants to turn off all accel in the kernel driver, it can, its
> 
> In fact one thing we actually need really is a "dumb" KMS X server to
> replace the fbdev X server that unaccel stuff depends upon and which
> can't do proper mode handling, multi-head or resizing as a result. A dumb
> fb generic request for a back to front copy might also be useful for
> shadowfb, or at least indicators so you know what the cache behaviour is
> so the X server can pick the right policy.
> 
> > We've fixed this in KMS, we don't pass direct mappings to userspace
> > that we can't tear down and refault. We only provide objects via
> > handles. The only place its a problem is where we expose fbdev legacy
> > emulation, since we have to fix the pages.
> 
> Which is doable. Horrible but doable. The usb framebuffer code has to
> play games like this with the virtual framebuffer in order to track
> changes by faulting.
> 
> There are still some architectural screwups however. DRM continues the
> fbdev worldview that outputs, memory and accelerators are tied together
> in lumps we call video cards. That isn't really true for all cases and
> with capture/overlay it gets even less true.

Sorry for re-opening this ancient thread; I'm catching up from the past
2 months of travel & misc.

I definitely agree about the PC card centric architecture of DRM KMS
(and before it, X).  But we have a path out of it now, and lots of
interest from vendors and developers, so I don't think it's an
insurmountable problem by any means.

I definitely understand Florian's worries about DRM vs fb.  If nothing
else, there's certainly a perception that fb is simpler and easier to
get right.  But really, as others have pointed out, it's solving a
different set of problems than the DRM layer.  The latter is actually
trying to expose the features of contemporary hardware in a way that's
as portable as possible.  That portability comes at a cost though: the
APIs we add need to get lots of review, and there's no doubt we'll need
to add more as newer, weirder hardware comes along.

Really, I see no reason why fb and DRM can't continue to live side by
side.  If a vendor really only needs the features provided by the fb
layer, they're free to stick with a simple fb driver.  However, I
expect most vendors making phones, tablets, notebooks, etc will need
and want an architecture that looks a lot like the DRM layer, with
authentication for rendering clients, an command submission ioctl for
acceleration, and memory management, so I expect most of the driver
growth to be in DRM in the near future.

And I totally agree with Dave about having a kmscon.  I really wish
someone would implement it so I could have my VTs spinning on a cube.

-- 
Jesse Barnes, Intel Open Source Technology Center

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Dave Airlie <airlied@gmail.com>,
	linux-fbdev@vger.kernel.org, linaro-dev@lists.linaro.org,
	Florian Tobias Schandinat <FlorianSchandinat@gmx.de>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Archit Taneja <archit@ti.com>, Rob Clark <rob@ti.com>
Subject: Re: Proposal for a low-level Linux display framework
Date: Mon, 31 Oct 2011 13:24:37 -0700	[thread overview]
Message-ID: <20111031132437.23eae6b8@jbarnes-desktop> (raw)
In-Reply-To: <20110917212529.6b452bf2@lxorguk.ukuu.org.uk>

[-- Attachment #1: Type: text/plain, Size: 3068 bytes --]

On Sat, 17 Sep 2011 21:25:29 +0100
Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

> > Just tell the X driver to not use acceleration, and it you won't get
> > any acceleration used, then you get complete stability. If a driver
> > writer wants to turn off all accel in the kernel driver, it can, its
> 
> In fact one thing we actually need really is a "dumb" KMS X server to
> replace the fbdev X server that unaccel stuff depends upon and which
> can't do proper mode handling, multi-head or resizing as a result. A dumb
> fb generic request for a back to front copy might also be useful for
> shadowfb, or at least indicators so you know what the cache behaviour is
> so the X server can pick the right policy.
> 
> > We've fixed this in KMS, we don't pass direct mappings to userspace
> > that we can't tear down and refault. We only provide objects via
> > handles. The only place its a problem is where we expose fbdev legacy
> > emulation, since we have to fix the pages.
> 
> Which is doable. Horrible but doable. The usb framebuffer code has to
> play games like this with the virtual framebuffer in order to track
> changes by faulting.
> 
> There are still some architectural screwups however. DRM continues the
> fbdev worldview that outputs, memory and accelerators are tied together
> in lumps we call video cards. That isn't really true for all cases and
> with capture/overlay it gets even less true.

Sorry for re-opening this ancient thread; I'm catching up from the past
2 months of travel & misc.

I definitely agree about the PC card centric architecture of DRM KMS
(and before it, X).  But we have a path out of it now, and lots of
interest from vendors and developers, so I don't think it's an
insurmountable problem by any means.

I definitely understand Florian's worries about DRM vs fb.  If nothing
else, there's certainly a perception that fb is simpler and easier to
get right.  But really, as others have pointed out, it's solving a
different set of problems than the DRM layer.  The latter is actually
trying to expose the features of contemporary hardware in a way that's
as portable as possible.  That portability comes at a cost though: the
APIs we add need to get lots of review, and there's no doubt we'll need
to add more as newer, weirder hardware comes along.

Really, I see no reason why fb and DRM can't continue to live side by
side.  If a vendor really only needs the features provided by the fb
layer, they're free to stick with a simple fb driver.  However, I
expect most vendors making phones, tablets, notebooks, etc will need
and want an architecture that looks a lot like the DRM layer, with
authentication for rendering clients, an command submission ioctl for
acceleration, and memory management, so I expect most of the driver
growth to be in DRM in the near future.

And I totally agree with Dave about having a kmscon.  I really wish
someone would implement it so I could have my VTs spinning on a cube.

-- 
Jesse Barnes, Intel Open Source Technology Center

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2011-10-31 20:24 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-15 12:07 Proposal for a low-level Linux display framework Tomi Valkeinen
2011-09-15 12:07 ` Tomi Valkeinen
2011-09-15 12:07 ` Tomi Valkeinen
2011-09-15 14:59 ` Keith Packard
2011-09-15 14:59   ` Keith Packard
2011-09-15 14:59   ` Keith Packard
2011-09-15 15:29   ` Tomi Valkeinen
2011-09-15 15:29     ` Tomi Valkeinen
2011-09-15 15:29     ` Tomi Valkeinen
2011-09-15 15:50     ` Keith Packard
2011-09-15 15:50       ` Keith Packard
2011-09-15 15:50       ` Keith Packard
2011-09-15 17:05       ` Alan Cox
2011-09-15 17:05         ` Alan Cox
2011-09-15 17:05         ` Alan Cox
2011-09-17 21:36         ` Laurent Pinchart
2011-09-17 21:36           ` Laurent Pinchart
2011-09-17 21:36           ` Laurent Pinchart
2011-09-15 17:12       ` Florian Tobias Schandinat
2011-09-15 17:12         ` Florian Tobias Schandinat
2011-09-15 17:18         ` Alan Cox
2011-09-15 17:18           ` Alan Cox
2011-09-15 17:18           ` Alan Cox
2011-09-15 17:47           ` Florian Tobias Schandinat
2011-09-15 17:47             ` Florian Tobias Schandinat
2011-09-15 19:05             ` Alan Cox
2011-09-15 19:05               ` Alan Cox
2011-09-15 19:05               ` Alan Cox
2011-09-15 19:46               ` Florian Tobias Schandinat
2011-09-15 19:46                 ` Florian Tobias Schandinat
2011-09-15 21:31                 ` Alan Cox
2011-09-15 21:31                   ` Alan Cox
2011-09-15 21:31                   ` Alan Cox
2011-09-15 17:52         ` Alex Deucher
2011-09-15 17:52           ` Alex Deucher
2011-09-15 17:56           ` Geert Uytterhoeven
2011-09-15 17:56             ` Geert Uytterhoeven
2011-09-15 18:04             ` Alex Deucher
2011-09-15 18:04               ` Alex Deucher
2011-09-15 18:04               ` Alex Deucher
2011-09-15 18:07               ` Corbin Simpson
2011-09-15 18:07               ` Corbin Simpson
2011-09-15 18:39           ` Florian Tobias Schandinat
2011-09-15 18:58             ` Alan Cox
2011-09-15 18:58               ` Alan Cox
2011-09-15 18:58               ` Alan Cox
2011-09-15 19:18               ` Florian Tobias Schandinat
     [not found]                 ` <4E724F93.1050203-Mmb7MZpHnFY@public.gmane.org>
2011-09-15 19:28                   ` Alan Cox
2011-09-15 19:28                     ` Alan Cox
2011-09-15 19:28                     ` Alan Cox
2011-09-15 19:45                 ` Alex Deucher
2011-09-15 19:45                   ` Alex Deucher
2011-09-17 14:44               ` Felipe Contreras
2011-09-17 14:44                 ` Felipe Contreras
2011-09-17 15:16                 ` Rob Clark
2011-09-17 15:16                   ` Rob Clark
2011-09-17 15:16                   ` Rob Clark
2011-09-17 16:11                   ` Florian Tobias Schandinat
2011-09-17 16:11                     ` Florian Tobias Schandinat
2011-09-17 16:47                     ` Dave Airlie
2011-09-17 16:47                       ` Dave Airlie
2011-09-17 16:47                       ` Dave Airlie
2011-09-17 18:15                       ` Florian Tobias Schandinat
2011-09-17 18:23                         ` Dave Airlie
2011-09-17 18:23                           ` Dave Airlie
2011-09-17 18:23                           ` Dave Airlie
2011-09-17 19:06                           ` Florian Tobias Schandinat
2011-09-17 19:25                             ` Corbin Simpson
2011-09-17 19:25                               ` Corbin Simpson
2011-09-17 21:25                             ` Alex Deucher
2011-09-17 21:25                               ` Alex Deucher
2011-09-17 21:25                               ` Alex Deucher
2011-09-17 20:25                           ` Alan Cox
2011-09-17 20:25                             ` Alan Cox
2011-09-17 20:25                             ` Alan Cox
2011-10-31 20:24                             ` Jesse Barnes [this message]
2011-10-31 20:24                               ` Jesse Barnes
2011-09-17 16:50                     ` Rob Clark
2011-09-17 16:50                       ` Rob Clark
2011-09-16  4:53             ` Keith Packard
2011-09-16  4:53               ` Keith Packard
2011-09-16  4:53               ` Keith Packard
2011-09-17 23:12             ` Laurent Pinchart
2011-09-17 23:12               ` Laurent Pinchart
2011-09-17 23:12               ` Laurent Pinchart
2011-09-18 16:14               ` Rob Clark
2011-09-18 16:14                 ` Rob Clark
2011-09-18 16:14                 ` Rob Clark
2011-09-18 21:55                 ` Laurent Pinchart
2011-09-18 21:55                   ` Laurent Pinchart
2011-09-18 21:55                   ` Laurent Pinchart
     [not found]               ` <201109180112.15896.laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
2011-09-18 22:23                 ` Alan Cox
2011-09-18 22:23                   ` Alan Cox
2011-09-18 22:23                   ` Alan Cox
2011-09-19  0:09                   ` Rob Clark
2011-09-19  0:09                     ` Rob Clark
2011-09-20 23:32                     ` Laurent Pinchart
2011-09-20 23:32                       ` Laurent Pinchart
2011-09-15 18:12         ` Keith Packard
2011-09-15 18:12           ` Keith Packard
2011-09-15 18:12           ` Keith Packard
2011-10-01 17:30           ` Enrico Weigelt
2011-09-15 17:21       ` Tomi Valkeinen
2011-09-15 17:21         ` Tomi Valkeinen
2011-09-15 18:32         ` Rob Clark
2011-09-15 18:32           ` Rob Clark
2011-09-15 18:32           ` Rob Clark
2011-09-16  0:55         ` Keith Packard
2011-09-16  0:55           ` Keith Packard
2011-09-16  0:55           ` Keith Packard
2011-09-16  6:38           ` Tomi Valkeinen
2011-09-16  6:38             ` Tomi Valkeinen
2011-09-16 14:17           ` Daniel Vetter
2011-09-16 14:17             ` Daniel Vetter
2011-09-16 16:53           ` Alan Cox
2011-09-16 16:53             ` Alan Cox
2011-09-16 16:53             ` Alan Cox
2011-09-19  6:33             ` Tomi Valkeinen
2011-09-19  6:33               ` Tomi Valkeinen
2011-09-19  6:53               ` Keith Packard
2011-09-19  6:53                 ` Keith Packard
2011-09-19  6:53                 ` Keith Packard
2011-09-19  7:29                 ` Tomi Valkeinen
2011-09-19  7:29                   ` Tomi Valkeinen
2011-09-20  8:29                   ` Patrik Jakobsson
2011-09-20  8:29                     ` Patrik Jakobsson
2011-09-20  8:29                     ` Patrik Jakobsson
2011-09-20 15:55                     ` Keith Packard
2011-09-20 15:55                       ` Keith Packard
2011-09-20 15:55                       ` Keith Packard
2011-09-20 21:20                       ` Patrik Jakobsson
2011-09-20 21:20                         ` Patrik Jakobsson
2011-09-21  6:01                         ` Tomi Valkeinen
2011-09-21  6:01                           ` Tomi Valkeinen
2011-09-21 18:07                           ` Patrik Jakobsson
2011-09-21 18:07                             ` Patrik Jakobsson
2011-09-21 18:07                             ` Patrik Jakobsson
2011-10-01 17:34         ` Enrico Weigelt
2011-09-15 15:03 ` Kyungmin Park
2011-09-15 15:03   ` Kyungmin Park
2011-09-21 13:26 ` Heiko Stübner
2011-09-21 13:26   ` Heiko Stübner
2011-10-01 16:52 ` Enrico Weigelt

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=20111031132437.23eae6b8@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=FlorianSchandinat@gmx.de \
    --cc=airlied@gmail.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=archit@ti.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linaro-dev@lists.linaro.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rob@ti.com \
    /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.