Summary: | swrast: Epiphany WEB browser core dumps under Mesa 17.3.3 | ||
---|---|---|---|
Product: | Mesa | Reporter: | Wayne Blaszczyk <wblaszcz> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED NOTOURBUG | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | CC: | emil.l.velikov |
Version: | 17.3 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Force-disable extension/error out if using API while extension is not set |
Description
Wayne Blaszczyk
2018-02-05 12:23:20 UTC
Emil, I'm assuming this commit causes swrast platform_wayland to start exposing EGL_WL_bind_wayland_display, which assumes there's a DRM device? Created attachment 137171 [details] [review] Force-disable extension/error out if using API while extension is not set (In reply to Daniel Stone from comment #1) > Emil, I'm assuming this commit causes swrast platform_wayland to start > exposing EGL_WL_bind_wayland_display, which assumes there's a DRM device? That shouldn't be it - dri2_set_WL_bind_wayland_display() [attempts to] set the extension only if we have device_name. With latter being NULL based on the crash. Skimming through webkit [might be outdated?] it seems to be doing the most common and silly mistakes - uses the function pointers w/o checking for the extension string. https://github.com/WebKit/webkit/blob/68fc1e2ab9c374f41cf290aa749b460539cf2756/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp#L374 To be on the safe side: Wayne can you please confirm if the extension is advertised before/after the patch? Does any of the two hunks of the attached patch help? Yeah, good catch! Bug filed: https://bugs.webkit.org/show_bug.cgi?id=182490 Hi Emil, I don't know what you mean by 'if the extension is advertised before/after the patch'. How do I check if an extension is advertised? The first hunk didn't work. i.e. still got a core dump. The second hunk and both hunks together fixed the issue. es2_info does not return EGL_WL_bind_wayland_display either before or after the patch, if that is what you were asking for? (In reply to Wayne Blaszczyk from comment #5) > es2_info does not return EGL_WL_bind_wayland_display either before or after > the patch, if that is what you were asking for? for egl information you'll want eglinfo, es2_info outputs gles2 information ;) (In reply to Eric Engestrom from comment #6) > (In reply to Wayne Blaszczyk from comment #5) > > es2_info does not return EGL_WL_bind_wayland_display either before or after > > the patch, if that is what you were asking for? > > for egl information you'll want eglinfo, es2_info outputs gles2 information > ;) I don't have eglinfo. What package does that come from? es2_info did come back with EGL_WL_bind_wayland_display on my host box which has an Intel HD chip. (In reply to Wayne Blaszczyk from comment #7) > I don't have eglinfo. What package does that come from? it's in mesa-demos, but it's not necessarily provided by a package in your distro (I think ubuntu doesn't have it, for instance, while arch does). eglinfo itself is at https://cgit.freedesktop.org/mesa/demos/tree/src/egl/opengl/eglinfo.c I think this doesn't really matter anymore though, as Emil has found the issue and Daniel has filed a bug with Webkit :) (In reply to Eric Engestrom from comment #8) > (In reply to Wayne Blaszczyk from comment #7) > > I don't have eglinfo. What package does that come from? > > it's in mesa-demos, but it's not necessarily provided by a package in your > distro (I think ubuntu doesn't have it, for instance, while arch does). > eglinfo itself is at > https://cgit.freedesktop.org/mesa/demos/tree/src/egl/opengl/eglinfo.c > > I think this doesn't really matter anymore though, as Emil has found the > issue and Daniel has filed a bug with Webkit :) The reason why eglinfo was not installed on my system was that 'make install' for mesa-demos does not install it. I've now rebuilt mesa-demos and manually copied over the binary (As per Arch build instructions). Running eglinfo before and after the patch does not change. EGL_EXT_platform_wayland existed before and after. Does that change the situation in any way? (In reply to Daniel Stone from comment #3) > Yeah, good catch! Bug filed: https://bugs.webkit.org/show_bug.cgi?id=182490 I've applied the following patch to webkitgtk-2.18.6 https://bug-182490-attachments.webkit.org/attachment.cgi?id=333283 Epiphany now starts fine with Mesa 17.3.3. But there is a difference in the warnings. Epiphany under Mesa 17.3.3 produces the following: WaylandCompositor requires eglBindWaylandDisplayWL, eglUnbindWaylandDisplayWL and eglQueryWaylandBuffer. Nested Wayland compositor could not initialize EGL Epiphany under Mesa 17.2.8 produces the following: WaylandCompositor requires eglCreateImage and eglDestroyImage. Nested Wayland compositor could not initialize EGL So, I guess it does get further in its initializeEGL method. Thanks. The WebKit patch has now landed upstream. Not supporting bind_wayland_display for swrast is to be expected, since for unaccelerated paths we use the wl_shm support built into the server. For future, I suspect the best way to support the WebKit compositor on swrast, is for the WebKit compositor to make sure it supports wl_shm on the server side (and uploading the contents to textures, etc), and also making BindWaylandDisplay just return TRUE without doing anything on swrast. |
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.