[PATCH 1/4] drm: add plane support

Joonyoung Shim dofmind at gmail.com
Mon Jul 25 21:21:47 PDT 2011


2011/7/25 Rob Clark <robdclark at gmail.com>:
> On Mon, Jul 25, 2011 at 3:18 AM, Joonyoung Shim <dofmind at gmail.com> wrote:
>> 2011/7/22 Jesse Barnes <jbarnes at virtuousgeek.org>:
>>> On Thu, 21 Jul 2011 19:30:00 +0900
>>> Joonyoung Shim <dofmind at gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> simple questions :)
>>>>
>>>> 2011/6/21 Jesse Barnes <jbarnes at virtuousgeek.org>:
>>>> > Planes 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.
>>>> >
>>>> > Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
>>>> > ---
>>>> >  drivers/gpu/drm/drm_crtc.c |  235 +++++++++++++++++++++++++++++++++++++++++++-
>>>> >  drivers/gpu/drm/drm_drv.c  |    3 +
>>>> >  include/drm/drm.h          |    3 +
>>>> >  include/drm/drm_crtc.h     |   73 ++++++++++++++-
>>>> >  include/drm/drm_mode.h     |   35 +++++++
>>>> >  5 files changed, 346 insertions(+), 3 deletions(-)
>>>> >
>>>>
>>>> snip
>>>>
>>>> > diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
>>>> > index c4961ea..fa6d348 100644
>>>> > --- a/include/drm/drm_mode.h
>>>> > +++ b/include/drm/drm_mode.h
>>>> > @@ -120,6 +120,41 @@ struct drm_mode_crtc {
>>>> >        struct drm_mode_modeinfo mode;
>>>> >  };
>>>> >
>>>> > +/* Planes blend with or override other bits on the CRTC */
>>>> > +struct drm_mode_set_plane {
>>>> > +       __u32 plane_id;
>>>> > +       __u32 crtc_id;
>>>> > +       __u32 fb_id; /* fb object contains surface format type */
>>>> > +
>>>> > +       /* Signed dest location allows it to be partially off screen */
>>>> > +       __s32 crtc_x, crtc_y;
>>>>
>>>> Is this location offset from base(0, 0) of fb for plane, or from base
>>>> of crtc(mode)?
>>>
>>> This is the offset on the crtc specifically (which could be displaying
>>> a nonzero offset of a given fb).
>>>
>>
>> Then if i want to use the specific area of a given fb for overlay, how
>> can we know the offset on a given fb?
>> In other words, can we use the specific offset from fb to origin(base
>> pointer) of plane? or can we use each overlays from each specific
>> offsets of one fb?
>
> The x,y parameters give the position within the fb, the crtc_x,crtc_y
> parameters give the position within the crtc (screen)..
>

Hmm, i can't understand well, which x, y parameters? As you know,
struct drm_mode_set_plane hasn't x , y parameters for fb,
so how can know x, y parameters?

> So if you had full-screen video spanning two 1280x1024 displays, where
> the video was 1080p.  Say the video was nearly but not completely
> full-screen (say, 5 pixel border all around.. just to pick some #'s):
>
> display one:
>  plane:  x,y=0,0, crtc_x,crtc_y=5,5, crtc_w=1275, crtc_h=1014
>
> display two:  (to right of display one)
>  plane: x,y=960,0, crtc_x,crtc_y=0,5, crtc_w=1275, crtc_h=1014
>
> (or at least that is my understanding..)
>
> BR,
> -R
>
>> Thanks.
>>
>> --
>> - Joonyoung Shim
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>

-- 
- Joonyoung Shim


More information about the dri-devel mailing list