All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: "Stéphane Marchesin" <stephane.marchesin@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [RFC] drm: add overlays as first class KMS objects
Date: Mon, 25 Apr 2011 16:52:58 -0700	[thread overview]
Message-ID: <20110425165258.69314103@jbarnes-desktop> (raw)
In-Reply-To: <BANLkTikc-Q6O+TPv5_1U-pvO-cPyo69oXw@mail.gmail.com>

On Mon, 25 Apr 2011 16:35:20 -0700
Stéphane Marchesin <stephane.marchesin@gmail.com> wrote:

> On Mon, Apr 25, 2011 at 16:22, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > On Mon, 25 Apr 2011 16:16:18 -0700
> > Keith Packard <keithp@keithp.com> wrote:
> >
> >> On Mon, 25 Apr 2011 15:12:20 -0700, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> >>
> >> > Overlays are a bit like half-CRTCs.  They have a location and fb, but
> >> > don't drive outputs directly.  Add support for handling them to the core
> >> > KMS code.
> >>
> >> Are overlays/underlays not associated with a specific CRTC? To my mind,
> >> overlays are another scanout buffer associated with a specific CRTC, so
> >> you'd create a scanout buffer and attach that to a specific scanout slot
> >> in a crtc, with the 'default' slot being the usual graphics plane.
> >
> > Yes, that matches my understanding as well.  I've deliberately made the
> > implementation flexible there though, under the assumption that some
> > hardware allows a plane to be directed at more than one CRTC (though
> > probably not simultaneously).
> >
> > Arguably, this is something we should have done when the
> > connector/encoder split was done (making planes in general first class
> > objects).  But with today's code, treating a CRTC as a pixel pump and a
> > primary plane seems fine, with overlays tacked onto the side as
> > secondary pixel sources but tied to a specific CRTC.
> >
> 
> What is the plan for supporting multiple formats? When I looked at
> this for nouveau it ended up growing out of control when adding
> support for all the YUV (planar, packed, 12 or 16 bpp formats) and RGB
> format combinations.

I know there are a ton of surface formats, but I don't want to restrict
what drivers can export as supported.

I was planning on adding a new fb ioctl to allow us to create fbs with
specific surface format types.  We could either enumerate all of the
ones we support (a list which will grow as drivers and devices are
added) or try to factor out commit bits into a separate surface struct:

struct drm_mode_surface {
	enum components; /* YUV, VUY, RGB, BGR, ARGB, ... */
	int depth;
	enum packing; /* some list of packing types? */
	...
};

Even if we did that we may end up needing special surface formats not
covered by the general description.  I think pixman just ends up
enumerating them all; it's a little messy, but we know it would be
extensible at least. :)

-- 
Jesse Barnes, Intel Open Source Technology Center

  reply	other threads:[~2011-04-25 23:53 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-25 22:12 [RFC] drm: add overlays as first class KMS objects Jesse Barnes
2011-04-25 23:16 ` Keith Packard
2011-04-25 23:22   ` Jesse Barnes
2011-04-25 23:35     ` Stéphane Marchesin
2011-04-25 23:52       ` Jesse Barnes [this message]
2011-04-26  1:17         ` Keith Packard
2011-04-26  9:37         ` Alan Cox
2011-04-28 16:24       ` Rob Clark
2011-04-25 23:37     ` Keith Packard
2011-04-25 23:58       ` Jesse Barnes
2011-04-26  0:28     ` Alex Deucher
2011-04-26  0:33       ` Jesse Barnes
2011-04-26 14:01         ` Jerome Glisse
2011-04-26 14:16           ` Alan Cox
2011-04-26 15:11             ` Jerome Glisse
2011-04-26 15:29               ` Alan Cox
2011-04-26 10:01       ` Alan Cox
2011-04-26 15:16         ` Jesse Barnes
2011-04-28 16:32         ` Rob Clark
2011-04-26 15:20   ` Ville Syrjälä
2011-04-26 15:31     ` Jesse Barnes
2011-04-26 15:38     ` Alan Cox
2011-04-27 12:19 ` Daniel Vetter
2011-04-27 13:32   ` Jerome Glisse
2011-04-27 14:27     ` Daniel Vetter
2011-04-27 14:34       ` Chris Wilson
2011-04-27 14:50         ` Daniel Vetter
2011-04-27 14:56         ` Ville Syrjälä
2011-04-27 21:12   ` Jesse Barnes
2011-04-28  6:47     ` Daniel Vetter
2011-04-28 17:37     ` Jakob Bornecrantz
2011-04-28 17:03 ` Rob Clark
2011-04-28 17:54   ` Ville Syrjälä
2011-05-13 16:16 ` Daniel Vetter
2011-05-14  1:02   ` Jesse Barnes
2011-05-15  0:00     ` Clark, Rob
2011-05-17 18:35   ` Laurent Pinchart

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=20110425165258.69314103@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=stephane.marchesin@gmail.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.