OSDN Git Service

drm: Add a new plane property to send damage during plane update
authorLukasz Spintzyk <lukasz.spintzyk@displaylink.com>
Thu, 24 May 2018 02:04:08 +0000 (19:04 -0700)
committerThomas Hellstrom <thellstrom@vmware.com>
Wed, 5 Dec 2018 09:00:35 +0000 (10:00 +0100)
commitd3b21767821ed322a4024c99bc360cd0892f3d82
treedb6b2fe7632cba3056e03a8d394f3300b74cfd6a
parent818182dd1097fdc492aaef9b08755ea13274352d
drm: Add a new plane property to send damage during plane update

FB_DAMAGE_CLIPS is an optional plane property to mark damaged regions
on the plane in framebuffer coordinates of the framebuffer attached to
the plane.

The layout of blob data is simply an array of "struct drm_mode_rect".
Unlike plane src coordinates, damage clips are not in 16.16 fixed point.
As plane src in framebuffer cannot be negative so are damage clips. In
damage clip, x1/y1 are inclusive and x2/y2 are exclusive.

This patch also exports the kernel internal drm_rect to userspace as
drm_mode_rect. This is because "struct drm_clip_rect" is not sufficient
to represent damage for current plane size.

Driver which are interested in enabling FB_DAMAGE_CLIPS property for a
plane should enable this property using drm_plane_enable_damage_clips.

v2:
- Input validation on damage clips against framebuffer size.
- Doc update, other minor changes.

Signed-off-by: Lukasz Spintzyk <lukasz.spintzyk@displaylink.com>
Signed-off-by: Deepak Rawat <drawat@vmware.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Documentation/gpu/drm-kms.rst
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_atomic_uapi.c
drivers/gpu/drm/drm_damage_helper.c [new file with mode: 0644]
drivers/gpu/drm/drm_mode_config.c
include/drm/drm_damage_helper.h [new file with mode: 0644]
include/drm/drm_mode_config.h
include/drm/drm_plane.h
include/uapi/drm/drm_mode.h