[PATCH 1/4] drm: add plane support
Rob Clark
robdclark at gmail.com
Mon Jul 25 07:57:16 PDT 2011
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)..
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
>
More information about the dri-devel
mailing list