drm: Disable sprites if they're broken
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 6 Mar 2012 00:57:35 +0000 (19:57 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 6 Mar 2012 00:57:35 +0000 (19:57 -0500)
Current sprite implementation has a color format bug.  Disable sprites
if they don't work and avoid spamming stderr and syslog.

src/compositor-drm.c

index d2a5652..9796014 100644 (file)
@@ -60,6 +60,7 @@ struct drm_compositor {
        struct tty *tty;
 
        struct wl_list sprite_list;
+       int sprites_are_broken;
 
        uint32_t prev_state;
 };
@@ -434,6 +435,9 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base,
        pixman_box32_t *box;
        uint32_t format;
 
+       if (c->sprites_are_broken)
+               return -1;
+
        if (surface_is_primary(ec, es))
                return -1;
 
@@ -484,6 +488,7 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base,
                            &fb_id, 0);
        if (ret) {
                fprintf(stderr, "addfb2 failed: %d\n", ret);
+               c->sprites_are_broken = 1;
                return -1;
        }