Lines Matching defs:plane
45 * FB_DAMAGE_CLIPS is an optional plane property which provides a means to
46 * specify a list of damage rectangles on a plane in framebuffer coordinates of
47 * the framebuffer attached to the plane. In current context damage is the area
48 * of plane framebuffer that has changed since last plane update (also called
50 * framebuffer attached during last plane update or not.
57 * ignore damage clips property and in that case driver will do a full plane
59 * inside damage clips will be updated to plane. For efficiency driver can do
64 * framebuffer (since last plane update) can result in incorrect rendering.
67 * array of &drm_mode_rect. Unlike plane &drm_plane_state.src coordinates,
68 * damage clips are not in 16.16 fixed point. Similar to plane src in
73 * Drivers that are interested in damage interface for plane should enable
96 * drm_plane_enable_fb_damage_clips - Enables plane fb damage clips property.
97 * @plane: Plane on which to enable damage clips property.
99 * This function lets driver to enable the damage clips property on a plane.
101 void drm_plane_enable_fb_damage_clips(struct drm_plane *plane)
103 struct drm_device *dev = plane->dev;
106 drm_object_attach_property(&plane->base, config->prop_fb_damage_clips,
112 * drm_atomic_helper_check_plane_damage - Verify plane damage on atomic_check.
114 * @plane_state: Plane state for which to verify damage.
116 * This helper function makes sure that damage from plane state is discarded
118 * plane update rather than processing individual damage regions, then those
121 * Note that &drm_plane_state.fb_damage_clips == NULL in plane state means that
122 * full plane update should happen. It also ensure helper iterator will return
155 * during plane update. If num_clips is 0 then this helper will do a full plane
174 struct drm_plane *plane;
217 drm_for_each_plane(plane, fb->dev) {
220 ret = drm_modeset_lock(&plane->mutex, state->acquire_ctx);
224 if (plane->state->fb != fb) {
225 drm_modeset_unlock(&plane->mutex);
229 plane_state = drm_atomic_get_plane_state(state, plane);
265 * @old_state: Old plane state for validation.
266 * @state: Plane state from which to iterate the damage clips.
268 * Initialize an iterator, which clips plane damage
269 * &drm_plane_state.fb_damage_clips to plane &drm_plane_state.src. This iterator
270 * returns full plane src in case damage is not present because either
271 * user-space didn't sent or driver discarded it (it want to do full plane
272 * update). Currently this iterator returns full plane src in case plane src
275 * For the case when plane is not visible or plane update should not happen the
310 * @rect: Return a rectangle in fb coordinate clipped to plane src.
312 * Since plane src is in 16.16 fixed point and damage clips are whole number,
313 * this iterator round off clips that intersect with plane src. Round down for
315 * off for full plane src, in case it's returned as damage. This iterator will
316 * skip damage clips outside of plane src.
321 * update the plane.
350 * drm_atomic_helper_damage_merged - Merged plane damage
351 * @old_state: Old plane state for validation.
352 * @state: Plane state from which to iterate the damage clips.
355 * This function merges any valid plane damage clips into one rectangle and
362 * True if there is valid plane damage otherwise false.