egl: Only expose 565 pbuffer configs if X can export them as DRI3 images

Graphics / Mesa 3D Graphics Library / Mesa - Kenneth Graunke [whitecape.org] - 22 July 2019 23:58 EDT

Glamor in xorg-server 1.20 cannot expose 16bpp pixmaps when running in the usual 24bpp mode. This meant our 565 pbuffer configs would ultimately fail to create a backing pixmap, leading to crashes.

To hack around this, make a 16bpp pixmap and try and export it. If it works, expose the configs. Otherwise, just skip them.

This also disables them on DRI2. These configs were only added to pass conformance requirements, and I doubt anybody cares about testing out 565 pbuffer visuals on DRI2-only drivers.

v2: Don't leak the fds (caught by Eric Anholt)
v3: Don't free(fds), it's not malloc'd

Fixes: dacb11a585f ("egl: Add a 565 pbuffer-only EGL config under X11.")

82607f8a900 egl: Only expose 565 pbuffer configs if X can export them as DRI3 images
src/egl/drivers/dri2/platform_x11.c | 116 ++++++++++++++++++++++++------------
1 file changed, 79 insertions(+), 37 deletions(-)

Upstream: cgit.freedesktop.org


  • Share