diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index d40a9e30..81ca67d6 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -241,7 +241,6 @@ struct drm_backend { */ int min_width, max_width; int min_height, max_height; - int no_addfb2; struct wl_list plane_list; int sprites_are_broken; @@ -854,6 +853,7 @@ drm_fb_create_dumb(struct drm_backend *b, int width, int height, struct drm_mode_create_dumb create_arg; struct drm_mode_destroy_dumb destroy_arg; struct drm_mode_map_dumb map_arg; + uint32_t handles[4] = { 0 }, pitches[4] = { 0 }, offsets[4] = { 0 }; fb = zalloc(sizeof *fb); if (!fb) @@ -893,23 +893,12 @@ drm_fb_create_dumb(struct drm_backend *b, int width, int height, ret = -1; - if (!b->no_addfb2) { - uint32_t handles[4] = { 0 }, pitches[4] = { 0 }, offsets[4] = { 0 }; - - handles[0] = fb->handle; - pitches[0] = fb->stride; - offsets[0] = 0; - - ret = drmModeAddFB2(b->drm.fd, width, height, - fb->format->format, - handles, pitches, offsets, - &fb->fb_id, 0); - if (ret) { - weston_log("addfb2 failed: %m\n"); - b->no_addfb2 = 1; - } - } + handles[0] = fb->handle; + pitches[0] = fb->stride; + offsets[0] = 0; + ret = drmModeAddFB2(b->drm.fd, width, height, fb->format->format, + handles, pitches, offsets, &fb->fb_id, 0); if (ret) { ret = drmModeAddFB(b->drm.fd, width, height, fb->format->depth, fb->format->bpp, @@ -963,6 +952,8 @@ drm_fb_get_from_bo(struct gbm_bo *bo, struct drm_backend *backend, return drm_fb_ref(fb); } + assert(format != 0); + fb = zalloc(sizeof *fb); if (fb == NULL) return NULL; @@ -993,23 +984,13 @@ drm_fb_get_from_bo(struct gbm_bo *bo, struct drm_backend *backend, goto err_free; } - ret = -1; - - if (format && !backend->no_addfb2) { - handles[0] = fb->handle; - pitches[0] = fb->stride; - offsets[0] = 0; - - ret = drmModeAddFB2(backend->drm.fd, fb->width, fb->height, - format, handles, pitches, offsets, - &fb->fb_id, 0); - if (ret) { - weston_log("addfb2 failed: %m\n"); - backend->no_addfb2 = 1; - backend->sprites_are_broken = 1; - } - } + handles[0] = fb->handle; + pitches[0] = fb->stride; + offsets[0] = 0; + ret = drmModeAddFB2(backend->drm.fd, fb->width, fb->height, + fb->format->format, handles, pitches, offsets, + &fb->fb_id, 0); if (ret && fb->format->depth && fb->format->bpp) ret = drmModeAddFB(backend->drm.fd, fb->width, fb->height, fb->format->depth, fb->format->bpp,