mutter/src
Jonas Ådahl be4e6484ae render-device: Unmake the EGLContext after checking whether hw accelerated
When creating a render device, we create a temporary EGLContext where we
then query the `GL_RENDERER` string to check whether the renderer is any
of the known software renderers. After we're done, we destroy the
context and move on.

This should be fine as according to specification eglDestroyContext(),
with the context being actually destroyed a bit later when it's no
longer current, but mesa, when running RK3399 (Pinebook Pro), this
results in a crash in a future eglMakeCurrent():

  #0 in dri_unbind_context () at ../src/gallium/frontends/dri/dri_context.c:266
  #1 in driUnbindContext () at ../src/gallium/frontends/dri/dri_util.c:763
  #2 in dri2_make_current () at ../src/egl/drivers/dri2/egl_dri2.c:1814
  #3 in eglMakeCurrent () at ../src/egl/main/eglapi.c:907
  ...

We can avoid this, however, by calling eglMakeCurrent() with
EGL_NO_CONTEXT on the EGLDisplay, prior to destroying, effectively
avoiding the crash, so lets do that.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7194
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2414
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2612>
2022-09-03 18:34:49 +02:00
..
backends render-device: Unmake the EGLContext after checking whether hw accelerated 2022-09-03 18:34:49 +02:00
compositor clutter/utils: Remove magic numbers from fixed point calculations 2022-09-02 07:33:26 +00:00
core Consistently pass timestamp as uint64 when creating MetaStartupSequence 2022-09-02 15:21:27 +00:00
meta window: Notify about size-change when changing monitor 2022-09-02 13:12:09 +00:00
tests tests/color: Test that we handle devices with no GAMMA_LUT 2022-09-03 14:41:36 +00:00
ui frames: Add basic color-scheme support 2022-07-29 13:19:23 +00:00
wayland wayland/dma-buf: Always send modifiers when using surfaceless 2022-09-02 20:43:05 +00:00
x11 x11/session: Set the context as client data on connection watch 2022-09-02 17:52:41 +00:00
libmutter.pc.in build: Fix libs and cflags in autotools .pc file 2018-11-10 16:20:46 +00:00
meson.build backends: Expose InputMapping D-Bus path to determine tablet mapping 2022-09-02 18:34:36 +00:00
meta-private-enum-types.c.in build: Add missing include 2022-08-10 20:28:40 +02:00
meta-private-enum-types.h.in screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00