All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm: add an fb creation ioctl that takes a pixel format v4
Date: Tue, 15 Nov 2011 22:30:36 +0200	[thread overview]
Message-ID: <20111115203036.GM3477@intel.com> (raw)
In-Reply-To: <20111115081604.2e3b6dfa@jbarnes-desktop>

On Tue, Nov 15, 2011 at 08:16:04AM -0800, Jesse Barnes wrote:
> On Tue, 15 Nov 2011 14:57:02 +0200
> Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> > I'm fine with fourccs as long as the defines are named and documented
> > in way that avoids guesswork.
> > 
> > So what I'm thinking is something like this:
> > 
> > DRM_FOURCC_RGB332      ... /* [7:0] R:G:B 3:3:2 */
> > DRM_FOURCC_XRGB1555    ... /* [15:0] x:R:G:B 1:5:5:5, native endian */
> > DRM_FOURCC_RGB565      ... /* [15:0] R:G:B 5:6:5, native endian */
> > DRM_FOURCC_XRGB8888    ... /* [31:0] x:R:G:B 8:8:8:8, native endian */
> > DRM_FOURCC_XRGB2101010 ... /* [31:0] x:R:G:B 2:10:10:10, native endian */
> > 
> > DRM_FOURCC_RGB888      ... /* [23:0] R:G:B 8:8:8, little endian */
> > DRM_FOURCC_BGR888      ... /* [23:0] B:G:R 8:8:8, little endian */
> > 
> > DRM_FOURCC_YUYV        ... /* [31:0] Cr:Y1:Cb:Y0 8:8:8:8, little endian */
> > DRM_FOURCC_UYVY        ... /* [31:0] Y1:Cr:Y0:Cb 8:8:8:8, little endian */
> > DRM_FOURCC_YVYU        ... /* [31:0] Cb:Y1:Cr:Y0 8:8:8:8, little endian */
> > DRM_FOURCC_VYUY        ... /* [31:0] Y1:Cb:Y0:Cr 8:8:8:8, little endian */
> > 
> > That leaves no room for guesswork.
> 
> Looks great.  Want to send Dave an incremental patch?  I'll apply the
> final version to libdrm for use by userland code.

What I listed there doesn't match what v4l2 has. So I'm not sure what
to put in a patch.

It looks like the v4l2 fourccs have explicit endianness (ie. LE or BE).
If we follow that, and assuming people still want to use hardware byte
swappers, it means user space needs some ifdefs to select the approriate
format based on the host endianness. Or, we could do that in the header
file itself, so we would provide three definitions for each format LE,
BE, and NE (which would point to LE or BE depending on host endianness).

One extra issue I just realized is that the 8bpp and 16bpp v4l2 formats
are in fact BGR nor RGB, that is the component order is such that blue
occupies the most significant bit, red the lsb. I've never even seen
a PC graphics card that supports such formats. Adding insult to injury
PIX_FMT_RGB444 is defined the opposite way, ie. matching what most
graphics cards would expect.

-- 
Ville Syrjälä
Intel OTC

  reply	other threads:[~2011-11-15 20:28 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-14 20:21 [PATCH 1/2] drm: add plane support v2 Jesse Barnes
2011-11-14 20:21 ` [PATCH 2/2] drm: add an fb creation ioctl that takes a pixel format v4 Jesse Barnes
2011-11-14 21:16   ` Ville Syrjälä
2011-11-14 21:22     ` Jesse Barnes
2011-11-15 12:57       ` Ville Syrjälä
2011-11-15 16:16         ` Jesse Barnes
2011-11-15 20:30           ` Ville Syrjälä [this message]
2011-11-15 20:55             ` Jesse Barnes
2011-11-14 21:36     ` Rob Clark
2011-11-14 21:24   ` Ville Syrjälä
2011-11-14 21:35     ` Jesse Barnes
2011-11-14 22:37       ` Ville Syrjälä
2011-11-14 22:53         ` Jesse Barnes
2011-11-15  2:40 ` [PATCH 1/2] drm: add plane support v2 Ben Skeggs
2011-11-15 11:42   ` Ville Syrjälä
2011-11-15 16:13     ` Jesse Barnes

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=20111115203036.GM3477@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jbarnes@virtuousgeek.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 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.