compositor-drm: Remove drm_disable_unused_sprites()

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.
dev
Ander Conselvan de Oliveira 12 years ago committed by Kristian Høgsberg
parent d6f09a75a7
commit 3b2bd44d92
  1. 36
      src/compositor-drm.c

@ -184,8 +184,6 @@ struct drm_seat {
static void static void
drm_output_set_cursor(struct drm_output *output); drm_output_set_cursor(struct drm_output *output);
static void
drm_disable_unused_sprites(struct weston_output *output_base);
static int static int
drm_sprite_crtc_supported(struct weston_output *output_base, uint32_t supported) 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; output->vblank_pending = 1;
} }
drm_disable_unused_sprites(&output->base);
return; return;
} }
@ -536,38 +532,6 @@ drm_surface_transform_supported(struct weston_surface *es)
return 1; 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 * static struct weston_plane *
drm_output_prepare_overlay_surface(struct weston_output *output_base, drm_output_prepare_overlay_surface(struct weston_output *output_base,
struct weston_surface *es) struct weston_surface *es)

Loading…
Cancel
Save