All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Paalanen <ppaalanen@gmail.com>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: How to design a DRM KMS driver exposing 2D compositing?
Date: Tue, 12 Aug 2014 11:42:53 +0300	[thread overview]
Message-ID: <20140812114253.0095e04f@gmail.com> (raw)
In-Reply-To: <20140811143718.GT11532@intel.com>

On Mon, 11 Aug 2014 07:37:18 -0700
Matt Roper <matthew.d.roper@intel.com> wrote:

> On Mon, Aug 11, 2014 at 01:38:55PM +0300, Pekka Paalanen wrote:
> > Hi,
> > 
> > there is some hardware than can do 2D compositing with an arbitrary
> > number of planes. I'm not sure what the absolute maximum number of
> > planes is, but for the discussion, let's say it is 100.
> > 
> > There are many complicated, dynamic constraints on how many, what size,
> > etc. planes can be used at once. A driver would be able to check those
> > before kicking the 2D compositing engine.
> > 
> > The 2D compositing engine in the best case (only few planes used) is
> > able to composite on the fly in scanout, just like the usual overlay
> > hardware blocks in CRTCs. When the composition complexity goes up, the
> > driver can fall back to compositing into a buffer rather than on the
> > fly in scanout. This fallback needs to be completely transparent to the
> > user space, implying only additional latency if anything.
> 
> Is your requirement that this needs to be transparent to all userspace
> or just transparent to your display server (e.g., Weston)?  I'm
> wondering whether it might be easier to write a libdrm interposer that
> intercepts any libdrm calls dealing with planes and exposes a bunch of
> additional "virtual" planes to the display server when queried.  When
> you submit an atomic ioctl, your interposer will figure out the best
> strategy to make that happen given the real hardware available on your
> system and will try to blend some of your excess buffers via whatever
> userspace API's are available (Cairo, GLES, OpenVG, etc.).  This would
> keep kernel complexity down and allow easier debugging and tuning.

That's an inventive proposition. ;-)

I would still need to design the kernel/user ABI for the HVS (the 2D
engine). As I am starting to believe, that the "non-real-time" use of
the HVS does not belong behind the KMS API, we might as well just do
things more properly, and expose it with a real user space API
eventually.


Thanks,
pq

      reply	other threads:[~2014-08-12  8:42 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-11 10:38 How to design a DRM KMS driver exposing 2D compositing? Pekka Paalanen
2014-08-11 10:57 ` Damien Lespiau
2014-08-11 12:07   ` Pekka Paalanen
2014-08-11 13:14     ` Damien Lespiau
2014-08-11 13:44       ` Pekka Paalanen
2014-08-11 12:06 ` Daniel Vetter
2014-08-11 12:47   ` Pekka Paalanen
2014-08-11 15:35     ` Daniel Vetter
2014-08-11 16:09       ` Ville Syrjälä
2014-08-11 17:21         ` Daniel Vetter
2014-08-12  7:10       ` Pekka Paalanen
2014-08-11 13:32   ` Rob Clark
2014-08-11 15:24     ` Daniel Vetter
2014-08-12  7:20     ` Pekka Paalanen
2014-08-12  8:03       ` Daniel Vetter
2014-08-12 10:04         ` Ville Syrjälä
2014-08-11 17:16   ` Eric Anholt
2014-08-11 17:27     ` Daniel Vetter
2014-08-12  8:48       ` Pekka Paalanen
2014-08-12 16:10         ` Eric Anholt
2014-08-13  7:02           ` Pekka Paalanen
2014-08-11 14:37 ` Matt Roper
2014-08-12  8:42   ` Pekka Paalanen [this message]

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=20140812114253.0095e04f@gmail.com \
    --to=ppaalanen@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.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.