Bug 53361

Summary: Commit of Mesa broke Wayland's weston on some graphics cards
Product: Mesa Reporter: nerdopolis1
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: chris, darxus, idr
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description nerdopolis1 2012-08-11 02:08:25 UTC
Hi. It seems some EGL related commits causes issues with Wayland's weston clients.
There are many users reporting this issue.

Weston clients fails with:
failed to get cairo egl argb device
failed to create display: No such file or directory
libEGL debug: Display 0x82fce0 is destroyed with resources
-------------------------------------------------
And it looks like it could be between
http://cgit.freedesktop.org/mesa/mesa/commit/?id=63adb6b9eaa723f6bf9603f3f567e04451df857e
and
http://cgit.freedesktop.org/mesa/mesa/commit/?id=45e592c3dd4101c6706c5b2e6bb0e6e1f62017f5
that caused the breakage I think.

Weston clients work again by reverting to commit 102617bc5206e459bb1743d2d72341dbfe77bc58
Comment 1 Darxus 2012-08-11 02:12:50 UTC
The weston code that's failing is:

#ifdef HAVE_CAIRO_EGL
	d->argb_device = cairo_egl_device_create(d->dpy, d->argb_ctx);
	if (cairo_device_status(d->argb_device) != CAIRO_STATUS_SUCCESS) {
		fprintf(stderr, "failed to get cairo egl argb device\n");
		return -1;
	}
#endif

- http://cgit.freedesktop.org/wayland/weston/tree/clients/window.c

So a workaround is to rebuild cairo without --enable-gl.
Comment 2 charliemacdev 2012-08-11 16:31:12 UTC
This actually appears to be a bug in Cairo. As of Mesa commit b50703aea55450e04bcd8154335774786e0f253b there is no longer a "KHR_surfaceless_opengl" extension which Cairo looks for in cairo-egl-context.c. Will try to file upstream.
Comment 3 Darxus 2012-08-12 19:51:41 UTC
Thanks.  Did a cairo bug get opened?  I don't see it.
Comment 4 Matt Turner 2012-08-12 20:06:56 UTC
(In reply to comment #3)
> Thanks.  Did a cairo bug get opened?  I don't see it.

No, it was fixed.

http://cgit.freedesktop.org/cairo/commit/?id=f59b0914f4ddbff0d116c918343a6726d5f4317b
Comment 5 Chris Wilson 2012-08-29 07:25:33 UTC
Cairo was fixed to check both extension names before falling back to an EGL pbuffer.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.