From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm: add an fb creation ioctl that takes a pixel format v4 Date: Tue, 15 Nov 2011 00:37:47 +0200 Message-ID: <20111114223747.GJ3477@intel.com> References: <1321302115-23159-1-git-send-email-jbarnes@virtuousgeek.org> <1321302115-23159-2-git-send-email-jbarnes@virtuousgeek.org> <20111114212455.GI3477@intel.com> <20111114133557.1b2a353f@jbarnes-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id CD0E29EB99 for ; Mon, 14 Nov 2011 14:35:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <20111114133557.1b2a353f@jbarnes-desktop> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Jesse Barnes Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Mon, Nov 14, 2011 at 01:35:57PM -0800, Jesse Barnes wrote: > On Mon, 14 Nov 2011 23:24:55 +0200 > Ville Syrj=E4l=E4 wrote: > = > > On Mon, Nov 14, 2011 at 12:21:55PM -0800, Jesse Barnes wrote: > > > +struct drm_mode_fb_cmd2 { > > > + __u32 fb_id; > > > + __u32 width, height; > > > + __u32 pixel_format; /* fourcc code from videodev2.h */ > > > + > > > + /* > > > + * In case of planar formats, this ioctl allows up to 4 > > > + * buffer objects with offets and pitches per plane. > > > + * The pitch and offset order is dictated by the fourcc, > > > + * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: > > > + * > > > + * YUV 4:2:0 image with a plane of 8 bit Y samples > > > + * followed by an interleaved U/V plane containing > > > + * 8 bit 2x2 subsampled colour difference samples. > > > + * > > > + * So it would consist of Y as offset[0] and UV as > > > + * offeset[1]. Note that offset[0] will generally > > > + * be 0. > > > + */ > > > + __u32 handles[4]; > > > + __u32 pitches[4]; /* pitch for each plane */ > > > + __u32 offsets[4]; /* offset of each plane */ > > > +}; > > = > > Hey, what about those interlaced buffers? We talked privately about > > adding a '__u32 flags' member to both drm_mode_fb_cmd2 and > > drm_mode_set_plane. > > = > > We could stick something like these to those flags: > > fb_cmd2.flags: > > #define DRM_MODE_FB_INTERLACED 0x1 > > = > > set_plane.flags: > > #define DRM_MODE_PRESENT_TOP_FIELD 0x1 > > #define DRM_MODE_PRESENT_BOTTOM_FIELD 0x2 > = > Oh sorry I lost track of the internal discussion. > = > Are those attributes of the fb or of each object? E.g. could you mix > interlaced and non-interlaced buffers in a planar format? I suppose it might be possible that you'd want to treat luma as interlaced and chroma as progressive under some circumstances. But I can't see why simply defining another flag for that wouldn't be enough. > Maybe I need to rename this ioctl to addfb_swissarmyknife :) Now I'm just waiting for someone to jump in and say that they = want independent buffers for each interlaced field :) Me? I'll be happy with just those two flags members... for now at least ;) -- = Ville Syrj=E4l=E4 Intel OTC