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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.