dri-devel Archive on 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox