Lines Matching full:plane

40  * FB_DAMAGE_CLIPS is an optional plane property which provides a means to
41 * specify a list of damage rectangles on a plane in framebuffer coordinates of
42 * the framebuffer attached to the plane. In current context damage is the area
43 * of plane framebuffer that has changed since last plane update (also called
45 * framebuffer attached during last plane update or not.
52 * ignore damage clips property and in that case driver will do a full plane
54 * inside damage clips will be updated to plane. For efficiency driver can do
59 * framebuffer (since last plane update) can result in incorrect rendering.
62 * array of &drm_mode_rect. Unlike plane &drm_plane_state.src coordinates,
63 * damage clips are not in 16.16 fixed point. Similar to plane src in
68 * Drivers that are interested in damage interface for plane should enable
91 * drm_plane_enable_fb_damage_clips - Enables plane fb damage clips property.
92 * @plane: Plane on which to enable damage clips property.
94 * This function lets driver to enable the damage clips property on a plane.
96 void drm_plane_enable_fb_damage_clips(struct drm_plane *plane) in drm_plane_enable_fb_damage_clips() argument
98 struct drm_device *dev = plane->dev; in drm_plane_enable_fb_damage_clips()
101 drm_object_attach_property(&plane->base, config->prop_fb_damage_clips, in drm_plane_enable_fb_damage_clips()
107 * drm_atomic_helper_check_plane_damage - Verify plane damage on atomic_check.
109 * @plane_state: Plane state for which to verify damage.
111 * This helper function makes sure that damage from plane state is discarded
113 * plane update rather than processing individual damage regions, then those
116 * Note that &drm_plane_state.fb_damage_clips == NULL in plane state means that
117 * full plane update should happen. It also ensure helper iterator will return
150 * during plane update. If num_clips is 0 then this helper will do a full plane
169 struct drm_plane *plane; in drm_atomic_helper_dirtyfb() local
212 drm_for_each_plane(plane, fb->dev) { in drm_atomic_helper_dirtyfb()
215 ret = drm_modeset_lock(&plane->mutex, state->acquire_ctx); in drm_atomic_helper_dirtyfb()
219 if (plane->state->fb != fb) { in drm_atomic_helper_dirtyfb()
220 drm_modeset_unlock(&plane->mutex); in drm_atomic_helper_dirtyfb()
224 plane_state = drm_atomic_get_plane_state(state, plane); in drm_atomic_helper_dirtyfb()
260 * @old_state: Old plane state for validation.
261 * @state: Plane state from which to iterate the damage clips.
263 * Initialize an iterator, which clips plane damage
264 * &drm_plane_state.fb_damage_clips to plane &drm_plane_state.src. This iterator
265 * returns full plane src in case damage is not present because either
266 * user-space didn't sent or driver discarded it (it want to do full plane
267 * update). Currently this iterator returns full plane src in case plane src
270 * For the case when plane is not visible or plane update should not happen the
305 * @rect: Return a rectangle in fb coordinate clipped to plane src.
307 * Since plane src is in 16.16 fixed point and damage clips are whole number,
308 * this iterator round off clips that intersect with plane src. Round down for
310 * off for full plane src, in case it's returned as damage. This iterator will
311 * skip damage clips outside of plane src.
316 * update the plane.
345 * drm_atomic_helper_damage_merged - Merged plane damage
346 * @old_state: Old plane state for validation.
347 * @state: Plane state from which to iterate the damage clips.
350 * This function merges any valid plane damage clips into one rectangle and
357 * True if there is valid plane damage otherwise false.