If a sprite is no longer used, it is disabled on the call to
drmModeSetPlane() when doing the output repaint, since its
pending_fb_id is 0.
---
 src/compositor-drm.c |   36 ------------------------------------
 1 file changed, 36 deletions(-)

diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 8657b6b..ee57bf0 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -184,8 +184,6 @@ struct drm_seat {
 
 static void
 drm_output_set_cursor(struct drm_output *output);
-static void
-drm_disable_unused_sprites(struct weston_output *output_base);
 
 static int
 drm_sprite_crtc_supported(struct weston_output *output_base, uint32_t 
supported)
@@ -427,8 +425,6 @@ drm_output_repaint(struct weston_output *output_base,
                output->vblank_pending = 1;
        }
 
-       drm_disable_unused_sprites(&output->base);
-
        return;
 }
 
@@ -536,38 +532,6 @@ drm_surface_transform_supported(struct weston_surface *es)
        return 1;
 }
 
-static void
-drm_disable_unused_sprites(struct weston_output *output_base)
-{
-       struct weston_compositor *ec = output_base->compositor;
-       struct drm_compositor *c =(struct drm_compositor *) ec;
-       struct drm_output *output = (struct drm_output *) output_base;
-       struct drm_sprite *s;
-       int ret;
-
-       wl_list_for_each(s, &c->sprite_list, link) {
-               if (s->pending_fb_id)
-                       continue;
-
-               ret = drmModeSetPlane(c->drm.fd, s->plane_id,
-                                     output->crtc_id, 0, 0,
-                                     0, 0, 0, 0, 0, 0, 0, 0);
-               if (ret)
-                       weston_log("failed to disable plane: %d: %s\n",
-                               ret, strerror(errno));
-               drmModeRmFB(c->drm.fd, s->fb_id);
-
-               if (s->surface) {
-                       s->surface = NULL;
-                       wl_list_remove(&s->destroy_listener.link);
-               }
-
-               assert(!s->pending_surface);
-               s->fb_id = 0;
-               s->pending_fb_id = 0;
-       }
-}
-
 static struct weston_plane *
 drm_output_prepare_overlay_surface(struct weston_output *output_base,
                                   struct weston_surface *es)
-- 
1.7.10.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to