Re: Mesa 17 Wayland EGL changes
Cédric Legrand <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <CAEPHVGkkLuwWxqNT3k1=oHT+xGSBabQj6L9k7Ap-ibmdXNns6A@mail.gmail.com> |
2017-02-13 15:40 GMT+01:00 Pekka Paalanen <[email protected]>: > On Mon, 13 Feb 2017 13:47:05 +0100 > Cédric Legrand <[email protected]> wrote: > > > 2017-02-13 13:13 GMT+01:00 Pekka Paalanen <[email protected]>: > > > > > On Mon, 13 Feb 2017 12:49:59 +0100 > > > Cédric Legrand <[email protected]> wrote: > > > > > > > 2017-02-13 12:23 GMT+01:00 Pekka Paalanen <[email protected]>: > > > > > > > > > On Mon, 13 Feb 2017 11:59:01 +0100 > > > > > Cédric Legrand <[email protected]> wrote: > > > > > > > > > > > Hello, > > > > > > > > > > > > I'm working on a Wayland compositor and the latest Mesa update > broke > > > my > > > > > > work. After investigating, I found that I need to use the > > > > > > EGL_WL_wayland_bind_display extension, otherwise my compositor > > > crashes > > > > > with > > > > > > wl_shm reporting an invalid format. I'm not an OpenGL expert, > but I > > > spent > > > > > > the last few days reading documentation, inspecting weston's > source > > > code > > > > > > and googling with no luck. > > > > > > > > > > > > Question 1: Is it necessary to have the extension? Why don't Mesa > > > support > > > > > > plain old wl_shm anymore? Unless I missed something, this means > we > > > can't > > > > > > use OpenGL anymore for software rendering in Wayland, am I right? > > > > > > > > > > Hi, > > > > > > > > > > that sounds like a new bug in Mesa, but what is this "invalid > format" > > > > > error you mention? > > > > > > > > > > > > Sorry, I was a little vague on this one. The error is the wl_shm > protocol > > > > error: > > > > -> [email protected](wl_shm_pool@14, 0, "invalid format > 0x34325258") > > > > > > > > I inspected Mesa code and it seems that it is asking for a > > > WL_DRM_FORMAT_* > > > > buffer, independently from the availability of the wl_drm interface. > > > There > > > > is no instance of WL_SHM_FORMAT_* in its source code. Of course, > without > > > > the interface, the server wl_shm knows nothing about these formats > and > > > > throws the error. > > > > > > The WL_SHM and WL_DRM formats are identical, except for two very > > > unfortunate differences: argb8888 and xrgb8888 - the two formats that > > > are required to be supported by the compositor and are most used. > > > > > > Hence most DRM formats are valid and correct also as wl_shm formats (by > > > design), except the ones that are most popular (by historical > accident). > > > > > > > My system is using ARGB8888. If I got everything correctly, this means > that > > Mesa should fallback to WL_SHM_FORMAT_ARGB8888 when wl_drm is not > > available, right? Or should the compositor have to support > > WL_DRM_FORMAT_[XA]RGB8888 (even if this is implementation specific)? > > That is a very good question. > > I am looking at some 12.0 branch of Mesa, and it clearly has: > > src/egl/drivers/dri2/platform_wayland.c=1245=dri2_wl_swrast_get_stride_for_format(int > format, int w) > src/egl/drivers/dri2/platform_wayland.c:1247: if (format == > WL_SHM_FORMAT_RGB565) > src/egl/drivers/dri2/platform_wayland.c=1667=dri2_wl_swrast_ > create_window_surface(_EGLDriver *drv, _EGLDisplay *disp, > src/egl/drivers/dri2/platform_wayland.c:1689: dri2_surf->format = > WL_SHM_FORMAT_RGB565; > src/egl/drivers/dri2/platform_wayland.c:1691: dri2_surf->format = > WL_SHM_FORMAT_XRGB8888; > src/egl/drivers/dri2/platform_wayland.c:1693: dri2_surf->format = > WL_SHM_FORMAT_ARGB8888; > src/egl/drivers/dri2/platform_wayland.c=1735=shm_handle_format(void > *data, struct wl_shm *shm, uint32_t format) > src/egl/drivers/dri2/platform_wayland.c:1740: case > WL_SHM_FORMAT_ARGB8888: > src/egl/drivers/dri2/platform_wayland.c:1743: case > WL_SHM_FORMAT_XRGB8888: > src/egl/drivers/dri2/platform_wayland.c:1746: case WL_SHM_FORMAT_RGB565: > > > OTOH I could not find any code in Weston to handle wl_shm formats > 'XR24' (xrgb8888) or 'AR24' (argb8888), so I do not think compositors > are expected to handle them without advertising. > > Commit cb5e799448c959fa9f0d7ea76999ac6f8c0ad88e in Mesa seems to have > dropped the format special-casing. > > I'll put this info also in the bug > https://bugs.freedesktop.org/show_bug.cgi?id=99791 you opened. > Thank you Pekka for helping me with this issue, Daniel's patch (from https://lists.freedesktop.org/archives/mesa-dev/2017-February/144133.html) works as expected and it brings back my work alive. I'm still unable to get hardware acceleration with the EGL_WL_bind_wayland_display extension working (question 3). I'm pretty sure I missed a little stupid detail, but I can't get what exactly. If someone could at least point me to a typical workflow, this may help me. Thanks, Cédric Legrand _______________________________________________ mesa-users mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-users